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.;
19 incl *= radian;
20 node *= radian;
21 argp *= radian;
22 anom = fmod(anom,360.)*radian;
24 enom = anom + ecc*sin(anom);
25 do {
26 dele = (anom - enom + ecc * sin(enom)) /
27 (1. - ecc*cos(enom));
28 enom += dele;
29 } while(fabs(dele) > converge);
30 vnom = 2.*atan2(sqrt((1.+ecc)/(1.-ecc))*sin(enom/2.),
31 cos(enom/2.));
32 rad = mrad*(1. - ecc*cos(enom));
34 lambda = vnom + argp;
36 pturbl = 0.;
38 lambda += pturbl*radsec;
40 pturbb = 0.;
42 pturbr = 0.;
44 /*
45 * reduce to the ecliptic
46 */
48 nd = lambda - node;
49 lambda = node + atan2(sin(nd)*cos(incl),cos(nd));
51 sl = sin(incl)*sin(nd) + pturbb*radsec;
52 beta = atan2(sl, pyth(sl));
54 lograd = pturbr*2.30258509;
55 rad *= 1. + lograd;
58 lambda += 555.*radsec;
59 beta -= 51.*radsec;
60 motion *= radian*mrad*mrad/(rad*rad);
61 semi = 98.47;
63 mag = -8.93;
64 helio();
65 geo();
66 }