void eraNut06a(double date1, double date2, double *dpsi, double *deps) /* ** - - - - - - - - - - ** e r a N u t 0 6 a ** - - - - - - - - - - ** ** IAU 2000A nutation with adjustments to match the IAU 2006 ** precession. ** ** Given: ** date1,date2 double TT as a 2-part Julian Date (Note 1) ** ** Returned: ** dpsi,deps double nutation, luni-solar + planetary (Note 2) ** ** 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 in longitude and obliquity are in radians ** and with respect to the mean equinox and ecliptic of date, ** IAU 2006 precession model (Hilton et al. 2006, Capitaine et al. ** 2005). ** ** 3) The function first computes the IAU 2000A nutation, then applies ** adjustments for (i) the consequences of the change in obliquity ** from the IAU 1980 ecliptic to the IAU 2006 ecliptic and (ii) the ** secular variation in the Earth's dynamical form factor J2. ** ** 4) The present function provides classical nutation, complementing ** the IAU 2000 frame bias and IAU 2006 precession. It delivers a ** pole which is at current epochs accurate to a few tens of ** microarcseconds, apart from the free core nutation. ** ** Called: ** eraNut00a nutation, IAU 2000A ** ** References: ** ** Chapront, J., Chapront-Touze, M. & Francou, G. 2002, ** Astron.Astrophys. 387, 700 ** ** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, ** Astron.Astrophys. 58, 1-16 ** ** Mathews, P.M., Herring, T.A., Buffet, B.A. 2002, J.Geophys.Res. ** 107, B4. The MHB_2000 code itself was obtained on 9th September ** 2002 from ftp//maia.usno.navy.mil/conv2000/chapter5/IAU2000A. ** ** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., ** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 ** ** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, ** Astron.Astrophys.Supp.Ser. 135, 111 ** ** Wallace, P.T., "Software for Implementing the IAU 2000 ** Resolutions", in IERS Workshop 5.1 (2002) ** ** Copyright (C) 2013-2016, NumFOCUS Foundation. ** Derived, with permission, from the SOFA library. See notes at end of file. */ { double t, fj2, dp, de; /* Interval between fundamental date J2000.0 and given date (JC). */ t = ((date1 - ERFA_DJ00) + date2) / ERFA_DJC; /* Factor correcting for secular variation of J2. */ fj2 = -2.7774e-6 * t; /* Obtain IAU 2000A nutation. */ eraNut00a(date1, date2, &dp, &de); /* Apply P03 adjustments (Wallace & Capitaine, 2006, Eqs.5). */ *dpsi = dp + dp * (0.4697e-6 + fj2); *deps = de + de * fj2; return; }
void eraPn00a(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]) /* ** - - - - - - - - - ** e r a P n 0 0 a ** - - - - - - - - - ** ** Precession-nutation, IAU 2000A model: a multi-purpose function, ** supporting classical (equinox-based) use directly and CIO-based ** use indirectly. ** ** Given: ** date1,date2 double TT as a 2-part Julian Date (Note 1) ** ** Returned: ** dpsi,deps double nutation (Note 2) ** epsa double mean obliquity (Note 3) ** rb double[3][3] frame bias matrix (Note 4) ** rp double[3][3] precession matrix (Note 5) ** rbp double[3][3] bias-precession matrix (Note 6) ** rn double[3][3] nutation matrix (Note 7) ** rbpn double[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 eraPn00 function, where the ** nutation components are caller-specified. For faster but ** slightly less accurate results, use the eraPn00b function. ** ** 3) The mean obliquity is consistent with the IAU 2000 precession. ** ** 4) The matrix rb transforms vectors from GCRS to J2000.0 mean ** equator and equinox by applying frame bias. ** ** 5) The matrix rp transforms vectors from J2000.0 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 (3,1-3) of the GCRS-to-true matrix, ** i.e. rbpn[2][0-2]. ** ** 10) It is permissible to re-use the same array in the returned ** arguments. The arrays are filled in the order given. ** ** Called: ** eraNut00a nutation, IAU 2000A ** eraPn00 bias/precession/nutation results, IAU 2000 ** ** Reference: ** ** 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", Astron.Astrophys. 400, 1145-1154 (2003) ** ** n.b. The celestial ephemeris origin (CEO) was renamed "celestial ** intermediate origin" (CIO) by IAU 2006 Resolution 2. ** ** Copyright (C) 2013-2015, NumFOCUS Foundation. ** Derived, with permission, from the SOFA library. See notes at end of file. */ { /* Nutation. */ eraNut00a(date1, date2, dpsi, deps); /* Remaining results. */ eraPn00(date1, date2, *dpsi, *deps, epsa, rb, rp, rbp, rn, rbpn); return; }