plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

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 }