Blame


1 cd5bae78 2004-04-21 devnull #include "astro.h"
2 cd5bae78 2004-04-21 devnull
3 cd5bae78 2004-04-21 devnull
4 cd5bae78 2004-04-21 devnull void
5 cd5bae78 2004-04-21 devnull venus(void)
6 cd5bae78 2004-04-21 devnull {
7 cd5bae78 2004-04-21 devnull double pturbl, pturbb, pturbr;
8 cd5bae78 2004-04-21 devnull double lograd;
9 cd5bae78 2004-04-21 devnull double dele, enom, vnom, nd, sl;
10 cd5bae78 2004-04-21 devnull double v0, t0, m0, j0, s0;
11 cd5bae78 2004-04-21 devnull double lsun, elong, ci, dlong;
12 cd5bae78 2004-04-21 devnull
13 cd5bae78 2004-04-21 devnull /*
14 cd5bae78 2004-04-21 devnull * here are the mean orbital elements
15 cd5bae78 2004-04-21 devnull */
16 cd5bae78 2004-04-21 devnull
17 cd5bae78 2004-04-21 devnull ecc = .00682069 - .00004774*capt + 0.091e-6*capt2;
18 cd5bae78 2004-04-21 devnull incl = 3.393631 + .0010058*capt - 0.97e-6*capt2;
19 cd5bae78 2004-04-21 devnull node = 75.779647 + .89985*capt + .00041*capt2;
20 cd5bae78 2004-04-21 devnull argp = 130.163833 + 1.408036*capt - .0009763*capt2;
21 cd5bae78 2004-04-21 devnull mrad = .7233316;
22 cd5bae78 2004-04-21 devnull anom = 212.603219 + 1.6021301540*eday + .00128605*capt2;
23 cd5bae78 2004-04-21 devnull motion = 1.6021687039;
24 cd5bae78 2004-04-21 devnull
25 cd5bae78 2004-04-21 devnull /*
26 cd5bae78 2004-04-21 devnull * mean anomalies of perturbing planets
27 cd5bae78 2004-04-21 devnull */
28 cd5bae78 2004-04-21 devnull
29 cd5bae78 2004-04-21 devnull v0 = 212.60 + 1.602130154*eday;
30 cd5bae78 2004-04-21 devnull t0 = 358.63 + .985608747*eday;
31 cd5bae78 2004-04-21 devnull m0 = 319.74 + 0.524032490*eday;
32 cd5bae78 2004-04-21 devnull j0 = 225.43 + .083090842*eday;
33 cd5bae78 2004-04-21 devnull s0 = 175.8 + .033459258*eday;
34 cd5bae78 2004-04-21 devnull
35 cd5bae78 2004-04-21 devnull v0 *= radian;
36 cd5bae78 2004-04-21 devnull t0 *= radian;
37 cd5bae78 2004-04-21 devnull m0 *= radian;
38 cd5bae78 2004-04-21 devnull j0 *= radian;
39 cd5bae78 2004-04-21 devnull s0 *= radian;
40 cd5bae78 2004-04-21 devnull
41 cd5bae78 2004-04-21 devnull incl *= radian;
42 cd5bae78 2004-04-21 devnull node *= radian;
43 cd5bae78 2004-04-21 devnull argp *= radian;
44 cd5bae78 2004-04-21 devnull anom = fmod(anom, 360.)*radian;
45 cd5bae78 2004-04-21 devnull
46 cd5bae78 2004-04-21 devnull /*
47 cd5bae78 2004-04-21 devnull * computation of long period terms affecting the mean anomaly
48 cd5bae78 2004-04-21 devnull */
49 cd5bae78 2004-04-21 devnull
50 cd5bae78 2004-04-21 devnull anom +=
51 cd5bae78 2004-04-21 devnull (2.761-0.022*capt)*radsec*sin(
52 cd5bae78 2004-04-21 devnull 13.*t0 - 8.*v0 + 43.83*radian + 4.52*radian*capt)
53 cd5bae78 2004-04-21 devnull + 0.268*radsec*cos(4.*m0 - 7.*t0 + 3.*v0)
54 cd5bae78 2004-04-21 devnull + 0.019*radsec*sin(4.*m0 - 7.*t0 + 3.*v0)
55 cd5bae78 2004-04-21 devnull - 0.208*radsec*sin(s0 + 1.4*radian*capt);
56 cd5bae78 2004-04-21 devnull
57 cd5bae78 2004-04-21 devnull /*
58 cd5bae78 2004-04-21 devnull * computation of elliptic orbit
59 cd5bae78 2004-04-21 devnull */
60 cd5bae78 2004-04-21 devnull
61 cd5bae78 2004-04-21 devnull enom = anom + ecc*sin(anom);
62 cd5bae78 2004-04-21 devnull do {
63 cd5bae78 2004-04-21 devnull dele = (anom - enom + ecc * sin(enom)) /
64 cd5bae78 2004-04-21 devnull (1 - ecc*cos(enom));
65 cd5bae78 2004-04-21 devnull enom += dele;
66 cd5bae78 2004-04-21 devnull } while(fabs(dele) > converge);
67 cd5bae78 2004-04-21 devnull vnom = 2*atan2(sqrt((1+ecc)/(1-ecc))*sin(enom/2),
68 cd5bae78 2004-04-21 devnull cos(enom/2));
69 cd5bae78 2004-04-21 devnull rad = mrad*(1 - ecc*cos(enom));
70 cd5bae78 2004-04-21 devnull
71 cd5bae78 2004-04-21 devnull lambda = vnom + argp;
72 cd5bae78 2004-04-21 devnull
73 cd5bae78 2004-04-21 devnull /*
74 cd5bae78 2004-04-21 devnull * perturbations in longitude
75 cd5bae78 2004-04-21 devnull */
76 cd5bae78 2004-04-21 devnull
77 cd5bae78 2004-04-21 devnull icosadd(venfp, vencp);
78 cd5bae78 2004-04-21 devnull pturbl = cosadd(4, v0, t0, m0, j0);
79 cd5bae78 2004-04-21 devnull pturbl *= radsec;
80 cd5bae78 2004-04-21 devnull
81 cd5bae78 2004-04-21 devnull /*
82 cd5bae78 2004-04-21 devnull * perturbations in latidude
83 cd5bae78 2004-04-21 devnull */
84 cd5bae78 2004-04-21 devnull
85 cd5bae78 2004-04-21 devnull pturbb = cosadd(3, v0, t0, j0);
86 cd5bae78 2004-04-21 devnull pturbb *= radsec;
87 cd5bae78 2004-04-21 devnull
88 cd5bae78 2004-04-21 devnull /*
89 cd5bae78 2004-04-21 devnull * perturbations in log radius vector
90 cd5bae78 2004-04-21 devnull */
91 cd5bae78 2004-04-21 devnull
92 cd5bae78 2004-04-21 devnull pturbr = cosadd(4, v0, t0, m0, j0);
93 cd5bae78 2004-04-21 devnull
94 cd5bae78 2004-04-21 devnull /*
95 cd5bae78 2004-04-21 devnull * reduction to the ecliptic
96 cd5bae78 2004-04-21 devnull */
97 cd5bae78 2004-04-21 devnull
98 cd5bae78 2004-04-21 devnull lambda += pturbl;
99 cd5bae78 2004-04-21 devnull nd = lambda - node;
100 cd5bae78 2004-04-21 devnull lambda = node + atan2(sin(nd)*cos(incl),cos(nd));
101 cd5bae78 2004-04-21 devnull
102 cd5bae78 2004-04-21 devnull sl = sin(incl)*sin(nd);
103 cd5bae78 2004-04-21 devnull beta = atan2(sl, pyth(sl)) + pturbb;
104 cd5bae78 2004-04-21 devnull
105 cd5bae78 2004-04-21 devnull lograd = pturbr*2.30258509;
106 cd5bae78 2004-04-21 devnull rad *= 1 + lograd;
107 cd5bae78 2004-04-21 devnull
108 cd5bae78 2004-04-21 devnull
109 cd5bae78 2004-04-21 devnull motion *= radian*mrad*mrad/(rad*rad);
110 cd5bae78 2004-04-21 devnull
111 cd5bae78 2004-04-21 devnull /*
112 cd5bae78 2004-04-21 devnull * computation of magnitude
113 cd5bae78 2004-04-21 devnull */
114 cd5bae78 2004-04-21 devnull
115 cd5bae78 2004-04-21 devnull lsun = 99.696678 + 0.9856473354*eday;
116 cd5bae78 2004-04-21 devnull lsun *= radian;
117 cd5bae78 2004-04-21 devnull elong = lambda - lsun;
118 cd5bae78 2004-04-21 devnull ci = (rad - cos(elong))/sqrt(1 + rad*rad - 2*rad*cos(elong));
119 cd5bae78 2004-04-21 devnull dlong = atan2(pyth(ci), ci)/radian;
120 cd5bae78 2004-04-21 devnull mag = -4 + .01322*dlong + .0000004247*dlong*dlong*dlong;
121 cd5bae78 2004-04-21 devnull
122 cd5bae78 2004-04-21 devnull semi = 8.41;
123 cd5bae78 2004-04-21 devnull
124 cd5bae78 2004-04-21 devnull helio();
125 cd5bae78 2004-04-21 devnull geo();
126 cd5bae78 2004-04-21 devnull }