mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-15 11:20:03 +00:00
87 lines
1.7 KiB
C
87 lines
1.7 KiB
C
|
#include "astro.h"
|
||
|
|
||
|
void
|
||
|
nutate(void)
|
||
|
{
|
||
|
|
||
|
/*
|
||
|
* uses radian, radsec
|
||
|
* sets phi, eps, dphi, deps, obliq, gst, tobliq
|
||
|
*/
|
||
|
|
||
|
double msun, mnom, noded, dmoon;
|
||
|
|
||
|
/*
|
||
|
* nutation of the equinoxes is a wobble of the pole
|
||
|
* of the earths rotation whose magnitude is about
|
||
|
* 9 seconds of arc and whose period is about 18.6 years.
|
||
|
*
|
||
|
* it depends upon the pull of the sun and moon on the
|
||
|
* equatorial bulge of the earth.
|
||
|
*
|
||
|
* phi and eps are the two angles which specify the
|
||
|
* true pole with respect to the mean pole.
|
||
|
*
|
||
|
* all coeffieients are from Exp. Supp. pp.44-45
|
||
|
*/
|
||
|
|
||
|
mnom = 296.104608 + 13.0649924465*eday + 9.192e-3*capt2
|
||
|
+ 14.38e-6*capt3;
|
||
|
mnom *= radian;
|
||
|
msun = 358.475833 + .9856002669*eday - .150e-3*capt2
|
||
|
- 3.33e-6*capt3;
|
||
|
msun *= radian;
|
||
|
noded = 11.250889 + 13.2293504490*eday - 3.211e-3*capt2
|
||
|
- 0.33e-6*capt3;
|
||
|
noded *= radian;
|
||
|
dmoon = 350.737486 + 12.1907491914*eday - 1.436e-3*capt2
|
||
|
+ 1.89e-6*capt3;
|
||
|
dmoon *= radian;
|
||
|
node = 259.183275 - .0529539222*eday + 2.078e-3*capt2
|
||
|
+ 2.22e-6*capt3;
|
||
|
node *= radian;
|
||
|
|
||
|
/*
|
||
|
* long period terms
|
||
|
*/
|
||
|
|
||
|
phi = 0.;
|
||
|
eps = 0.;
|
||
|
dphi = 0.;
|
||
|
deps = 0.;
|
||
|
|
||
|
|
||
|
icosadd(nutfp, nutcp);
|
||
|
phi = -(17.2327+.01737*capt)*sin(node);
|
||
|
phi += sinadd(4, node, noded, dmoon, msun);
|
||
|
|
||
|
eps = cosadd(4, node, noded, dmoon, msun);
|
||
|
|
||
|
/*
|
||
|
* short period terms
|
||
|
*/
|
||
|
|
||
|
|
||
|
dphi = sinadd(4, node, noded, mnom, dmoon);
|
||
|
|
||
|
deps = cosadd(3, node, noded, mnom);
|
||
|
|
||
|
phi = (phi+dphi)*radsec;
|
||
|
eps = (eps+deps)*radsec;
|
||
|
dphi *= radsec;
|
||
|
deps *= radsec;
|
||
|
|
||
|
obliq = 23.452294 - .0130125*capt - 1.64e-6*capt2
|
||
|
+ 0.503e-6*capt3;
|
||
|
obliq *= radian;
|
||
|
tobliq = obliq + eps;
|
||
|
|
||
|
gst = 99.690983 + 360.9856473354*eday + .000387*capt2;
|
||
|
gst -= 180.;
|
||
|
gst = fmod(gst, 360.);
|
||
|
if(gst < 0.)
|
||
|
gst += 360.;
|
||
|
gst *= radian;
|
||
|
gst += phi*cos(obliq);
|
||
|
}
|