|
|
1.1 root 1: #include "sky.h"
2:
3: star()
4: {
5: double capt0, capt1, capt12, capt13;
6: double sl, sb, cl;
7: double zt, zee, tht;
8: double sa, ca, sd;
9:
10: capt0 = epoch/36524.220;
11: capt1 = (eday - epoch)/36524.220;
12: capt12 = capt1*capt1;
13: capt13 = capt12*capt1;
14:
15: da = da*radsec*15.*100.;
16: dd = dd*radsec*100.;
17:
18: /*
19: * remove E-terms of aberration
20: * except when finding catalog mean places
21: * See Exp. Supp. p. 144 and 48
22: *
23: * I have omitted an unimportant time dependence which depends
24: * in essence on the change in the eccentricity
25: * and the perihelion position of the earths orbit.
26: */
27:
28: alpha = alpha + .341*radsec*sin(alpha+168.8*radian)
29: /cos(delta);
30: delta = delta + .341*radsec*cos(alpha+168.8*radian)
31: *sin(delta) + .029*radsec*cos(delta);
32:
33: /*
34: * Correct for proper motion.
35: *
36: * This computation is a second order approximation which
37: * causes no perciptible error in a millenium.
38: */
39:
40: alpha = alpha + capt1*da
41: + da*dd*sin(delta)/cos(delta)*capt1*capt1;
42: delta = delta + capt1*dd
43: - 0.25*da*da*sin(2.*delta)*capt1*capt1;
44:
45: /*
46: * The effect of radial velocity has been omitted.
47: * The only bright stars perceptibly affected are
48: * Sirius, alpha Cent, and Altair.
49: */
50:
51: /*
52: * convert mean places at epoch of startable to current
53: * epoch (i.e. compute relevant precession)
54: * Coefficients are from Exp. Supp. p. 30.
55: */
56:
57: zt = (2304.250 + 1.396*capt0)*capt1 + 0.302*capt12
58: + 0.018*capt13;
59: zee = zt + 0.791*capt12;
60: tht = (2004.682 - 0.853*capt0)*capt1 - 0.426*capt12
61: - 0.042*capt13;
62:
63: zt = zt*radsec;
64: zee = zee*radsec;
65: tht = tht*radsec;
66:
67: sa = cos(delta)*sin(alpha+zt);
68: ca = cos(tht)*cos(delta)*cos(alpha+zt) - sin(tht)*sin(delta);
69: sd = cos(tht)*sin(delta) + sin(tht)*cos(delta)*cos(alpha+zt);
70:
71: alpha = atan2(sa,ca) + zee;
72: delta = atan2(sd, sqrt(sa*sa+ca*ca));
73:
74: /*
75: * convert to mean ecliptic system of date
76: */
77:
78: cl = cos(delta)*cos(alpha);
79: sl = cos(delta)*sin(alpha)*cos(obliq) + sin(delta)*sin(obliq);
80: sb = -cos(delta)*sin(alpha)*sin(obliq) + sin(delta)*cos(obliq);
81: lambda = atan2(sl,cl);
82: beta = atan2(sb,sqrt(cl*cl+sl*sl));
83: if(px > 1.0) px = 0.;
84: if(px != 0.) rad = 1./(radsec*px);
85: if(px <= 0.) rad = 1.e9;
86: semi = 0.;
87: ldot = 0.;
88: bdot = 0.;
89: rdot = 0.;
90:
91: helio();
92: geo();
93: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.