DOUBLE PRECISION FUNCTION SIDANG(DATE, LONG) C C******************************************************************************* C C Copyright (C) 1993, California Institute of Technology. U.S. C Government Sponsorhip under NASA Contract NAS7-918 is C acknowledged. C C******************************************************************************* C C Take from OSMEAN (Courtesy of Joe Guinn) C modified 12/6/1994 - to add ut1-utc correction C C...Inputs: C DATE = UT1 CHARACTER DATE (DD-MMM-YYYY HH:MM:SS.FFFF) C LONG = EAST LONGITUDE (DEGREES) CHARACTER*25 DATE DOUBLE PRECISION LONG C...Output: C SIDANG = SIDEREAL ANGLE (DEGREES) C...COMMON Variables common /UT1MUTC_BLOCK/ TIMPOL, UT1MUTC_SLOPE, UT1MUTC_INTERCEPT logical timpol double precision ut1mutc_slope, ut1mutc_intercept C...LOCAL VARIABLES: LOGICAL MSG,ERROR DOUBLE PRECISION CH2JD,JDUT1,TU,DP2000,UT1,GMST, ch2sec DOUBLE PRECISION JD2000,DPJC,ARC2DG, ut1mutc, the_time double precision ut1_sec external ch2sec PARAMETER (JD2000 = 2451545D0) PARAMETER (DPJC = 36525D0) PARAMETER (ARC2DG = 15D0/3600D0) C=============================================================================== C...Convert input DATE to Julian date. if (timpol) then the_time = ch2sec(DATE, .TRUE., error) ut1mutc = ut1mutc_intercept+ut1mutc_slope*the_time else ut1mutc = 0.0d0 end if JDUT1 = CH2JD(DATE,MSG,ERROR) + ut1mutc/86400.0d0 C...Compute Julian centuries of 36525 days of universal time. DP2000 = JDUT1-JD2000 TU = DP2000/DPJC UT1 = MOD(DP2000+0.5D0,1D0)*86400D0 + ut1mutc GMST = (24110.54841D0 + 8640184.812866D0*TU + 0.093104D0*TU*TU * - 6.2D-6*TU*TU*TU + UT1) * ARC2DG GMST = MOD(GMST,360D0) IF(GMST.LT.0) GMST = 360D0 + GMST SIDANG = MOD(GMST+LONG,360D0) RETURN END