1 #include "astro.h" 2 3 void 4 jup(void) 5 { 6 double pturbl, pturbb, pturbr; 7 double lograd; 8 double dele, enom, vnom, nd, sl; 9 10 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.; 18 19 20 anom = anom; 21 incl *= radian; 22 node *= radian; 23 argp *= radian; 24 anom = fmod(anom,360.)*radian; 25 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) > 1.e-8); 32 vnom = 2.*atan2(sqrt((1.+ecc)/(1.-ecc))*sin(enom/2.), 33 cos(enom/2.)); 34 rad = mrad*(1. - ecc*cos(enom)); 35 36 lambda = vnom + argp; 37 38 pturbl = 0.; 39 40 lambda += pturbl*radsec; 41 42 pturbb = 0.; 43 44 pturbr = 0.; 45 46 /* 47 * reduce to the ecliptic 48 */ 49 50 nd = lambda - node; 51 lambda = node + atan2(sin(nd)*cos(incl),cos(nd)); 52 53 sl = sin(incl)*sin(nd) + pturbb*radsec; 54 beta = atan2(sl, pyth(sl)); 55 56 lograd = pturbr*2.30258509; 57 rad *= 1. + lograd; 58 59 60 lambda += 555.*radsec; 61 beta -= 51.*radsec; 62 motion *= radian*mrad*mrad/(rad*rad); 63 semi = 98.47; 64 65 mag = -8.93; 66 helio(); 67 geo(); 68 } 69