Astro-PAL
view release on metacpan or search on metacpan
erfasrc/src/eect00.c view on Meta::CPAN
**
** Capitaine, N. & Gontier, A.-M., Astron.Astrophys., 275,
** 645-650 (1993)
**
** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to
** implement the IAU 2000 definition of UT1", Astron.Astrophys., 406,
** 1135-1149 (2003)
**
** IAU Resolution C7, Recommendation 3 (1994)
**
** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
** IERS Technical Note No. 32, BKG (2004)
**
** Copyright (C) 2013-2020, NumFOCUS Foundation.
** Derived, with permission, from the SOFA library. See notes at end of file.
*/
{
/* Time since J2000.0, in Julian centuries */
double t;
/* Miscellaneous */
int i, j;
double a, s0, s1;
/* Fundamental arguments */
double fa[14];
/* Returned value. */
double eect;
/* ----------------------------------------- */
/* The series for the EE complementary terms */
/* ----------------------------------------- */
typedef struct {
int nfa[8]; /* coefficients of l,l',F,D,Om,LVe,LE,pA */
double s, c; /* sine and cosine coefficients */
} TERM;
/* Terms of order t^0 */
static const TERM e0[] = {
/* 1-10 */
{{ 0, 0, 0, 0, 1, 0, 0, 0}, 2640.96e-6, -0.39e-6 },
{{ 0, 0, 0, 0, 2, 0, 0, 0}, 63.52e-6, -0.02e-6 },
{{ 0, 0, 2, -2, 3, 0, 0, 0}, 11.75e-6, 0.01e-6 },
{{ 0, 0, 2, -2, 1, 0, 0, 0}, 11.21e-6, 0.01e-6 },
{{ 0, 0, 2, -2, 2, 0, 0, 0}, -4.55e-6, 0.00e-6 },
{{ 0, 0, 2, 0, 3, 0, 0, 0}, 2.02e-6, 0.00e-6 },
{{ 0, 0, 2, 0, 1, 0, 0, 0}, 1.98e-6, 0.00e-6 },
{{ 0, 0, 0, 0, 3, 0, 0, 0}, -1.72e-6, 0.00e-6 },
{{ 0, 1, 0, 0, 1, 0, 0, 0}, -1.41e-6, -0.01e-6 },
{{ 0, 1, 0, 0, -1, 0, 0, 0}, -1.26e-6, -0.01e-6 },
/* 11-20 */
{{ 1, 0, 0, 0, -1, 0, 0, 0}, -0.63e-6, 0.00e-6 },
{{ 1, 0, 0, 0, 1, 0, 0, 0}, -0.63e-6, 0.00e-6 },
{{ 0, 1, 2, -2, 3, 0, 0, 0}, 0.46e-6, 0.00e-6 },
{{ 0, 1, 2, -2, 1, 0, 0, 0}, 0.45e-6, 0.00e-6 },
{{ 0, 0, 4, -4, 4, 0, 0, 0}, 0.36e-6, 0.00e-6 },
{{ 0, 0, 1, -1, 1, -8, 12, 0}, -0.24e-6, -0.12e-6 },
{{ 0, 0, 2, 0, 0, 0, 0, 0}, 0.32e-6, 0.00e-6 },
{{ 0, 0, 2, 0, 2, 0, 0, 0}, 0.28e-6, 0.00e-6 },
{{ 1, 0, 2, 0, 3, 0, 0, 0}, 0.27e-6, 0.00e-6 },
{{ 1, 0, 2, 0, 1, 0, 0, 0}, 0.26e-6, 0.00e-6 },
/* 21-30 */
{{ 0, 0, 2, -2, 0, 0, 0, 0}, -0.21e-6, 0.00e-6 },
{{ 0, 1, -2, 2, -3, 0, 0, 0}, 0.19e-6, 0.00e-6 },
{{ 0, 1, -2, 2, -1, 0, 0, 0}, 0.18e-6, 0.00e-6 },
{{ 0, 0, 0, 0, 0, 8,-13, -1}, -0.10e-6, 0.05e-6 },
{{ 0, 0, 0, 2, 0, 0, 0, 0}, 0.15e-6, 0.00e-6 },
{{ 2, 0, -2, 0, -1, 0, 0, 0}, -0.14e-6, 0.00e-6 },
{{ 1, 0, 0, -2, 1, 0, 0, 0}, 0.14e-6, 0.00e-6 },
{{ 0, 1, 2, -2, 2, 0, 0, 0}, -0.14e-6, 0.00e-6 },
{{ 1, 0, 0, -2, -1, 0, 0, 0}, 0.14e-6, 0.00e-6 },
{{ 0, 0, 4, -2, 4, 0, 0, 0}, 0.13e-6, 0.00e-6 },
/* 31-33 */
{{ 0, 0, 2, -2, 4, 0, 0, 0}, -0.11e-6, 0.00e-6 },
{{ 1, 0, -2, 0, -3, 0, 0, 0}, 0.11e-6, 0.00e-6 },
{{ 1, 0, -2, 0, -1, 0, 0, 0}, 0.11e-6, 0.00e-6 }
};
/* Terms of order t^1 */
static const TERM e1[] = {
{{ 0, 0, 0, 0, 1, 0, 0, 0}, -0.87e-6, 0.00e-6 }
};
/* Number of terms in the series */
const int NE0 = (int) (sizeof e0 / sizeof (TERM));
const int NE1 = (int) (sizeof e1 / sizeof (TERM));
/* ------------------------------------------------------------------ */
/* Interval between fundamental epoch J2000.0 and current date (JC). */
t = ((date1 - ERFA_DJ00) + date2) / ERFA_DJC;
/* Fundamental Arguments (from IERS Conventions 2003) */
/* Mean anomaly of the Moon. */
fa[0] = eraFal03(t);
/* Mean anomaly of the Sun. */
fa[1] = eraFalp03(t);
/* Mean longitude of the Moon minus that of the ascending node. */
fa[2] = eraFaf03(t);
/* Mean elongation of the Moon from the Sun. */
fa[3] = eraFad03(t);
/* Mean longitude of the ascending node of the Moon. */
fa[4] = eraFaom03(t);
/* Mean longitude of Venus. */
fa[5] = eraFave03(t);
/* Mean longitude of Earth. */
fa[6] = eraFae03(t);
( run in 2.699 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )