FACT++  1.0
gst00a.c
Go to the documentation of this file.
1 #include "erfa.h"
2 
3 double eraGst00a(double uta, double utb, double tta, double ttb)
4 /*
5 ** - - - - - - - - - -
6 ** e r a G s t 0 0 a
7 ** - - - - - - - - - -
8 **
9 ** Greenwich apparent sidereal time (consistent with IAU 2000
10 ** resolutions).
11 **
12 ** Given:
13 ** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2)
14 ** tta,ttb double TT as a 2-part Julian Date (Notes 1,2)
15 **
16 ** Returned (function value):
17 ** double Greenwich apparent sidereal time (radians)
18 **
19 ** Notes:
20 **
21 ** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both
22 ** Julian Dates, apportioned in any convenient way between the
23 ** argument pairs. For example, JD=2450123.7 could be expressed in
24 ** any of these ways, among others:
25 **
26 ** Part A Part B
27 **
28 ** 2450123.7 0.0 (JD method)
29 ** 2451545.0 -1421.3 (J2000 method)
30 ** 2400000.5 50123.2 (MJD method)
31 ** 2450123.5 0.2 (date & time method)
32 **
33 ** The JD method is the most natural and convenient to use in
34 ** cases where the loss of several decimal digits of resolution
35 ** is acceptable (in the case of UT; the TT is not at all critical
36 ** in this respect). The J2000 and MJD methods are good compromises
37 ** between resolution and convenience. For UT, the date & time
38 ** method is best matched to the algorithm that is used by the Earth
39 ** Rotation Angle function, called internally: maximum precision is
40 ** delivered when the uta argument is for 0hrs UT1 on the day in
41 ** question and the utb argument lies in the range 0 to 1, or vice
42 ** versa.
43 **
44 ** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation
45 ** and TT to predict the effects of precession-nutation. If UT1 is
46 ** used for both purposes, errors of order 100 microarcseconds
47 ** result.
48 **
49 ** 3) This GAST is compatible with the IAU 2000 resolutions and must be
50 ** used only in conjunction with other IAU 2000 compatible
51 ** components such as precession-nutation.
52 **
53 ** 4) The result is returned in the range 0 to 2pi.
54 **
55 ** 5) The algorithm is from Capitaine et al. (2003) and IERS
56 ** Conventions 2003.
57 **
58 ** Called:
59 ** eraGmst00 Greenwich mean sidereal time, IAU 2000
60 ** eraEe00a equation of the equinoxes, IAU 2000A
61 ** eraAnp normalize angle into range 0 to 2pi
62 **
63 ** References:
64 **
65 ** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to
66 ** implement the IAU 2000 definition of UT1", Astronomy &
67 ** Astrophysics, 406, 1135-1149 (2003)
68 **
69 ** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
70 ** IERS Technical Note No. 32, BKG (2004)
71 **
72 ** Copyright (C) 2013-2015, NumFOCUS Foundation.
73 ** Derived, with permission, from the SOFA library. See notes at end of file.
74 */
75 {
76  double gmst00, ee00a, gst;
77 
78  gmst00 = eraGmst00(uta, utb, tta, ttb);
79  ee00a = eraEe00a(tta, ttb);
80  gst = eraAnp(gmst00 + ee00a);
81 
82  return gst;
83 
84 }
85 /*----------------------------------------------------------------------
86 **
87 **
88 ** Copyright (C) 2013-2015, NumFOCUS Foundation.
89 ** All rights reserved.
90 **
91 ** This library is derived, with permission, from the International
92 ** Astronomical Union's "Standards of Fundamental Astronomy" library,
93 ** available from http://www.iausofa.org.
94 **
95 ** The ERFA version is intended to retain identical functionality to
96 ** the SOFA library, but made distinct through different function and
97 ** file names, as set out in the SOFA license conditions. The SOFA
98 ** original has a role as a reference standard for the IAU and IERS,
99 ** and consequently redistribution is permitted only in its unaltered
100 ** state. The ERFA version is not subject to this restriction and
101 ** therefore can be included in distributions which do not support the
102 ** concept of "read only" software.
103 **
104 ** Although the intent is to replicate the SOFA API (other than
105 ** replacement of prefix names) and results (with the exception of
106 ** bugs; any that are discovered will be fixed), SOFA is not
107 ** responsible for any errors found in this version of the library.
108 **
109 ** If you wish to acknowledge the SOFA heritage, please acknowledge
110 ** that you are using a library derived from SOFA, rather than SOFA
111 ** itself.
112 **
113 **
114 ** TERMS AND CONDITIONS
115 **
116 ** Redistribution and use in source and binary forms, with or without
117 ** modification, are permitted provided that the following conditions
118 ** are met:
119 **
120 ** 1 Redistributions of source code must retain the above copyright
121 ** notice, this list of conditions and the following disclaimer.
122 **
123 ** 2 Redistributions in binary form must reproduce the above copyright
124 ** notice, this list of conditions and the following disclaimer in
125 ** the documentation and/or other materials provided with the
126 ** distribution.
127 **
128 ** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
129 ** the International Astronomical Union nor the names of its
130 ** contributors may be used to endorse or promote products derived
131 ** from this software without specific prior written permission.
132 **
133 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
134 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
135 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
136 ** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
137 ** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
138 ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
139 ** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
140 ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
141 ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
142 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
143 ** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
144 ** POSSIBILITY OF SUCH DAMAGE.
145 **
146 */
double eraGmst00(double uta, double utb, double tta, double ttb)
Definition: gmst00.c:3
double eraGst00a(double uta, double utb, double tta, double ttb)
Definition: gst00a.c:3
double eraEe00a(double date1, double date2)
Definition: ee00a.c:3
double eraAnp(double a)
Definition: anp.c:3