Blame


1 cd5bae78 2004-04-21 devnull #include "astro.h"
2 cd5bae78 2004-04-21 devnull
3 cd5bae78 2004-04-21 devnull Obj2* objlst[] =
4 cd5bae78 2004-04-21 devnull {
5 cd5bae78 2004-04-21 devnull &osun,
6 cd5bae78 2004-04-21 devnull &omoon,
7 cd5bae78 2004-04-21 devnull &oshad,
8 cd5bae78 2004-04-21 devnull &omerc,
9 cd5bae78 2004-04-21 devnull &ovenus,
10 cd5bae78 2004-04-21 devnull &omars,
11 cd5bae78 2004-04-21 devnull &ojup,
12 cd5bae78 2004-04-21 devnull &osat,
13 cd5bae78 2004-04-21 devnull &ouran,
14 cd5bae78 2004-04-21 devnull &onept,
15 cd5bae78 2004-04-21 devnull &oplut,
16 cd5bae78 2004-04-21 devnull &ocomet,
17 cbeb0b26 2006-04-01 devnull 0
18 cd5bae78 2004-04-21 devnull };
19 cd5bae78 2004-04-21 devnull
20 cd5bae78 2004-04-21 devnull struct idata
21 cd5bae78 2004-04-21 devnull {
22 cd5bae78 2004-04-21 devnull char* name;
23 cd5bae78 2004-04-21 devnull char* name1;
24 cd5bae78 2004-04-21 devnull void (*obj)(void);
25 cd5bae78 2004-04-21 devnull } idata[] =
26 cd5bae78 2004-04-21 devnull {
27 cd5bae78 2004-04-21 devnull "The sun", "sun", fsun,
28 cd5bae78 2004-04-21 devnull "The moon", "moon", moon,
29 cd5bae78 2004-04-21 devnull "The shadow", "shadow", shad,
30 cd5bae78 2004-04-21 devnull "Mercury", "mercury", merc,
31 cd5bae78 2004-04-21 devnull "Venus", "venus", venus,
32 cd5bae78 2004-04-21 devnull "Mars", "mars", mars,
33 cd5bae78 2004-04-21 devnull "Jupiter", "jupiter", jup,
34 cd5bae78 2004-04-21 devnull "Saturn", "saturn", sat,
35 cd5bae78 2004-04-21 devnull "Uranus", "uranus", uran,
36 cd5bae78 2004-04-21 devnull "Neptune", "neptune", nept,
37 cd5bae78 2004-04-21 devnull "Pluto", "pluto", plut,
38 cbeb0b26 2006-04-01 devnull "Comet", "comet", comet
39 cd5bae78 2004-04-21 devnull };
40 cd5bae78 2004-04-21 devnull
41 cd5bae78 2004-04-21 devnull void
42 cd5bae78 2004-04-21 devnull init(void)
43 cd5bae78 2004-04-21 devnull {
44 cd5bae78 2004-04-21 devnull Obj2 *q;
45 cd5bae78 2004-04-21 devnull int i;
46 cd5bae78 2004-04-21 devnull
47 cd5bae78 2004-04-21 devnull glat = nlat - (692.74*radsec)*sin(2.*nlat)
48 cd5bae78 2004-04-21 devnull + (1.16*radsec)*sin(4.*nlat);
49 cd5bae78 2004-04-21 devnull erad = .99832707e0 + .00167644e0*cos(2.*nlat)
50 cd5bae78 2004-04-21 devnull - 0.352e-5*cos(4.*nlat)
51 cd5bae78 2004-04-21 devnull + 0.001e-5*cos(6.*nlat)
52 cd5bae78 2004-04-21 devnull + 0.1568e-6*elev;
53 cd5bae78 2004-04-21 devnull
54 cd5bae78 2004-04-21 devnull for(i=0; q=objlst[i]; i++) {
55 cd5bae78 2004-04-21 devnull q->name = idata[i].name;
56 cd5bae78 2004-04-21 devnull q->name1 = idata[i].name1;
57 cd5bae78 2004-04-21 devnull q->obj = idata[i].obj;
58 cd5bae78 2004-04-21 devnull }
59 cd5bae78 2004-04-21 devnull ostar.obj = fstar;
60 cd5bae78 2004-04-21 devnull ostar.name = "star";
61 cd5bae78 2004-04-21 devnull }
62 cd5bae78 2004-04-21 devnull
63 cd5bae78 2004-04-21 devnull void
64 cd5bae78 2004-04-21 devnull setime(double d)
65 cd5bae78 2004-04-21 devnull {
66 cd5bae78 2004-04-21 devnull double x, xm, ym, zm;
67 cd5bae78 2004-04-21 devnull
68 cd5bae78 2004-04-21 devnull eday = d + deltat/86400.;
69 cd5bae78 2004-04-21 devnull wlong = awlong + 15.*deltat*radsec;
70 cd5bae78 2004-04-21 devnull
71 cd5bae78 2004-04-21 devnull capt = eday/36524.220e0;
72 cd5bae78 2004-04-21 devnull capt2 = capt*capt;
73 cd5bae78 2004-04-21 devnull capt3 = capt*capt2;
74 cd5bae78 2004-04-21 devnull nutate();
75 cd5bae78 2004-04-21 devnull eday += .1;
76 cd5bae78 2004-04-21 devnull sun();
77 cd5bae78 2004-04-21 devnull srad = rad;
78 cd5bae78 2004-04-21 devnull xm = rad*cos(beta)*cos(lambda);
79 cd5bae78 2004-04-21 devnull ym = rad*cos(beta)*sin(lambda);
80 cd5bae78 2004-04-21 devnull zm = rad*sin(beta);
81 cd5bae78 2004-04-21 devnull eday -= .1;
82 cd5bae78 2004-04-21 devnull sun();
83 cd5bae78 2004-04-21 devnull xms = rad*cos(beta)*cos(lambda);
84 cd5bae78 2004-04-21 devnull yms = rad*cos(beta)*sin(lambda);
85 cd5bae78 2004-04-21 devnull zms = rad*sin(beta);
86 cd5bae78 2004-04-21 devnull x = .057756;
87 cd5bae78 2004-04-21 devnull xdot = x*(xm-xms);
88 cd5bae78 2004-04-21 devnull ydot = x*(ym-yms);
89 cd5bae78 2004-04-21 devnull zdot = x*(zm-zms);
90 cd5bae78 2004-04-21 devnull }
91 cd5bae78 2004-04-21 devnull
92 cd5bae78 2004-04-21 devnull void
93 cd5bae78 2004-04-21 devnull setobj(Obj1 *op)
94 cd5bae78 2004-04-21 devnull {
95 cd5bae78 2004-04-21 devnull Obj1 *p;
96 cd5bae78 2004-04-21 devnull
97 cd5bae78 2004-04-21 devnull p = op;
98 cd5bae78 2004-04-21 devnull p->ra = ra;
99 cd5bae78 2004-04-21 devnull p->decl2 = decl2;
100 cd5bae78 2004-04-21 devnull p->semi2 = semi2;
101 cd5bae78 2004-04-21 devnull p->az = az;
102 cd5bae78 2004-04-21 devnull p->el = el;
103 cd5bae78 2004-04-21 devnull p->mag = mag;
104 cd5bae78 2004-04-21 devnull }
105 cd5bae78 2004-04-21 devnull
106 cd5bae78 2004-04-21 devnull long starsao = 0;
107 cd5bae78 2004-04-21 devnull
108 cd5bae78 2004-04-21 devnull void
109 cd5bae78 2004-04-21 devnull fstar(void)
110 cd5bae78 2004-04-21 devnull {
111 cd5bae78 2004-04-21 devnull
112 cd5bae78 2004-04-21 devnull ra = ostar.point[0].ra;
113 cd5bae78 2004-04-21 devnull decl2 = ostar.point[0].decl2;
114 cd5bae78 2004-04-21 devnull semi2 = ostar.point[0].semi2;
115 cd5bae78 2004-04-21 devnull az = ostar.point[0].az;
116 cd5bae78 2004-04-21 devnull el = ostar.point[0].el;
117 cd5bae78 2004-04-21 devnull mag = ostar.point[0].mag;
118 cd5bae78 2004-04-21 devnull }
119 cd5bae78 2004-04-21 devnull
120 cd5bae78 2004-04-21 devnull void
121 cd5bae78 2004-04-21 devnull fsun(void)
122 cd5bae78 2004-04-21 devnull {
123 cd5bae78 2004-04-21 devnull
124 cd5bae78 2004-04-21 devnull beta = 0;
125 cd5bae78 2004-04-21 devnull rad = 0;
126 cd5bae78 2004-04-21 devnull lambda = 0;
127 cd5bae78 2004-04-21 devnull motion = 0;
128 cd5bae78 2004-04-21 devnull helio();
129 cd5bae78 2004-04-21 devnull geo();
130 cd5bae78 2004-04-21 devnull seday = eday;
131 cd5bae78 2004-04-21 devnull salph = alpha;
132 cd5bae78 2004-04-21 devnull sdelt = delta;
133 cd5bae78 2004-04-21 devnull mag = lmb2;
134 cd5bae78 2004-04-21 devnull }
135 cd5bae78 2004-04-21 devnull
136 cd5bae78 2004-04-21 devnull void
137 cd5bae78 2004-04-21 devnull shad(void)
138 cd5bae78 2004-04-21 devnull {
139 cd5bae78 2004-04-21 devnull
140 cd5bae78 2004-04-21 devnull if(seday != eday)
141 cd5bae78 2004-04-21 devnull fsun();
142 cd5bae78 2004-04-21 devnull if(meday != eday)
143 cd5bae78 2004-04-21 devnull moon();
144 cd5bae78 2004-04-21 devnull alpha = fmod(salph+pi, pipi);
145 cd5bae78 2004-04-21 devnull delta = -sdelt;
146 cd5bae78 2004-04-21 devnull hp = mhp;
147 cd5bae78 2004-04-21 devnull semi = 1.0183*mhp/radsec - 969.85/srad;
148 cd5bae78 2004-04-21 devnull geo();
149 cd5bae78 2004-04-21 devnull }