aboutsummaryrefslogtreecommitdiff
path: root/math/slalib/gmst.f
diff options
context:
space:
mode:
authorJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
committerJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
commit40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch)
tree4464880c571602d54f6ae114729bf62a89518057 /math/slalib/gmst.f
downloadiraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'math/slalib/gmst.f')
-rw-r--r--math/slalib/gmst.f78
1 files changed, 78 insertions, 0 deletions
diff --git a/math/slalib/gmst.f b/math/slalib/gmst.f
new file mode 100644
index 00000000..808ea382
--- /dev/null
+++ b/math/slalib/gmst.f
@@ -0,0 +1,78 @@
+ DOUBLE PRECISION FUNCTION slGMST (UT1)
+*+
+* - - - - -
+* G M S T
+* - - - - -
+*
+* Conversion from universal time to sidereal time (double precision)
+*
+* Given:
+* UT1 dp universal time (strictly UT1) expressed as
+* modified Julian Date (JD-2400000.5)
+*
+* The result is the Greenwich mean sidereal time (double
+* precision, radians).
+*
+* The IAU 1982 expression (see page S15 of 1984 Astronomical Almanac)
+* is used, but rearranged to reduce rounding errors. This expression
+* is always described as giving the GMST at 0 hours UT. In fact, it
+* gives the difference between the GMST and the UT, which happens to
+* equal the GMST (modulo 24 hours) at 0 hours UT each day. In this
+* routine, the entire UT is used directly as the argument for the
+* standard formula, and the fractional part of the UT is added
+* separately. Note that the factor 1.0027379... does not appear in the
+* IAU 1982 expression explicitly but in the form of the coefficient
+* 8640184.812866, which is 86400x36525x0.0027379...
+*
+* See also the routine slGMSA, which delivers better numerical
+* precision by accepting the UT date and time as separate arguments.
+*
+* Called: slDA2P
+*
+* P.T.Wallace Starlink 14 October 2001
+*
+* Copyright (C) 2001 Rutherford Appleton Laboratory
+*
+* License:
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program (see SLA_CONDITIONS); if not, write to the
+* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+* Boston, MA 02110-1301 USA
+*
+* Copyright (C) 1995 Association of Universities for Research in Astronomy Inc.
+*-
+
+ IMPLICIT NONE
+
+ DOUBLE PRECISION UT1
+
+ DOUBLE PRECISION slDA2P
+
+ DOUBLE PRECISION D2PI,S2R
+ PARAMETER (D2PI=6.283185307179586476925286766559D0,
+ : S2R=7.272205216643039903848711535369D-5)
+
+ DOUBLE PRECISION TU
+
+
+
+* Julian centuries from fundamental epoch J2000 to this UT
+ TU=(UT1-51544.5D0)/36525D0
+
+* GMST at this UT
+ slGMST=slDA2P(MOD(UT1,1D0)*D2PI+
+ : (24110.54841D0+
+ : (8640184.812866D0+
+ : (0.093104D0-6.2D-6*TU)*TU)*TU)*S2R)
+
+ END