source: Sophya/trunk/SophyaExt/XephemAstroLib/astro.h@ 1719

Last change on this file since 1719 was 1719, checked in by cmv, 24 years ago

Adapted to version 3.5 xephem cmv 22/10/2001

File size: 6.2 KB
RevLine 
[1457]1#ifndef PI
2#define PI 3.141592653589793
3#endif
4
5/* conversions among hours (of ra), degrees and radians. */
6#define degrad(x) ((x)*PI/180.)
7#define raddeg(x) ((x)*180./PI)
8#define hrdeg(x) ((x)*15.)
9#define deghr(x) ((x)/15.)
10#define hrrad(x) degrad(hrdeg(x))
11#define radhr(x) deghr(raddeg(x))
12
13/* ratio of from synodic (solar) to sidereal (stellar) rate */
14#define SIDRATE .9972695677
15
16#define SPD (24.0*3600.0) /* seconds per day */
17
18/* manifest names for planets.
19 * N.B. must coincide with usage in pelement.c and plans.c.
20 * N.B. only the first 8 are valid for use with plans().
21 */
22#define MERCURY 0
23#define VENUS 1
24#define MARS 2
25#define JUPITER 3
26#define SATURN 4
27#define URANUS 5
28#define NEPTUNE 6
29#define PLUTO 7
30
31/* a few more handy ones */
32#define SUN 8
33#define MOON 9
34#define OBJX 10
35#define OBJY 11
36#define OBJZ 12
37#define NOBJ 13 /* total number of basic objects */
38
39/* starting point for MJD calculations
40 */
41#define MJD0 2415020.0
42#define J2000 (2451545.0 - MJD0) /* let compiler optimise */
43
44
45
46/* global function declarations */
47
48/* aa_hadec.c */
49extern void aa_hadec P_((double lat, double alt, double az, double *ha,
50 double *dec));
51extern void hadec_aa P_((double lat, double ha, double dec, double *alt,
52 double *az));
53
54/* aberration.c */
55extern void ab_ecl P_((double mjd, double lsn, double *lam, double *bet));
56extern void ab_eq P_((double mjd, double lsn, double *ra, double *dec));
57
58/* airmass.c */
59extern void airmass P_((double aa, double *Xp));
60
61/* anomaly.c */
62extern void anomaly P_((double ma, double s, double *nu, double *ea));
63
64/* chap95.c */
65extern int chap95 P_((double mjd, int obj, double prec, double *ret));
66
67/* chap95_data.c */
68
69/* comet.c */
70extern void comet P_((double mjd, double ep, double inc, double ap, double qp,
71 double om, double *lpd, double *psi, double *rp, double *rho, double *lam,
72 double *bet));
73
74/* deltat.c */
75extern double deltat P_((double mjd));
76
77/* eq_ecl.c */
78extern void eq_ecl P_((double mjd, double ra, double dec, double *lat,
79 double *lng));
80extern void ecl_eq P_((double mjd, double lat, double lng, double *ra,
81 double *dec));
82
83/* eq_gal.c */
84extern void eq_gal P_((double mjd, double ra, double dec, double *lat,
85 double *lng));
86extern void gal_eq P_((double mjd, double lat, double lng, double *ra,
87 double *dec));
88
89/* formats.c */
90extern void fs_sexa P_((char *out, double a, int w, int fracbase));
91extern void fs_date P_((char out[], double jd));
92extern void f_scansex P_((double o, char *str, double *dp));
93extern void f_sscandate P_((char *bp, int pref, int *m, double *d, int *y));
94extern int scansex P_((char *str, double *dp));
95
96/* helio.c */
97extern void heliocorr P_((double jd, double ra, double dec, double *hcp));
98
99/* libration.c */
100extern void llibration P_((double JD, double *llatp, double *llonp));
101
102/* misc.c */
103extern void zero_mem P_((void *loc, unsigned len));
104extern int tickmarks P_((double min, double max, int numdiv, double ticks[]));
105extern int lc P_((int cx, int cy, int cw, int x1, int y1, int x2, int y2,
106 int *sx1, int *sy1, int *sx2, int *sy2));
107extern void hg_mag P_((double h, double g, double rp, double rho, double rsn,
108 double *mp));
109extern int magdiam P_((int fmag, int magstp, double scale, double mag,
110 double size));
111extern void gk_mag P_((double g, double k, double rp, double rho, double *mp));
112extern double atod P_((char *buf));
113extern void solve_sphere P_((double A, double b, double cc, double sc,
114 double *cap, double *Bp));
115extern double delra P_((double dra));
116
117/* mjd.c */
118extern void cal_mjd P_((int mn, double dy, int yr, double *mjd));
119extern void mjd_cal P_((double mjd, int *mn, double *dy, int *yr));
120extern int mjd_dow P_((double mjd, int *dow));
121extern int isleapyear P_((int year));
122extern void mjd_dpm P_((double mjd, int *ndays));
123extern void mjd_year P_((double mjd, double *yr));
124extern void year_mjd P_((double y, double *mjd));
125extern void rnd_second P_((double *t));
126extern void mjd_dayno P_((double jd, int *yr, double *dy));
127extern double mjd_day P_((double jd));
128extern double mjd_hr P_((double jd));
129extern void range P_((double *v, double r));
130
131/* moon.c */
132extern void moon P_((double mjd, double *lam, double *bet, double *rho,
133 double *msp, double *mdp));
134
135/* mooncolong.c */
136extern void moon_colong P_((double jd, double lt, double lg, double *cp, double *kp, double *ap, double *sp));
137
138/* nutation.c */
139extern void nutation P_((double mjd, double *deps, double *dpsi));
140extern void nut_eq P_((double mjd, double *ra, double *dec));
141
142/* obliq.c */
143extern void obliquity P_((double mjd, double *eps));
144
145/* parallax.c */
146extern void ta_par P_((double tha, double tdec, double phi, double ht,
147 double *rho, double *aha, double *adec));
148
149/* plans.c */
150extern void plans P_((double mjd, int p, double *lpd0, double *psi0,
151 double *rp0, double *rho0, double *lam, double *bet, double *dia,
152 double *mag));
153
154/* precess.c */
155extern void precess P_((double mjd1, double mjd2, double *ra, double *dec));
156
157/* reduce.c */
158extern void reduce_elements P_((double mjd0, double mjd, double inc0,
159 double ap0, double om0, double *inc, double *ap, double *om));
160
161/* refract.c */
162extern void unrefract P_((double pr, double tr, double aa, double *ta));
163extern void refract P_((double pr, double tr, double ta, double *aa));
[1719]164
165/* rings.c */
166extern void satrings P_((double sb, double sl, double sr, double el, double er,
167 double JD, double *etiltp, double *stiltp));
[1457]168
169/* riset.c */
170extern void riset P_((double ra, double dec, double lat, double dis,
171 double *lstr, double *lsts, double *azr, double *azs, int *status));
172
173/* sphcart.c */
174extern void sphcart P_((double l, double b, double r, double *x, double *y,
175 double *z));
176extern void cartsph P_((double x, double y, double z, double *l, double *b,
177 double *r));
178
179/* sun.c */
180extern void sunpos P_((double mjd, double *lsn, double *rsn, double *bsn));
[1719]181
182/* twobody.c */
183extern void vrc P_((double *v, double *r, double tp, double e, double q));
[1457]184
185/* utc_gst.c */
186extern void utc_gst P_((double mjd, double utc, double *gst));
187extern void gst_utc P_((double mjd, double gst, double *utc));
188
189/* vsop87.c */
190extern int vsop87 P_((double mjd, int obj, double prec, double *ret));
191
[1719]192/* For RCS Only -- Do Not Edit
[1457]193 * @(#) $RCSfile: astro.h,v $ $Date: 2001-10-22 12:08:26 $ $Revision: 1.2 $ $Name: not supported by cvs2svn $
194 */
Note: See TracBrowser for help on using the repository browser.