/*  
 *  - - - - - - - - - -  
 *   g a l _ p n 0 0 a  
 *  - - - - - - - - - -  
 *  
 *  This routine is part of the General Astrodynamics Library  
 *  
 *  Description: 
 *  
 *  Precession-nutation, IAU 2000A model:  a multi-purpose routine,  
 *  supporting classical (equinox-based) use directly and CIO-based  
 *  use indirectly.  
 *  
 *  This routine is an independent translation of a FORTRAN routine  
 *  that is part of IAU's SOFA software collection.  
 *  
 *  Status:
 *  
 *     support routine.  
 *  
 *  Given:
 *  
 *     date1,date2         d        TT as a 2-part Julian Date (Note 1)  
 *  
 *  Returned:
 *  
 *     *dpsi,*deps         d        nutation (Note 2)  
 *     *epsa               d        mean obliquity (Note 3)  
 *     rb               d[3][3]     frame bias matrix (Note 4)  
 *     rp               d[3][3]     precession matrix (Note 5)  
 *     rbp              d[3][3]     bias-precession matrix (Note 6)  
 *     rn               d[3][3]     nutation matrix (Note 7)  
 *     rbpn             d[3][3]     GCRS-to-true matrix (Notes 8,9)  
 *  
 *  Notes:  
 *  
 *  1) The TT date date1+date2 is a Julian Date, apportioned in any  
 *     convenient way between the two arguments.  For example,  
 *     JD(TT)=2450123.7 could be expressed in any of these ways,  
 *     among others:  
 *  
 *            date1         date2  
 *  
 *         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 method is best matched to the way  
 *     the argument is handled internally and will deliver the  
 *     optimum resolution.  The MJD method and the date & time methods  
 *     are both good compromises between resolution and convenience.  
 *  
 *  2) The nutation components (luni-solar + planetary, IAU 2000A) in  
 *     longitude and obliquity are in radians and with respect to the  
 *     equinox and ecliptic of date.  Free core nutation is omitted;  for  
 *     the utmost accuracy, use the gal_PN00 routine, where the nutation  
 *     components are caller-specified.  For faster but slightly less  
 *     accurate results, use the gal_pn00b routine.  
 *  
 *  3) The mean obliquity is consistent with the IAU 2000 precession.  
 *  
 *  4) The matrix rb transforms vectors from GCRS to J2000 mean equator  
 *     and equinox by applying frame bias.  
 *  
 *  5) The matrix rp transforms vectors from J2000 mean equator and  
 *     equinox to mean equator and equinox of date by applying  
 *     precession.  
 *  
 *  6) The matrix rbp transforms vectors from GCRS to mean equator and  
 *     equinox of date by applying frame bias then precession.  It is the  
 *     product rp x rb.  
 *  
 *  7) The matrix rn transforms vectors from mean equator and equinox of  
 *     date to true equator and equinox of date by applying the nutation  
 *     (luni-solar + planetary).  
 *  
 *  8) The matrix rbpn transforms vectors from GCRS to true equator and  
 *     equinox of date.  It is the product rn x rbp, applying frame bias,  
 *     precession and nutation in that order.  
 *  
 *  9) The X,Y,Z coordinates of the IAU 2000A Celestial Intermediate Pole  
 *     are elements [0-2][2] of the matrix rbpn.  
 *  
 *  Called:
 *  
 *     gal_nut00a         nutation, IAU 2000A  
 *     gal_pn00           bias/precession/nutation results, IAU 2000  
 *  
 *  References:  
 *  
 *     Capitaine, N., Chapront, J., Lambert, S. and Wallace, P.,  
 *     "Expressions for the Celestial Intermediate Pole and Celestial  
 *     Ephemeris Origin consistent with the IAU 2000A precession-nutation  
 *     model", Astronomy & Astrophysics, 400, 1145-1154 (2003)  
 *  
 *     n.b. The celestial ephemeris origin (CEO) was renamed "celestial  
 *          intermediate origin" (CIO) by IAU 2006 Resolution 2.  
 *  
 *  This revision:
 *  
 *     2007 April 11 ( c version 2008 February 4 )  
 *  
 *  
 *  Copyright (C) 2008 Paul C. L. Willmott. See notes at end.  
 *  
 *-----------------------------------------------------------------------  
 */  
  
#ifndef _GAL_PN00A_H_  
#define _GAL_PN00A_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_pn00a  
 (  
    double date1,  
    double date2,  
    double *dpsi,  
    double *deps,  
    double *epsa,  
    double rb[3][3],  
    double rp[3][3],  
    double rbp[3][3],  
    double rn[3][3],  
    double rbpn[3][3]  
 ) ;  
  
__END_DECLS  
  
#endif /* !_GAL_PN00A_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  
 */  
