xref: /plan9/sys/src/cmd/astro/jup.c (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
1 #include "astro.h"
2 
3 void
jup(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) > converge);
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