FACT++  1.0
c2i00a.c
Go to the documentation of this file.
1 #include "erfa.h"
2 
3 void eraC2i00a(double date1, double date2, double rc2i[3][3])
4 /*
5 ** - - - - - - - - - -
6 ** e r a C 2 i 0 0 a
7 ** - - - - - - - - - -
8 **
9 ** Form the celestial-to-intermediate matrix for a given date using the
10 ** IAU 2000A precession-nutation model.
11 **
12 ** Given:
13 ** date1,date2 double TT as a 2-part Julian Date (Note 1)
14 **
15 ** Returned:
16 ** rc2i double[3][3] celestial-to-intermediate matrix (Note 2)
17 **
18 ** Notes:
19 **
20 ** 1) The TT date date1+date2 is a Julian Date, apportioned in any
21 ** convenient way between the two arguments. For example,
22 ** JD(TT)=2450123.7 could be expressed in any of these ways,
23 ** among others:
24 **
25 ** date1 date2
26 **
27 ** 2450123.7 0.0 (JD method)
28 ** 2451545.0 -1421.3 (J2000 method)
29 ** 2400000.5 50123.2 (MJD method)
30 ** 2450123.5 0.2 (date & time method)
31 **
32 ** The JD method is the most natural and convenient to use in
33 ** cases where the loss of several decimal digits of resolution
34 ** is acceptable. The J2000 method is best matched to the way
35 ** the argument is handled internally and will deliver the
36 ** optimum resolution. The MJD method and the date & time methods
37 ** are both good compromises between resolution and convenience.
38 **
39 ** 2) The matrix rc2i is the first stage in the transformation from
40 ** celestial to terrestrial coordinates:
41 **
42 ** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS]
43 **
44 ** = rc2t * [CRS]
45 **
46 ** where [CRS] is a vector in the Geocentric Celestial Reference
47 ** System and [TRS] is a vector in the International Terrestrial
48 ** Reference System (see IERS Conventions 2003), ERA is the Earth
49 ** Rotation Angle and RPOM is the polar motion matrix.
50 **
51 ** 3) A faster, but slightly less accurate result (about 1 mas), can be
52 ** obtained by using instead the eraC2i00b function.
53 **
54 ** Called:
55 ** eraPnm00a classical NPB matrix, IAU 2000A
56 ** eraC2ibpn celestial-to-intermediate matrix, given NPB matrix
57 **
58 ** References:
59 **
60 ** "Expressions for the Celestial Intermediate Pole and Celestial
61 ** Ephemeris Origin consistent with the IAU 2000A precession-
62 ** nutation model", Astron.Astrophys. 400, 1145-1154
63 ** (2003)
64 **
65 ** n.b. The celestial ephemeris origin (CEO) was renamed "celestial
66 ** intermediate origin" (CIO) by IAU 2006 Resolution 2.
67 **
68 ** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
69 ** IERS Technical Note No. 32, BKG (2004)
70 **
71 ** Copyright (C) 2013-2015, NumFOCUS Foundation.
72 ** Derived, with permission, from the SOFA library. See notes at end of file.
73 */
74 {
75  double rbpn[3][3];
76 
77 /* Obtain the celestial-to-true matrix (IAU 2000A). */
78  eraPnm00a(date1, date2, rbpn);
79 
80 /* Form the celestial-to-intermediate matrix. */
81  eraC2ibpn(date1, date2, rbpn, rc2i);
82 
83  return;
84 
85 }
86 /*----------------------------------------------------------------------
87 **
88 **
89 ** Copyright (C) 2013-2015, NumFOCUS Foundation.
90 ** All rights reserved.
91 **
92 ** This library is derived, with permission, from the International
93 ** Astronomical Union's "Standards of Fundamental Astronomy" library,
94 ** available from http://www.iausofa.org.
95 **
96 ** The ERFA version is intended to retain identical functionality to
97 ** the SOFA library, but made distinct through different function and
98 ** file names, as set out in the SOFA license conditions. The SOFA
99 ** original has a role as a reference standard for the IAU and IERS,
100 ** and consequently redistribution is permitted only in its unaltered
101 ** state. The ERFA version is not subject to this restriction and
102 ** therefore can be included in distributions which do not support the
103 ** concept of "read only" software.
104 **
105 ** Although the intent is to replicate the SOFA API (other than
106 ** replacement of prefix names) and results (with the exception of
107 ** bugs; any that are discovered will be fixed), SOFA is not
108 ** responsible for any errors found in this version of the library.
109 **
110 ** If you wish to acknowledge the SOFA heritage, please acknowledge
111 ** that you are using a library derived from SOFA, rather than SOFA
112 ** itself.
113 **
114 **
115 ** TERMS AND CONDITIONS
116 **
117 ** Redistribution and use in source and binary forms, with or without
118 ** modification, are permitted provided that the following conditions
119 ** are met:
120 **
121 ** 1 Redistributions of source code must retain the above copyright
122 ** notice, this list of conditions and the following disclaimer.
123 **
124 ** 2 Redistributions in binary form must reproduce the above copyright
125 ** notice, this list of conditions and the following disclaimer in
126 ** the documentation and/or other materials provided with the
127 ** distribution.
128 **
129 ** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
130 ** the International Astronomical Union nor the names of its
131 ** contributors may be used to endorse or promote products derived
132 ** from this software without specific prior written permission.
133 **
134 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
135 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
136 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
137 ** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
138 ** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
139 ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
140 ** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
141 ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
142 ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
143 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
144 ** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
145 ** POSSIBILITY OF SUCH DAMAGE.
146 **
147 */
void eraC2ibpn(double date1, double date2, double rbpn[3][3], double rc2i[3][3])
Definition: c2ibpn.c:3
void eraPnm00a(double date1, double date2, double rbpn[3][3])
Definition: pnm00a.c:3
void eraC2i00a(double date1, double date2, double rc2i[3][3])
Definition: c2i00a.c:3