#include #include "deepconst.h" /* @(#) $Id: thetag.c,v 1.3 2000/10/07 05:12:17 ecdowney Exp $ */ /* * FUNCTION THETAG(EP) * COMMON /E1/XMO,XNODEO,OMEGAO,EO,XINCL,XNO,XNDT2O,XNDD6O,BSTAR, * 1 X,Y,Z,XDOT,YDOT,ZDOT,EPOCH,DS50 * DOUBLE PRECISION EPOCH,D,THETA,TWOPI,YR,TEMP,EP,DS50 * TWOPI=6.28318530717959D0 * YR=(EP+2.D-7)*1.D-3 * JY=YR * YR=JY * D=EP-YR*1.D3 * IF(JY.LT.10) JY=JY+80 * N=(JY-69)/4 * IF(JY.LT.70) N=(JY-72)/4 * DS50=7305.D0 + 365.D0*(JY-70) +N + D * THETA=1.72944494D0 + 6.3003880987D0*DS50 * TEMP=THETA/TWOPI * I=TEMP * TEMP=I * THETAG=THETA-TEMP*TWOPI * IF(THETAG.LT.0.D0) THETAG=THETAG+TWOPI * RETURN * END */ /* FUNCTION THETAG(EP) */ double thetag(double EP, double *DS50) { int JY, N, I; double YR, D, THETA, TEMP, THETAG; YR = (EP + 2.0E-7) * 1.0E-3; JY = (int) YR; YR = JY; D = EP - YR * 1.0E3; if(JY < 10) JY += 80; N = (JY - 69) / 4; if(JY < 70) N = (JY - 72) / 4; /* printf("N = %d\n", N); */ *DS50 = 7305.0 + 365.0 * (JY-70) + N + D; /* printf("DS50 = %f\n", *DS50); */ THETA = 1.72944494 + 6.3003880987 * *DS50; /* printf("THETA = %f\n", THETA); */ TEMP = THETA / TWOPI; I = (int)TEMP; TEMP = I; THETAG = THETA - TEMP * TWOPI; if(THETAG < 0.0) THETAG += TWOPI; return THETAG; } #if 0 void main(int argc, char **argv) { double ds50, gwa; if(argc >= 2) { gwa = thetag(atof(argv[1]), &ds50); printf("%f, %f\n", gwa, ds50); } } #endif /* For RCS Only -- Do Not Edit */ static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: thetag.c,v $ $Date: 2000/10/07 05:12:17 $ $Revision: 1.3 $ $Name: $"};