Algorithm for Computing the Nutation (Delta Psi) In Ecliptical Longitude

ALGORITHM GUIDE FOR CREATING AN INDEPENDENT FUNCTION TO COMPUTE THE
NUTATION IN ECLIPTICAL LONGITUDE ACCORDING TO IAU SERIES 2000B

THERE ARE 77 TERMS IN THE SERIES

AUTHOR: Jay Tanner - 2011



A typical call to such a function might resemble:

dPsiDeg = Delta_Psi (JD)

The function would return the value of the nutation in longitude
in decimal degrees for the time indicated by the JD argument.


******************************************************************************
DATA TABLE FOR NUTATION IN LONGITUDE - IAU SERIES 2000B (77 TERMS)

The i column is NOT part of the actual data.  It is simply the reference index
number of the series term to which the subsequent 8 data elements apply.

   ARGUMENT MULTIPLIERS        LONGITUDE COMPONENTS
    L   Lp  F   D   Om          ARC SEC * 10000000
i   m1  m2  m3  m4  m5         AA        BB      CC
1    0   0   0   0   1    -172064161  -174666  33386
2    0   0   2  -2   2     -13170906    -1675  13696
3    0   0   2   0   2      -2276413     -234   2796
4    0   0   0   0   2       2074554      207   -698
5    0   1   0   0   0       1475877    -3633  11817
6    0   1   2  -2   2       -516821     1226   -524
7    1   0   0   0   0        711159       73   -872
8    0   0   2   0   1       -387298     -367    380
9    1   0   2   0   2       -301461      -36    816
10   0  -1   2  -2   2        215829     -494    111
11   0   0   2  -2   1        128227      137    181
12  -1   0   2   0   2        123457       11     19
13  -1   0   0   2   0        156994       10   -168
14   1   0   0   0   1         63110       63     27
15  -1   0   0   0   1        -57976      -63   -189
16  -1   0   2   2   2        -59641      -11    149
17   1   0   2   0   1        -51613      -42    129
18  -2   0   2   0   1         45893       50     31
19   0   0   0   2   0         63384       11   -150
20   0   0   2   2   2        -38571       -1    158
21   0  -2   2  -2   2         32481        0      0
22  -2   0   0   2   0        -47722        0    -18
23   2   0   2   0   2        -31046       -1    131
24   1   0   2  -2   2         28593        0     -1
25  -1   0   2   0   1         20441       21     10
26   2   0   0   0   0         29243        0    -74
27   0   0   2   0   0         25887        0    -66
28   0   1   0   0   1        -14053      -25     79
29  -1   0   0   2   1         15164       10     11
30   0   2   2  -2   2        -15794       72    -16
31   0   0  -2   2   0         21783        0     13
32   1   0   0  -2   1        -12873      -10    -37
33   0  -1   0   0   1        -12654       11     63
34  -1   0   2   2   1        -10204        0     25
35   0   2   0   0   0         16707      -85    -10
36   1   0   2   2   2         -7691        0     44
37  -2   0   2   0   0        -11024        0    -14
38   0   1   2   0   2          7566      -21    -11
39   0   0   2   2   1         -6637      -11     25
40   0  -1   2   0   2         -7141       21      8
41   0   0   0   2   1         -6302      -11      2
42   1   0   2  -2   1          5800       10      2
43   2   0   2  -2   2          6443        0     -7
44  -2   0   0   2   1         -5774      -11    -15
45   2   0   2   0   1         -5350        0     21
46   0  -1   2  -2   1         -4752      -11     -3
47   0   0   0  -2   1         -4940      -11    -21
48  -1  -1   0   2   0          7350        0     -8
49   2   0   0  -2   1          4065        0      6
50   1   0   0   2   0          6579        0    -24
51   0   1   2  -2   1          3579        0      5
52   1  -1   0   0   0          4725        0     -6
53  -2   0   2   0   2         -3075        0     -2
54   3   0   2   0   2         -2904        0     15
55   0  -1   0   2   0          4348        0    -10
56   1  -1   2   0   2         -2878        0      8
57   0   0   0   1   0         -4230        0      5
58  -1  -1   2   2   2         -2819        0      7
59  -1   0   2   0   0         -4056        0      5
60   0  -1   2   2   2         -2647        0     11
61  -2   0   0   0   1         -2294        0    -10
62   1   1   2   0   2          2481        0     -7
63   2   0   0   0   1          2179        0     -2
64  -1   1   0   1   0          3276        0      1
65   1   1   0   0   0         -3389        0      5
66   1   0   2   0   0          3339        0    -13
67  -1   0   2  -2   1         -1987        0     -6
68   1   0   0   0   2         -1981        0      0
69  -1   0   0   1   0          4026        0   -353
70   0   0   2   1   2          1660        0     -5
71  -1   0   2   4   2         -1521        0      9
72  -1   1   0   1   1          1314        0      0
73   0  -2   2  -2   1         -1283        0      0
74   1   0   2   2   1         -1331        0      8
75  -2   0   2   2   2          1383        0     -2
76  -1   0   0   0   2          1405        0      4
77   1   1   2  -2   2          1290        0      0
*****************************************************


===========================================================================
===========================================================================


--------------------------------------------
Define factor to convert degrees to radians.

DegToRad = 3.141592653589793 / 180.0

--------------------------------------------------
Given the JD number, ompute the corresponding time
in Julian centuries reckoned from J2000.0

T = (JD - 2451545.0) / 36525.0

-------------------
Compute powers of T

T2 = T * T
T3 = T * T2
T4 = T * T3

--------------------------------------------------------
COMPUTE FUNDAMENTAL DELAUNAY ARGUMENTS (L, Lp, F, D, Om)

-----------------------------------
Mean anomaly of the Moon in radians

L  = DegToRad*((485868.249036 + 1717915923.2178*T + 31.8792*T2
   + 0.051635*T3 - 0.00024470*T4) / 3600.0)


----------------------------------
Mean anomaly of the Sun in radians

Lp = DegToRad*((1287104.79305 + 129596581.0481*T
   - 0.5532*T2  + 0.000136*T3 - 0.00001149*T4) / 3600.0)


----------------------------------------------------
Mean argument of the latitude of the Moon in radians

F  = DegToRad*((335779.526232 + 1739527262.8478*T
   - 12.7512*T2 - 0.001037*T3 + 0.00000417*T4) / 3600.0)


---------------------------------------------------
Mean elongation of the Moon from the Sun in radians

D  = DegToRad*((1072260.70369 + 1602961601.2090*T
   - 6.3706*T2  + 0.006593*T3 - 0.00003169*T4) / 3600.0)


-----------------------------------------------------------
Mean longitude of the ascending node of the Moon in radians

Om = DegToRad*((450160.398036 - 6962890.5431*T
   + 7.4722*T2  + 0.007702*T3 - 0.00005939*T4) / 3600.0)

-------------------------------------------------------------------
EVALUATE THE SERIES FOR NUTATION IN LONGITUDE IN ARC SEC * 10000000

--------------------------------------------------------
Using the table data, the terms take the following form:

Let:
arg = (m1*L + m2*Lp + m3*F + m4*D + m5*Om)

then

dPsiTerm = (AA + BB*T)*sin(arg) + CC*cos(arg)

The computational angles are assumed to be in radians.

-------------------------------------------------------------------
Using the data table above, the following raw terms can be built.
Notice there are numerous elements that equate to zero.  Those
elements may subsequently be removed and most of the remaining
terms may be algebraically reduced to simpler forms.

Each line represents a single term in the nutation series.

Compare the data table values to the numbers used in raw series below.

The variable s is used to hold the accumulating sum (s) of the terms
as they are sequentially evaluated.  This value is converted into
decimal degrees at the end of the summation.

s = 0
s = s + (-172064161 - 174666*T)*sin(0*L + 0*Lp + 0*F + 0*D + 1*Om) + 33386*cos(0*L + 0*Lp + 0*F + 0*D + 1*Om)
s = s + (-13170906 - 1675*T)*sin(0*L + 0*Lp + 2*F - 2*D + 2*Om) - 13696*cos(0*L + 0*Lp + 2*F - 2*D + 2*Om)
s = s + (-2276413 - 234*T)*sin(0*L + 0*Lp + 2*F + 0*D + 2*Om) + 2796*cos(0*L + 0*Lp + 2*F + 0*D + 2*Om)
s = s + (2074554 + 207*T)*sin(0*L + 0*Lp + 0*F + 0*D + 2*Om) - 698*cos(0*L + 0*Lp + 0*F + 0*D + 2*Om)
s = s + (1475877 - 3633*T)*sin(0*L + 1*Lp + 0*F + 0*D + 0*Om) + 11817*cos(0*L + 1*Lp + 0*F + 0*D + 0*Om)
s = s + (-516821 + 1226*T)*sin(0*L + 1*Lp + 2*F - 2*D + 2*Om) - 524*cos(0*L + 1*Lp + 2*F - 2*D + 2*Om)
s = s + (711159 + 73*T)*sin(1*L + 0*Lp + 0*F + 0*D + 0*Om) - 872*cos(1*L + 0*Lp + 0*F + 0*D + 0*Om)
s = s + (-387298 - 367*T)*sin(0*L + 0*Lp + 2*F + 0*D + 1*Om) + 380*cos(0*L + 0*Lp + 2*F + 0*D + 1*Om)
s = s + (-301461 - 36*T)*sin(1*L + 0*Lp + 2*F + 0*D + 2*Om) + 816*cos(1*L + 0*Lp + 2*F + 0*D + 2*Om)
s = s + (215829 - 494*T)*sin(0*L - 1*Lp + 2*F - 2*D + 2*Om) + 111*cos(0*L - 1*Lp + 2*F - 2*D + 2*Om)
s = s + (128227 + 137*T)*sin(0*L + 0*Lp + 2*F - 2*D + 1*Om) + 181*cos(0*L + 0*Lp + 2*F - 2*D + 1*Om)
s = s + (123457 + 11*T)*sin(-1*L + 0*Lp + 2*F + 0*D + 2*Om) + 19*cos(-1*L + 0*Lp + 2*F + 0*D + 2*Om)
s = s + (156994 + 10*T)*sin(-1*L + 0*Lp + 0*F + 2*D + 0*Om) - 168*cos(-1*L + 0*Lp + 0*F + 2*D + 0*Om)
s = s + (63110 + 63*T)*sin(1*L + 0*Lp + 0*F + 0*D + 1*Om) + 27*cos(1*L + 0*Lp + 0*F + 0*D + 1*Om)
s = s + (-57976 - 63*T)*sin(-1*L + 0*Lp + 0*F + 0*D + 1*Om) - 189*cos(-1*L + 0*Lp + 0*F + 0*D + 1*Om)
s = s + (-59641 - 11*T)*sin(-1*L + 0*Lp + 2*F + 2*D + 2*Om) + 149*cos(-1*L + 0*Lp + 2*F + 2*D + 2*Om)
s = s + (-51613 - 42*T)*sin(1*L + 0*Lp + 2*F + 0*D + 1*Om) + 129*cos(1*L + 0*Lp + 2*F + 0*D + 1*Om)
s = s + (45893 + 50*T)*sin(-2*L + 0*Lp + 2*F + 0*D + 1*Om) + 31*cos(-2*L + 0*Lp + 2*F + 0*D + 1*Om)
s = s + (63384 + 11*T)*sin(0*L + 0*Lp + 0*F + 2*D + 0*Om) - 150*cos(0*L + 0*Lp + 0*F + 2*D + 0*Om)
s = s + (-38571 - 1*T)*sin(0*L + 0*Lp + 2*F + 2*D + 2*Om) + 158*cos(0*L + 0*Lp + 2*F + 2*D + 2*Om)
s = s + (32481 + 0*T)*sin(0*L - 2*Lp + 2*F - 2*D + 2*Om) + 0*cos(0*L - 2*Lp + 2*F - 2*D + 2*Om)
s = s + (-47722 + 0*T)*sin(-2*L + 0*Lp + 0*F + 2*D + 0*Om) - 18*cos(-2*L + 0*Lp + 0*F + 2*D + 0*Om)
s = s + (-31046 - 1*T)*sin(2*L + 0*Lp + 2*F + 0*D + 2*Om) + 131*cos(2*L + 0*Lp + 2*F + 0*D + 2*Om)
s = s + (28593 + 0*T)*sin(1*L + 0*Lp + 2*F - 2*D + 2*Om) - 1*cos(1*L + 0*Lp + 2*F - 2*D + 2*Om)
s = s + (20441 + 21*T)*sin(-1*L + 0*Lp + 2*F + 0*D + 1*Om) + 10*cos(-1*L + 0*Lp + 2*F + 0*D + 1*Om)
s = s + (29243 + 0*T)*sin(2*L + 0*Lp + 0*F + 0*D + 0*Om) - 74*cos(2*L + 0*Lp + 0*F + 0*D + 0*Om)
s = s + (25887 + 0*T)*sin(0*L + 0*Lp + 2*F + 0*D + 0*Om) - 66*cos(0*L + 0*Lp + 2*F + 0*D + 0*Om)
s = s + (-14053 - 25*T)*sin(0*L + 1*Lp + 0*F + 0*D + 1*Om) + 79*cos(0*L + 1*Lp + 0*F + 0*D + 1*Om)
s = s + (15164 + 10*T)*sin(-1*L + 0*Lp + 0*F + 2*D + 1*Om) + 11*cos(-1*L + 0*Lp + 0*F + 2*D + 1*Om)
s = s + (-15794 + 72*T)*sin(0*L + 2*Lp + 2*F - 2*D + 2*Om) - 16*cos(0*L + 2*Lp + 2*F - 2*D + 2*Om)
s = s + (21783 + 0*T)*sin(0*L + 0*Lp - 2*F + 2*D + 0*Om) + 13*cos(0*L + 0*Lp - 2*F + 2*D + 0*Om)
s = s + (-12873 - 10*T)*sin(1*L + 0*Lp + 0*F - 2*D + 1*Om) - 37*cos(1*L + 0*Lp + 0*F - 2*D + 1*Om)
s = s + (-12654 + 11*T)*sin(0*L - 1*Lp + 0*F + 0*D + 1*Om) + 63*cos(0*L - 1*Lp + 0*F + 0*D + 1*Om)
s = s + (-10204 + 0*T)*sin(-1*L + 0*Lp + 2*F + 2*D + 1*Om) + 25*cos(-1*L + 0*Lp + 2*F + 2*D + 1*Om)
s = s + (16707 - 85*T)*sin(0*L + 2*Lp + 0*F + 0*D + 0*Om) - 10*cos(0*L + 2*Lp + 0*F + 0*D + 0*Om)
s = s + (-7691 + 0*T)*sin(1*L + 0*Lp + 2*F + 2*D + 2*Om) + 44*cos(1*L + 0*Lp + 2*F + 2*D + 2*Om)
s = s + (-11024 + 0*T)*sin(-2*L + 0*Lp + 2*F + 0*D + 0*Om) - 14*cos(-2*L + 0*Lp + 2*F + 0*D + 0*Om)
s = s + (7566 - 21*T)*sin(0*L + 1*Lp + 2*F + 0*D + 2*Om) - 11*cos(0*L + 1*Lp + 2*F + 0*D + 2*Om)
s = s + (-6637 - 11*T)*sin(0*L + 0*Lp + 2*F + 2*D + 1*Om) + 25*cos(0*L + 0*Lp + 2*F + 2*D + 1*Om)
s = s + (-7141 + 21*T)*sin(0*L - 1*Lp + 2*F + 0*D + 2*Om) + 8*cos(0*L - 1*Lp + 2*F + 0*D + 2*Om)
s = s + (-6302 - 11*T)*sin(0*L + 0*Lp + 0*F + 2*D + 1*Om) + 2*cos(0*L + 0*Lp + 0*F + 2*D + 1*Om)
s = s + (5800 + 10*T)*sin(1*L + 0*Lp + 2*F - 2*D + 1*Om) + 2*cos(1*L + 0*Lp + 2*F - 2*D + 1*Om)
s = s + (6443 + 0*T)*sin(2*L + 0*Lp + 2*F - 2*D + 2*Om) - 7*cos(2*L + 0*Lp + 2*F - 2*D + 2*Om)
s = s + (-5774 - 11*T)*sin(-2*L + 0*Lp + 0*F + 2*D + 1*Om) - 15*cos(-2*L + 0*Lp + 0*F + 2*D + 1*Om)
s = s + (-5350 + 0*T)*sin(2*L + 0*Lp + 2*F + 0*D + 1*Om) + 21*cos(2*L + 0*Lp + 2*F + 0*D + 1*Om)
s = s + (-4752 - 11*T)*sin(0*L - 1*Lp + 2*F - 2*D + 1*Om) - 3*cos(0*L - 1*Lp + 2*F - 2*D + 1*Om)
s = s + (-4940 - 11*T)*sin(0*L + 0*Lp + 0*F - 2*D + 1*Om) - 21*cos(0*L + 0*Lp + 0*F - 2*D + 1*Om)
s = s + (7350 + 0*T)*sin(-1*L - 1*Lp + 0*F + 2*D + 0*Om) - 8*cos(-1*L - 1*Lp + 0*F + 2*D + 0*Om)
s = s + (4065 + 0*T)*sin(2*L + 0*Lp + 0*F - 2*D + 1*Om) + 6*cos(2*L + 0*Lp + 0*F - 2*D + 1*Om)
s = s + (6579 + 0*T)*sin(1*L + 0*Lp + 0*F + 2*D + 0*Om) - 24*cos(1*L + 0*Lp + 0*F + 2*D + 0*Om)
s = s + (3579 + 0*T)*sin(0*L + 1*Lp + 2*F - 2*D + 1*Om) + 5*cos(0*L + 1*Lp + 2*F - 2*D + 1*Om)
s = s + (4725 + 0*T)*sin(1*L - 1*Lp + 0*F + 0*D + 0*Om) - 6*cos(1*L - 1*Lp + 0*F + 0*D + 0*Om)
s = s + (-3075 + 0*T)*sin(-2*L + 0*Lp + 2*F + 0*D + 2*Om) - 2*cos(-2*L + 0*Lp + 2*F + 0*D + 2*Om)
s = s + (-2904 + 0*T)*sin(3*L + 0*Lp + 2*F + 0*D + 2*Om) + 15*cos(3*L + 0*Lp + 2*F + 0*D + 2*Om)
s = s + (4348 + 0*T)*sin(0*L - 1*Lp + 0*F + 2*D + 0*Om) - 10*cos(0*L - 1*Lp + 0*F + 2*D + 0*Om)
s = s + (-2878 + 0*T)*sin(1*L - 1*Lp + 2*F + 0*D + 2*Om) + 8*cos(1*L - 1*Lp + 2*F + 0*D + 2*Om)
s = s + (-4230 + 0*T)*sin(0*L + 0*Lp + 0*F + 1*D + 0*Om) + 5*cos(0*L + 0*Lp + 0*F + 1*D + 0*Om)
s = s + (-2819 + 0*T)*sin(-1*L - 1*Lp + 2*F + 2*D + 2*Om) + 7*cos(-1*L - 1*Lp + 2*F + 2*D + 2*Om)
s = s + (-4056 + 0*T)*sin(-1*L + 0*Lp + 2*F + 0*D + 0*Om) + 5*cos(-1*L + 0*Lp + 2*F + 0*D + 0*Om)
s = s + (-2647 + 0*T)*sin(0*L - 1*Lp + 2*F + 2*D + 2*Om) + 11*cos(0*L - 1*Lp + 2*F + 2*D + 2*Om)
s = s + (-2294 + 0*T)*sin(-2*L + 0*Lp + 0*F + 0*D + 1*Om) - 10*cos(-2*L + 0*Lp + 0*F + 0*D + 1*Om)
s = s + (2481 + 0*T)*sin(1*L + 1*Lp + 2*F + 0*D + 2*Om) - 7*cos(1*L + 1*Lp + 2*F + 0*D + 2*Om)
s = s + (2179 + 0*T)*sin(2*L + 0*Lp + 0*F + 0*D + 1*Om) - 2*cos(2*L + 0*Lp + 0*F + 0*D + 1*Om)
s = s + (3276 + 0*T)*sin(-1*L + 1*Lp + 0*F + 1*D + 0*Om) + 1*cos(-1*L + 1*Lp + 0*F + 1*D + 0*Om)
s = s + (-3389 + 0*T)*sin(1*L + 1*Lp + 0*F + 0*D + 0*Om) + 5*cos(1*L + 1*Lp + 0*F + 0*D + 0*Om)
s = s + (3339 + 0*T)*sin(1*L + 0*Lp + 2*F + 0*D + 0*Om) - 13*cos(1*L + 0*Lp + 2*F + 0*D + 0*Om)
s = s + (-1987 + 0*T)*sin(-1*L + 0*Lp + 2*F - 2*D + 1*Om) - 6*cos(-1*L + 0*Lp + 2*F - 2*D + 1*Om)
s = s + (-1981 + 0*T)*sin(1*L + 0*Lp + 0*F + 0*D + 2*Om) + 0*cos(1*L + 0*Lp + 0*F + 0*D + 2*Om)
s = s + (4026 + 0*T)*sin(-1*L + 0*Lp + 0*F + 1*D + 0*Om) - 353*cos(-1*L + 0*Lp + 0*F + 1*D + 0*Om)
s = s + (1660 + 0*T)*sin(0*L + 0*Lp + 2*F + 1*D + 2*Om) - 5*cos(0*L + 0*Lp + 2*F + 1*D + 2*Om)
s = s + (-1521 + 0*T)*sin(-1*L + 0*Lp + 2*F + 4*D + 2*Om) + 9*cos(-1*L + 0*Lp + 2*F + 4*D + 2*Om)
s = s + (1314 + 0*T)*sin(-1*L + 1*Lp + 0*F + 1*D + 1*Om) + 0*cos(-1*L + 1*Lp + 0*F + 1*D + 1*Om)
s = s + (-1283 + 0*T)*sin(0*L - 2*Lp + 2*F - 2*D + 1*Om) + 0*cos(0*L - 2*Lp + 2*F - 2*D + 1*Om)
s = s + (-1331 + 0*T)*sin(1*L + 0*Lp + 2*F + 2*D + 1*Om) + 8*cos(1*L + 0*Lp + 2*F + 2*D + 1*Om)
s = s + (1383 + 0*T)*sin(-2*L + 0*Lp + 2*F + 2*D + 2*Om) - 2*cos(-2*L + 0*Lp + 2*F + 2*D + 2*Om)
s = s + (1405 + 0*T)*sin(-1*L + 0*Lp + 0*F + 0*D + 2*Om) + 4*cos(-1*L + 0*Lp + 0*F + 0*D + 2*Om)
s = s + (1290 + 0*T)*sin(1*L + 1*Lp + 2*F - 2*D + 2*Om) + 0*cos(1*L + 1*Lp + 2*F - 2*D + 2*Om)

-----------------------------------------------------
Convert nutation in longitude from arc sec * 10000000
into decimal degrees. This is the value returned by
the function.

dPsiDeg = s / 36000000000.0

===========================================================================

Algebraic reduction of the above yields the following simplified terms in a
format suitable for conversion into the BASIC programming language.  Other
languages may also be able to use terms expressed in this format. Keep in
mind that the BASIC language is generally NOT case sensitive.

All variables used in the terms are double-precision floating point.

===========================================================================
s = 0
s = s + (-172064161 - 174666*T)*sin(Om) + 33386*cos(Om)
s = s + (-13170906 - 1675*T)*sin(2*(F - D + Om)) - 13696*cos(2*(F - D + Om))
s = s + (-2276413 - 234*T)*sin(2*(F + Om)) + 2796*cos(2*(F + Om))
s = s + (2074554 + 207*T)*sin(2*Om) - 698*cos(2*Om)
s = s + (1475877 - 3633*T)*sin(Lp) + 11817*cos(Lp)
s = s + (-516821 + 1226*T)*sin(Lp + 2*(F - D + Om)) - 524*cos(Lp + 2*(F - D + Om))
s = s + (711159 + 73*T)*sin(L) - 872*cos(L)
s = s + (-387298 - 367*T)*sin(2*F + Om) + 380*cos(2*F + Om)
s = s + (-301461 - 36*T)*sin(L + 2*(F + Om)) + 816*cos(L + 2*(F + Om))
s = s + (215829 - 494*T)*sin(2*(F - D + Om) - Lp) + 111*cos(2*(F - D + Om) - Lp)
s = s + (128227 + 137*T)*sin(2*(F - D) + Om) + 181*cos(2*(F - D) + Om)
s = s + (123457 + 11*T)*sin(2*(F + Om) - L) + 19*cos(2*(F + Om) - L)
s = s + (156994 + 10*T)*sin(2*D - L) - 168*cos(2*D - L)
s = s + (63110 + 63*T)*sin(L + Om) + 27*cos(L + Om)
s = s + (-57976 - 63*T)*sin(Om - L) - 189*cos(Om - L)
s = s + (-59641 - 11*T)*sin(2*(F + D + Om) - L) + 149*cos(2*(F + D + Om) - L)
s = s + (-51613 - 42*T)*sin(L + 2*F + Om) + 129*cos(L + 2*F + Om)
s = s + (45893 + 50*T)*sin(2*(F - L) + Om) + 31*cos(2*(F - L) + Om)
s = s + (63384 + 11*T)*sin(2*D) - 150*cos(2*D)
s = s + (-38571 - T)*sin(2*(F + D + Om)) + 158*cos(2*(F + D + Om))
s = s + 32481*sin(2*(F - Lp - D + Om))
s = s - 47722*sin(2*(D - L)) + 18*cos(2*(D - L))
s = s + (-31046 - T)*sin(2*(L + F + Om)) + 131*cos(2*(L + F + Om))
s = s + 28593*sin(L + 2*(F - D + Om)) - cos(L + 2*(F - D + Om))
s = s + (20441 + 21*T)*sin(2*F + Om - L) + 10*cos(2*F + Om - L)
s = s + 29243*sin(2*L) - 74*cos(2*L)
s = s + 25887*sin(2*F) - 66*cos(2*F)
s = s + (-14053 - 25*T)*sin(Lp + Om) + 79*cos(Lp + Om)
s = s + (15164 + 10*T)*sin(2*D - L + Om) + 11*cos(2*D - L + Om)
s = s + (-15794 + 72*T)*sin(2*(Lp + F - D + Om)) - 16*cos(2*(Lp + F - D + Om))
s = s + 21783*sin(2*(D - F)) + 13*cos(2*(D - F))
s = s + (-12873 - 10*T)*sin(L - 2*D + Om) - 37*cos(L - 2*D + Om)
s = s + (-12654 + 11*T)*sin(Om - Lp) + 63*cos(Om - Lp)
s = s - 10204*sin(2*(F + D) + Om - L) - 25*cos(2*(F + D) + Om - L)
s = s + (16707 - 85*T)*sin(2*Lp) - 10*cos(2*Lp)
s = s - 7691*sin(L + 2*(F + D + Om)) - 44*cos(L + 2*(F + D + Om))
s = s - 11024*sin(2*(F - L)) + 14*cos(2*(F - L))
s = s + (7566 - 21*T)*sin(Lp + 2*(F + Om)) - 11*cos(Lp + 2*(F + Om))
s = s + (-6637 - 11*T)*sin(2*(F + D) + Om) + 25*cos(2*(F + D) + Om)
s = s + (-7141 + 21*T)*sin(2*(F + Om) - Lp) + 8*cos(2*(F + Om) - Lp)
s = s + (-6302 - 11*T)*sin(2*D + Om) + 2*cos(2*D + Om)
s = s + (5800 + 10*T)*sin(L + 2*(F - D) + Om) + 2*cos(L + 2*(F - D) + Om)
s = s + 6443*sin(2*(L + F - D + Om)) - 7*cos(2*(L + F - D + Om))
s = s + (-5774 - 11*T)*sin(2*(D - L) + Om) - 15*cos(2*(D - L) + Om)
s = s - 5350*sin(2*(L + F) + Om) - 21*cos(2*(L + F) + Om)
s = s + (-4752 - 11*T)*sin(2*(F - D) + Om - Lp) - 3*cos(2*(F - D) + Om - Lp)
s = s + (-4940 - 11*T)*sin(Om - 2*D) - 21*cos(Om - 2*D)
s = s + 7350*sin(2*D - L - Lp) - 8*cos(2*D - L - Lp)
s = s + 4065*sin(2*(L - D) + Om) + 6*cos(2*(L - D) + Om)
s = s + 6579*sin(L + 2*D) - 24*cos(L + 2*D)
s = s + 3579*sin(Lp + 2*(F - D) + Om) + 5*cos(Lp + 2*(F - D) + Om)
s = s + 4725*sin(L - Lp) - 6*cos(L - Lp)
s = s - 3075*sin(2*(F + Om - L)) + 2*cos(2*(F + Om - L))
s = s - 2904*sin(3*L + 2*(F + Om)) - 15*cos(3*L + 2*(F + Om))
s = s + 4348*sin(2*D - Lp) - 10*cos(2*D - Lp)
s = s - 2878*sin(L - Lp + 2*(F + Om)) - 8*cos(L - Lp + 2*(F + Om))
s = s - 4230*sin(D) - 5*cos(D)
s = s - 2819*sin(2*(F + D + Om) - L - Lp) - 7*cos(2*(F + D + Om) - L - Lp)
s = s - 4056*sin(2*F - L) - 5*cos(2*F - L)
s = s - 2647*sin(2*(F + D + Om) - Lp) - 11*cos(2*(F + D + Om) - Lp)
s = s - 2294*sin(Om - 2*L) + 10*cos(Om - 2*L)
s = s + 2481*sin(L + Lp + 2*(F + Om)) - 7*cos(L + Lp + 2*(F + Om))
s = s + 2179*sin(2*L + Om) - 2*cos(2*L + Om)
s = s + 3276*sin(Lp + D - L) + cos(Lp + D - L)
s = s - 3389*sin(L + Lp) - 5*cos(L + Lp)
s = s + 3339*sin(L + 2*F) - 13*cos(L + 2*F)
s = s - 1987*sin(2*(F - D) + Om - L) + 6*cos(2*(F - D) + Om - L)
s = s - 1981*sin(L + 2*Om)
s = s + 4026*sin(D - L) - 353*cos(D - L)
s = s + 1660*sin(2*F + D + 2*Om) - 5*cos(D + 2*(F + Om))
s = s - 1521*sin(2*(F + 2*D + Om) - L) - 9*cos(2*(F + 2*D + Om) - L)
s = s + 1314*sin(Lp + D + Om - L)
s = s - 1283*sin(2*(F - D - Lp) + Om)
s = s - 1331*sin(L + 2*F + 2*D + Om) - 8*cos(L + 2*(F + D) + Om)
s = s + 1383*sin(2*(F - L + D + Om)) - 2*cos(2*(F - L + D + Om))
s = s + 1405*sin(2*Om - L) + 4*cos(2*Om - L)
s = s + 1290*sin(L + Lp + 2*(F - D + Om))

dPsiDeg = s / 36000000000.0





===========================================================================

For conversion into Java, CPP or PHP the following term structures may
prove to be more convenient for translation.

All variables used in the terms are double-precision floating point.

In some languages, it may be necessary to replace sin(x) with Math.sin(x)
and cos(x) with Math.cos(x) instead.

===========================================================================
s = 0;
s += (-172064161 - 174666*T)*sin(Om) + 33386*cos(Om);
s += (-13170906 - 1675*T)*sin(2*(F - D + Om)) - 13696*cos(2*(F - D + Om));
s += (-2276413 - 234*T)*sin(2*(F + Om)) + 2796*cos(2*(F + Om));
s += (2074554 + 207*T)*sin(2*Om) - 698*cos(2*Om);
s += (1475877 - 3633*T)*sin(Lp) + 11817*cos(Lp);
s += (-516821 + 1226*T)*sin(Lp + 2*(F - D + Om)) - 524*cos(Lp + 2*(F - D + Om));
s += (711159 + 73*T)*sin(L) - 872*cos(L);
s += (-387298 - 367*T)*sin(2*F + Om) + 380*cos(2*F + Om);
s += (-301461 - 36*T)*sin(L + 2*(F + Om)) + 816*cos(L + 2*(F + Om));
s += (215829 - 494*T)*sin(2*(F - D + Om) - Lp) + 111*cos(2*(F - D + Om) - Lp);
s += (128227 + 137*T)*sin(2*(F - D) + Om) + 181*cos(2*(F - D) + Om);
s += (123457 + 11*T)*sin(2*(F + Om) - L) + 19*cos(2*(F + Om) - L);
s += (156994 + 10*T)*sin(2*D - L) - 168*cos(2*D - L);
s += (63110 + 63*T)*sin(L + Om) + 27*cos(L + Om);
s += (-57976 - 63*T)*sin(Om - L) - 189*cos(Om - L);
s += (-59641 - 11*T)*sin(2*(F + D + Om) - L) + 149*cos(2*(F + D + Om) - L);
s += (-51613 - 42*T)*sin(L + 2*F + Om) + 129*cos(L + 2*F + Om);
s += (45893 + 50*T)*sin(2*(F - L) + Om) + 31*cos(2*(F - L) + Om);
s += (63384 + 11*T)*sin(2*D) - 150*cos(2*D);
s += (-38571 - T)*sin(2*(F + D + Om)) + 158*cos(2*(F + D + Om));
s += 32481*sin(2*(F - Lp - D + Om));
s -= 47722*sin(2*(D - L)) + 18*cos(2*(D - L));
s += (-31046 - T)*sin(2*(L + F + Om)) + 131*cos(2*(L + F + Om));
s += 28593*sin(L + 2*(F - D + Om)) - cos(L + 2*(F - D + Om));
s += (20441 + 21*T)*sin(2*F + Om - L) + 10*cos(2*F + Om - L);
s += 29243*sin(2*L) - 74*cos(2*L);
s += 25887*sin(2*F) - 66*cos(2*F);
s += (-14053 - 25*T)*sin(Lp + Om) + 79*cos(Lp + Om);
s += (15164 + 10*T)*sin(2*D - L + Om) + 11*cos(2*D - L + Om);
s += (-15794 + 72*T)*sin(2*(Lp + F - D + Om)) - 16*cos(2*(Lp + F - D + Om));
s += 21783*sin(2*(D - F)) + 13*cos(2*(D - F));
s += (-12873 - 10*T)*sin(L - 2*D + Om) - 37*cos(L - 2*D + Om);
s += (-12654 + 11*T)*sin(Om - Lp) + 63*cos(Om - Lp);
s -= 10204*sin(2*(F + D) + Om - L) - 25*cos(2*(F + D) + Om - L);
s += (16707 - 85*T)*sin(2*Lp) - 10*cos(2*Lp);
s -= 7691*sin(L + 2*(F + D + Om)) - 44*cos(L + 2*(F + D + Om));
s -= 11024*sin(2*(F - L)) + 14*cos(2*(F - L));
s += (7566 - 21*T)*sin(Lp + 2*(F + Om)) - 11*cos(Lp + 2*(F + Om));
s += (-6637 - 11*T)*sin(2*(F + D) + Om) + 25*cos(2*(F + D) + Om);
s += (-7141 + 21*T)*sin(2*(F + Om) - Lp) + 8*cos(2*(F + Om) - Lp);
s += (-6302 - 11*T)*sin(2*D + Om) + 2*cos(2*D + Om);
s += (5800 + 10*T)*sin(L + 2*(F - D) + Om) + 2*cos(L + 2*(F - D) + Om);
s += 6443*sin(2*(L + F - D + Om)) - 7*cos(2*(L + F - D + Om));
s += (-5774 - 11*T)*sin(2*(D - L) + Om) - 15*cos(2*(D - L) + Om);
s -= 5350*sin(2*(L + F) + Om) - 21*cos(2*(L + F) + Om);
s += (-4752 - 11*T)*sin(2*(F - D) + Om - Lp) - 3*cos(2*(F - D) + Om - Lp);
s += (-4940 - 11*T)*sin(Om - 2*D) - 21*cos(Om - 2*D);
s += 7350*sin(2*D - L - Lp) - 8*cos(2*D - L - Lp);
s += 4065*sin(2*(L - D) + Om) + 6*cos(2*(L - D) + Om);
s += 6579*sin(L + 2*D) - 24*cos(L + 2*D);
s += 3579*sin(Lp + 2*(F - D) + Om) + 5*cos(Lp + 2*(F - D) + Om);
s += 4725*sin(L - Lp) - 6*cos(L - Lp);
s -= 3075*sin(2*(F + Om - L)) + 2*cos(2*(F + Om - L));
s -= 2904*sin(3*L + 2*(F + Om)) - 15*cos(3*L + 2*(F + Om));
s += 4348*sin(2*D - Lp) - 10*cos(2*D - Lp);
s -= 2878*sin(L - Lp + 2*(F + Om)) - 8*cos(L - Lp + 2*(F + Om));
s -= 4230*sin(D) - 5*cos(D);
s -= 2819*sin(2*(F + D + Om) - L - Lp) - 7*cos(2*(F + D + Om) - L - Lp);
s -= 4056*sin(2*F - L) - 5*cos(2*F - L);
s -= 2647*sin(2*(F + D + Om) - Lp) - 11*cos(2*(F + D + Om) - Lp);
s -= 2294*sin(Om - 2*L) + 10*cos(Om - 2*L);
s += 2481*sin(L + Lp + 2*(F + Om)) - 7*cos(L + Lp + 2*(F + Om));
s += 2179*sin(2*L + Om) - 2*cos(2*L + Om);
s += 3276*sin(Lp + D - L) + cos(Lp + D - L);
s -= 3389*sin(L + Lp) - 5*cos(L + Lp);
s += 3339*sin(L + 2*F) - 13*cos(L + 2*F);
s -= 1987*sin(2*(F - D) + Om - L) + 6*cos(2*(F - D) + Om - L);
s -= 1981*sin(L + 2*Om);
s += 4026*sin(D - L) - 353*cos(D - L);
s += 1660*sin(2*F + D + 2*Om) - 5*cos(D + 2*(F + Om));
s -= 1521*sin(2*(F + 2*D + Om) - L) - 9*cos(2*(F + 2*D + Om) - L);
s += 1314*sin(Lp + D + Om - L);
s -= 1283*sin(2*(F - D - Lp) + Om);
s -= 1331*sin(L + 2*F + 2*D + Om) - 8*cos(L + 2*(F + D) + Om);
s += 1383*sin(2*(F - L + D + Om)) - 2*cos(2*(F - L + D + Om));
s += 1405*sin(2*Om - L) + 4*cos(2*Om - L);
s += 1290*sin(L + Lp + 2*(F - D + Om));

dPsiDeg = s / 36000000000.0;






Jay Tanner - 2011
Contact: Jay at PHPScienceLabs dot US
NO SPAM