Hora sideral (programa en basic)

HORA SIDERAL
Si solo dispusieramos de unas tablas de horas siderales, podriamos calcular la hora sideral mediante una interpolación lineal entre 2 valores de dos dias consecutivos dados por esas tablas. Ahora lo haremos de forma directa a partir de una ecuación polinomica que nos da un resultado más exacto que el calculado en la forma anterior y que ademas tiene la ventaja que puede ser introducido en calculos informáticos sin necesidad de recurrir a tablas.

Conocida la fecha en forma de Dia Juliano (DJ en la formula) calcularemos la hora sideral en la forma siguiente: primero calcularemos la ecuación de los equinocios (resultado en segundos):

EcEq = [-1.05 *sen (344 -0.052954*DJ) -0.08 *sen(123 + 1.9713*DJ)]

  El valor dado por la fórmula anterior lo emplearemos en la fórmula siguiente que nos da el valor de la hora sideral para cualquier dia a las 0 Horas de Greenwich.


Hs = 6.745117 + 0.065709824 * (DJ - 2450450) + EcEq
..................................................................


C) Estas ecuaciones son muy engorrosas sin el uso de ordenador, por lo que daremos un programa escrito en Basic para su calculo. (Debe copiarse a continuacion del programa el calculo del Dia Juliano, pues funciona con los datos (Datas) y variables ya incluidos antes.
Para poder realizar el calculo lo descomponemos en sus componentes ya que las formulas trigonométricas deben estar dentro de unos rangos aceptables:cc = 344 - 0.052954*dj
Llevamos el valor de cc a a un valor comprendido entre 0 y 360:
DO
IF cc 〉360 then cc = cc - 360
IF cc ⟨ 0 then cc = cc + 360
loop

Y hacemos lo mismo con qq:
qq = 123 + 1.9713*dj
DO
IF qq ⟩ 360 THEN qq = qq - 360
IF qq ⟨ 0 then qq = qq +360

loop

Y tenemos la ecuacion de los equinocios:
 
EcEq = cc - qq

PRINT " Ecuacion de los equinocios (EcEq) = ";EcEq 
Calculamos la hora sideral directamente con la segunda formula dada antes:
tsvl = 6.745117 + 0.065709824*(dj - 2450450) + EcEq/3600
hs = tsvl 
Ponemos la hora sideral dentro de un rango entre 0 y 24 horas: 
DO
IF hs ⟩ 24 then hs=hs-24
 IF hs ⟨ 0 then hs = hs+ 24

loop


Ponemos la hora sideral en formato de horas:minutos:segundos
h=INT(hs)
mi = (hs-INT(hs))*60
m=INT(mi)
se=(mi - m)*60
s = INT(se)
PRINT "hora sideral (hs) = ";h;" : ";m;" : ";s
end