#include #include #pragma varargck type "R" double #pragma varargck type "D" double typedef struct Obj1 Obj1; typedef struct Obj2 Obj2; typedef struct Obj3 Obj3; typedef struct Occ Occ; typedef struct Event Event; typedef struct Tim Tim; typedef struct Moontab Moontab; #define NPTS 12 #define PER 1.0 enum { DARK = 1<<0, SIGNIF = 1<<1, PTIME = 1<<2, LIGHT = 1<<3, }; struct Obj1 { double ra; double decl2; double semi2; double az; double el; double mag; }; struct Obj2 { char* name; char* name1; void (*obj)(void); Obj1 point[NPTS+2]; }; struct Obj3 { double t1; double e1; double t2; double e2; double t3; double e3; double t4; double e4; double t5; double e5; }; struct Event { char* format; char* arg1; char* arg2; double tim; int flag; }; struct Moontab { double f; char c[4]; }; struct Occ { Obj1 act; Obj1 del0; Obj1 del1; Obj1 del2; }; struct Tim { double ifa[5]; char tz[4]; }; double converge; char flags[128]; int nperiods; double wlong, awlong, nlat, elev; double obliq, phi, eps, tobliq; double dphi, deps; double day, deld, per; double eday, capt, capt2, capt3, gst; double pi, pipi, radian, radsec, deltat; double erad, glat; double xms, yms, zms; double xdot, ydot, zdot; double ecc, incl, node, argp, mrad, anom, motion; double lambda, beta, rad, mag, semi; double alpha, delta, rp, hp; double ra, decl, semi2; double lha, decl2, lmb2; double az, el; double meday, seday, mhp, salph, sdelt, srad; double* cafp; char* cacp; double rah, ram, ras, dday, dmin, dsec; long sao; double da, dd, px, epoch; char line[100]; Obj2 osun; Obj2 omoon; Obj2 oshad; Obj2 omerc; Obj2 ovenus; Obj2 omars; Obj2 osat; Obj2 ouran; Obj2 onept; Obj2 oplut; Obj2 ojup; Obj2 ostar; Obj2 ocomet; Obj3 occ; Obj2* eobj1; Obj2* eobj2; char* startab; extern int dmo[]; extern Obj2* objlst[]; extern double venfp[]; extern char vencp[]; extern double sunfp[]; extern char suncp[]; extern double mercfp[]; extern char merccp[]; extern double nutfp[]; extern char nutcp[]; extern Moontab moontab[]; extern void args(int, char**); extern void bdtsetup(double, Tim*); extern double betcross(double); extern double convdate(Tim*); extern double cosadd(int, double, ...); extern double cosx(double, int, int, int, int, double); extern double dist(Obj1*, Obj1*); extern double dsrc(double, Tim*, int); extern void dtsetup(double, Tim*); extern int evcomp(void*, void*); extern void event(char*, char*, char*, double, int); extern void evflush(void); extern double fmod(double, double); extern void fstar(void); extern void fsun(void); extern void geo(void); extern void helio(void); extern void icosadd(double*, char*); extern void init(void); extern void jup(void); extern int lastsun(Tim*, int); extern void main(int, char**); extern void mars(void); extern double melong(Obj2*); extern void merc(void); extern void moon(void); extern void numb(int); extern void nutate(void); extern void occult(Obj2*, Obj2*, double); extern void output(char*, Obj1*); extern void pdate(double); extern double pinorm(double); extern void ptime(double); extern void pstime(double); extern double pyth(double); extern double readate(void); extern double readdt(void); extern void readlat(int); extern double rise(Obj2*, double); extern int rline(int); extern void sat(void); extern void uran(void); extern void nept(void); extern void plut(void); extern void satel(double); extern void satels(void); extern void search(void); extern double set(Obj2*, double); extern void set3pt(Obj2*, int, Occ*); extern void setime(double); extern void setobj(Obj1*); extern void setpt(Occ*, double); extern void shad(void); extern double sinadd(int, double, ...); extern double sinx(double, int, int, int, int, double); extern char* skip(int); extern double solstice(int); extern void star(void); extern void stars(void); extern void sun(void); extern double sunel(double); extern void venus(void); extern int vis(double, double, double, double); extern void comet(void); extern int Rconv(Fmt*); extern int Dconv(Fmt*); extern double etdate(long, int, double);