Blob


1 #include "astro.h"
3 void
4 jup(void)
5 {
6 double pturbl, pturbb, pturbr;
7 double lograd;
8 double dele, enom, vnom, nd, sl;
11 ecc = .0483376 + 163.e-6*capt;
12 incl = 1.308660 - .0055*capt;
13 node = 99.43785 + 1.011*capt;
14 argp = 12.71165 + 1.611*capt;
15 mrad = 5.202803;
16 anom = 225.22165 + .0830912*eday - .0484*capt;
17 motion = 299.1284/3600.;
20 anom = anom;
21 incl *= radian;
22 node *= radian;
23 argp *= radian;
24 anom = fmod(anom,360.)*radian;
26 enom = anom + ecc*sin(anom);
27 do {
28 dele = (anom - enom + ecc * sin(enom)) /
29 (1. - ecc*cos(enom));
30 enom += dele;
31 } while(fabs(dele) > converge);
32 vnom = 2.*atan2(sqrt((1.+ecc)/(1.-ecc))*sin(enom/2.),
33 cos(enom/2.));
34 rad = mrad*(1. - ecc*cos(enom));
36 lambda = vnom + argp;
38 pturbl = 0.;
40 lambda += pturbl*radsec;
42 pturbb = 0.;
44 pturbr = 0.;
46 /*
47 * reduce to the ecliptic
48 */
50 nd = lambda - node;
51 lambda = node + atan2(sin(nd)*cos(incl),cos(nd));
53 sl = sin(incl)*sin(nd) + pturbb*radsec;
54 beta = atan2(sl, pyth(sl));
56 lograd = pturbr*2.30258509;
57 rad *= 1. + lograd;
60 lambda += 555.*radsec;
61 beta -= 51.*radsec;
62 motion *= radian*mrad*mrad/(rad*rad);
63 semi = 98.47;
65 mag = -8.93;
66 helio();
67 geo();
68 }