En esta parte se trata de hacer unos calculos que indica el siguente archivo (Enlace).
La parte que interesa concretamente es la siguiente: (esta imagen corresponde a la s paginas 12 y 13 del pdf)
Y mi codigo para este calculo es este:
PUBLIC SUB longitud_latitud_geocentria()
DIM cc AS Float
DIM bb AS String
DIM Ba AS String
DIM x0 AS String
DIM x1 AS String
DIM x2 AS String
DIM x3 AS String
DIM x4 AS String
DIM X AS String
DIM xm AS Float[5]
DIM matriz AS NEW Float[63, 9]
DIM a AS Integer
DIM b AS Integer
DIM contingut AS String
DIM lineas_del_fichero AS String[]
DIM columnas AS String[]
DIM THa AS String
DIM THb AS String
DIM THc AS String
DIM THd AS String
DIM THY AS String
DIM Bi AS NEW Float[]
DIM Ci AS NEW Float[]
DIM Ai AS NEW Float[]
DIM i AS Integer
DIM n AS Float
DIM j AS Integer
DIM zz AS Float
cc = L + 180
REPEAT
IF cc > 360 THEN
cc = cc - 360
ENDIF
UNTIL cc < 360
'TextArea3.text = cc
bb = - B
'3.4. Calculate the nutation IN longitude AND obliquity()R AND )g):
xm[0] = 297.85036 + 445267.111480 * JCE - 0.0019142 * JCE * JCE + ((JCE * JCE * JCE) / 189474)
xm[1] = 357.52772 + 35999.050340 * JCE - 0.0001603 * JCE * JCE - ((JCE * JCE * JCE) / 300000)
xm[2] = 134.96298 + 477198.867398 * JCE + 0.0086972 * JCE * JCE + ((JCE * JCE * JCE) / 56250)
xm[3] = 93.27191 + 483202.017538 * JCE - 0.0036825 * JCE * JCE + ((JCE * JCE * JCE) / 327270)
xm[4] = 125.04452 - 1934.136261 * JCE + 0.0020708 * JCE * JCE + ((JCE * JCE * JCE) / 450000)
'CALCULAR Ayi i AEi amb les taules
contingut = TaulaYs.Text
lineas_del_fichero = Split(contingut, "\n")
FOR a = 0 TO lineas_del_fichero.count - 1
columnas = Split(lineas_del_fichero[a], " ") ' por ejemplo si los numeros de las columnas se separan por un espacio (Truco: con gedit es muy facil buscar y reemplazar varios espacios y sustituirlo por uno solo ;) )
FOR b = 0 TO columnas.count - 1
matriz[a, b] = CFloat(columnas[b]) ' la matriz[a,b], continea fila y columna el numero (con val(), convertimos el texto en numero.....
NEXT
NEXT
DWF$ = 0
Da$ = 0
j = 0
DWF = 0
i = 0
zz = 0
REPEAT
zz = 0
FOR j = 0 TO 4
zz = zz + xm[j] * matriz[i, j]
NEXT
Dw = (matriz[i, 5] + matriz[i, 6] * JCE) * Sin(zz)
DWF = DWF + Dw
i = i + 1
UNTIL i = 62
j = 0
Dw = 0
i = 0
zz = 0
Da = 0
REPEAT
zz = 0
FOR j = 0 TO 4
zz = zz + xm[j] * matriz[i, j]
NEXT
Dw = (matriz[i, 7] + matriz[i, 8] * JCE) * Cos(zz)
Da = Da + Dw
i = i + 1
UNTIL i = 62
DWF$ = DWF / 36000000
Da$ = Da / 36000000
END
DIM cc AS Float
DIM bb AS String
DIM Ba AS String
DIM x0 AS String
DIM x1 AS String
DIM x2 AS String
DIM x3 AS String
DIM x4 AS String
DIM X AS String
DIM xm AS Float[5]
DIM matriz AS NEW Float[63, 9]
DIM a AS Integer
DIM b AS Integer
DIM contingut AS String
DIM lineas_del_fichero AS String[]
DIM columnas AS String[]
DIM THa AS String
DIM THb AS String
DIM THc AS String
DIM THd AS String
DIM THY AS String
DIM Bi AS NEW Float[]
DIM Ci AS NEW Float[]
DIM Ai AS NEW Float[]
DIM i AS Integer
DIM n AS Float
DIM j AS Integer
DIM zz AS Float
cc = L + 180
REPEAT
IF cc > 360 THEN
cc = cc - 360
ENDIF
UNTIL cc < 360
'TextArea3.text = cc
bb = - B
'3.4. Calculate the nutation IN longitude AND obliquity()R AND )g):
xm[0] = 297.85036 + 445267.111480 * JCE - 0.0019142 * JCE * JCE + ((JCE * JCE * JCE) / 189474)
xm[1] = 357.52772 + 35999.050340 * JCE - 0.0001603 * JCE * JCE - ((JCE * JCE * JCE) / 300000)
xm[2] = 134.96298 + 477198.867398 * JCE + 0.0086972 * JCE * JCE + ((JCE * JCE * JCE) / 56250)
xm[3] = 93.27191 + 483202.017538 * JCE - 0.0036825 * JCE * JCE + ((JCE * JCE * JCE) / 327270)
xm[4] = 125.04452 - 1934.136261 * JCE + 0.0020708 * JCE * JCE + ((JCE * JCE * JCE) / 450000)
'CALCULAR Ayi i AEi amb les taules
contingut = TaulaYs.Text
lineas_del_fichero = Split(contingut, "\n")
FOR a = 0 TO lineas_del_fichero.count - 1
columnas = Split(lineas_del_fichero[a], " ") ' por ejemplo si los numeros de las columnas se separan por un espacio (Truco: con gedit es muy facil buscar y reemplazar varios espacios y sustituirlo por uno solo ;) )
FOR b = 0 TO columnas.count - 1
matriz[a, b] = CFloat(columnas[b]) ' la matriz[a,b], continea fila y columna el numero (con val(), convertimos el texto en numero.....
NEXT
NEXT
DWF$ = 0
Da$ = 0
j = 0
DWF = 0
i = 0
zz = 0
REPEAT
zz = 0
FOR j = 0 TO 4
zz = zz + xm[j] * matriz[i, j]
NEXT
Dw = (matriz[i, 5] + matriz[i, 6] * JCE) * Sin(zz)
DWF = DWF + Dw
i = i + 1
UNTIL i = 62
j = 0
Dw = 0
i = 0
zz = 0
Da = 0
REPEAT
zz = 0
FOR j = 0 TO 4
zz = zz + xm[j] * matriz[i, j]
NEXT
Dw = (matriz[i, 7] + matriz[i, 8] * JCE) * Cos(zz)
Da = Da + Dw
i = i + 1
UNTIL i = 62
DWF$ = DWF / 36000000
Da$ = Da / 36000000
END
Muchas gracias por su ayuda.