|  | #include "astro.h" | 
|  |  | 
|  | void | 
|  | mars(void) | 
|  | { | 
|  | double pturbl, pturbb, pturbr; | 
|  | double lograd; | 
|  | double dele, enom, vnom, nd, sl; | 
|  | double lsun, elong, ci, dlong; | 
|  |  | 
|  |  | 
|  | ecc = .09331290 + .000092064*capt; | 
|  | incl = 1.850333 - 6.75e-4*capt; | 
|  | node = 48.786442 + .770992*capt; | 
|  | argp = 334.218203 + 1.840758*capt + 1.30e-4*capt2; | 
|  | mrad = 1.5236915; | 
|  | anom = 319.529425 + .5240207666*eday + 1.808e-4*capt2; | 
|  | motion = 0.5240711638; | 
|  |  | 
|  |  | 
|  | incl = incl*radian; | 
|  | node = node*radian; | 
|  | argp = argp*radian; | 
|  | anom = fmod(anom,360.)*radian; | 
|  |  | 
|  | enom = anom + ecc*sin(anom); | 
|  | do { | 
|  | dele = (anom - enom + ecc * sin(enom)) / | 
|  | (1. - ecc*cos(enom)); | 
|  | enom += dele; | 
|  | } while(fabs(dele) > converge); | 
|  | vnom = 2.*atan2(sqrt((1.+ecc)/(1.-ecc))*sin(enom/2.),cos(enom/2.)); | 
|  | rad = mrad*(1. - ecc*cos(enom)); | 
|  |  | 
|  | lambda = vnom + argp; | 
|  | pturbl = 0.; | 
|  | lambda = lambda + pturbl*radsec; | 
|  | pturbb = 0.; | 
|  | pturbr = 0.; | 
|  |  | 
|  | /* | 
|  | *	reduce to the ecliptic | 
|  | */ | 
|  |  | 
|  | nd = lambda - node; | 
|  | lambda = node + atan2(sin(nd)*cos(incl),cos(nd)); | 
|  |  | 
|  | sl = sin(incl)*sin(nd) + pturbb*radsec; | 
|  | beta = atan2(sl, pyth(sl)); | 
|  |  | 
|  | lograd = pturbr*2.30258509; | 
|  | rad *= 1. + lograd; | 
|  |  | 
|  |  | 
|  | motion *= radian*mrad*mrad/(rad*rad); | 
|  | semi = 4.68; | 
|  |  | 
|  | lsun = 99.696678 + 0.9856473354*eday; | 
|  | lsun *= radian; | 
|  | elong = lambda - lsun; | 
|  | ci = (rad - cos(elong))/sqrt(1. + rad*rad - 2.*rad*cos(elong)); | 
|  | dlong = atan2(pyth(ci), ci)/radian; | 
|  | mag = -1.30 + .01486*dlong; | 
|  |  | 
|  | helio(); | 
|  | geo(); | 
|  | } |