jup.c (1143B)
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 incl *= radian; 20 node *= radian; 21 argp *= radian; 22 anom = fmod(anom,360.)*radian; 23 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)); 33 34 lambda = vnom + argp; 35 36 pturbl = 0.; 37 38 lambda += pturbl*radsec; 39 40 pturbb = 0.; 41 42 pturbr = 0.; 43 44 /* 45 * reduce to the ecliptic 46 */ 47 48 nd = lambda - node; 49 lambda = node + atan2(sin(nd)*cos(incl),cos(nd)); 50 51 sl = sin(incl)*sin(nd) + pturbb*radsec; 52 beta = atan2(sl, pyth(sl)); 53 54 lograd = pturbr*2.30258509; 55 rad *= 1. + lograd; 56 57 58 lambda += 555.*radsec; 59 beta -= 51.*radsec; 60 motion *= radian*mrad*mrad/(rad*rad); 61 semi = 98.47; 62 63 mag = -8.93; 64 helio(); 65 geo(); 66 }