/*  
 *  - - - - - - - - - -  
 *   g a l _ c 2 t p e  
 *  - - - - - - - - - -  
 *  
 *  This routine is part of the General Astrodynamics Library  
 *  
 *  Description: 
 *  
 *  Form the celestial to terrestrial matrix given the date, the UT1, the  
 *  nutation and the polar motion.  IAU 2000.  
 *  
 *  This routine is an independent translation of a FORTRAN routine  
 *  that is part of IAU's SOFA software collection.  
 *  
 *  Status:
 *  
 *     support routine.  
 *  
 *  Given:
 *  
 *     tta,ttb             d        TT as a 2-part Julian Date (Note 1)  
 *     uta,utb             d        UT1 as a 2-part Julian Date (Note 1)  
 *     dpsi,deps           d        nutation (Note 2)  
 *     xp,yp               d        coordinates of the pole (radians, Note 3)  
 *  
 *  Returned:
 *  
 *     rc2t             d[3][3]     celestial-to-terrestrial matrix (Note 4)  
 *  
 *  Notes:  
 *  
 *  1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates,  
 *     apportioned in any convenient way between the arguments uta and  
 *     utb.  For example, JD(UT1)=2450123.7 could be expressed in any of  
 *     these ways, among others:  
 *  
 *             uta            utb  
 *  
 *         2450123.7          0.0        (JD method)  
 *         2451545.0      -1421.3        (J2000 method)  
 *         2400000.5      50123.2        (MJD method)  
 *         2450123.5          0.2        (date & time method)  
 *  
 *     The JD method is the most natural and convenient to use in  
 *     cases where the loss of several decimal digits of resolution is  
 *     acceptable.  The J2000 and MJD methods are good compromises  
 *     between resolution and convenience.  In the case of uta,utb, the  
 *     date & time method is best matched to the Earth rotation angle  
 *     algorithm used:  maximum accuracy (or, at least, minimum noise) is  
 *     delivered when the uta argument is for 0hrs UT1 on the day in  
 *     question and the utb argument lies in the range 0 to 1, or vice  
 *     versa.  
 *  
 *  2) The caller is responsible for providing the nutation components;  
 *     they are in longitude and obliquity, in radians and are with  
 *     respect to the equinox and ecliptic of date.  For high-accuracy  
 *     applications, free core nutation should be included as well as  
 *     any other relevant corrections to the position of the CIP.  
 *  
 *  3) xp and yp are the "coordinates of the pole", in radians, which  
 *     position the Celestial Intermediate Pole in the International  
 *     Terrestrial Reference System (see IERS Conventions 2003).  In a  
 *     geocentric right-handed triad u,v,w, where the w-axis points at  
 *     the north geographic pole, the v-axis points towards the origin  
 *     of longitudes and the u axis completes the system, xp = +u and  
 *     yp = -v.  
 *  
 *  4) The matrix RC2T transforms from celestial to terrestrial  
 *     coordinates:  
 *  
 *        [TRS]  =  rpom * R_3(gst) * rbpn * [CRS]  
 *  
 *               =  rc2t * [CRS]  
 *  
 *     where [CRS] is a vector in the Geocentric Celestial Reference  
 *     System and [TRS] is a vector in the International Terrestrial  
 *     Reference System (see IERS Conventions 2003), rbpn is the  
 *     bias-precession-nutation matrix, gst is the Greenwich (apparent)  
 *     Sidereal Time and rpom is the polar motion matrix.  
 *  
 *  5) Although its name does not include "00", this routine is in fact  
 *     specific to the IAU 2000 models.  
 *  
 *  Called:
 *  
 *     gal_pn00           bias/precession/nutation results, IAU 2000  
 *     gal_gmst00         Greenwich mean sidereal time, IAU 2000  
 *     gal_sp00           the TIO locator s', IERS 2000  
 *     gal_ee00           equation of the equinoxes, IAU 2000  
 *     gal_pom00          polar motion matrix  
 *     gal_c2teqx         form equinox-based celestial-to-terrestrial matrix  
 *  
 *  References:  
 *  
 *     McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),  
 *     IERS Technical Note No. 32, BKG (2004)  
 *  
 *  This revision:
 *  
 *     2007 June 1 ( c version 2008 January 18 )  
 *  
 *  
 *  Copyright (C) 2008 Paul C. L. Willmott. See notes at end.  
 *  
 *-----------------------------------------------------------------------  
 */  
  
#ifndef _GAL_C2TPE_H_  
#define _GAL_C2TPE_H_ 1  

#undef __BEGIN_DECLS  
#undef __END_DECLS  
#ifdef __cplusplus  
#define __BEGIN_DECLS extern "C" {  
#define __END_DECLS }  
#else  
#define __BEGIN_DECLS /* empty */  
#define __END_DECLS   /* empty */  
#endif
  
__BEGIN_DECLS  
  
void  
gal_c2tpe  
 (  
    double tta,  
    double ttb,  
    double uta,  
    double utb,  
    double dpsi,  
    double deps,  
    double xp,  
    double yp,  
    double rc2t[3][3]  
 ) ;  
  
__END_DECLS  
  
#endif /* !_GAL_C2TPE_H_ */  

/*  
 *  gal - General Astrodynamics Library  
 *  Copyright (C) 2008 Paul C. L. Willmott  
 *  
 *  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; if not, write to the Free Software Foundation, Inc.,  
 *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.  
 *  
 *  Contact:  
 *  
 *  Paul Willmott  
 *  vp9mu@amsat.org  
 */  
