Equation of the equinoxes complementary terms, consistent with IAU 2000 resolutions.
Annexe to IERS Conventions 2000, Chapter 5
Capitaine, N., Wallace, P.T., & McCarthy, D.D. (2003). Astron. & Astrophys. 406, pp. 1135-1149, Table 3. IERS Conventions (2010), Chapter 5, p. 60, Table 5.2e. (Table 5.2e presented in the printed publication is a truncated series. The full series, which is used in NOVAS, is available on the IERS Conventions Center website in file tab5.2e.txt.) ftp://tai.bipm.org/iers/conv2010/chapter5/
Given: DATE1,DATE2 d TT date (JD = DATE1+DATE2)
Returned: EECT00 d complementary terms (radians)
This revision: 2002 November 13 References updated 2010 November 26
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=wp) | :: | date1 | ||||
real(kind=wp) | :: | date2 |
real(wp) function eect2000 ( date1, date2 ) implicit none real(wp) :: date1, date2 real(wp), parameter :: d2pi = 6.283185307179586476925287d0 !! 2Pi real(wp), parameter :: das2r = 4.848136811095359935899141d-6 !! Arcseconds to radians real(wp), parameter :: dj0 = 2451545d0 !! Reference epoch (J2000), JD real(wp), parameter :: djc = 36525d0 !! Days per Julian century ! Time since J2000, in Julian centuries real(wp) :: t ! Miscellaneous integer i, j real(wp) :: a, s0, s1 ! Fundamental arguments real(wp) :: fa(14) ! ----------------------------------------- ! The series for the EE complementary terms ! ----------------------------------------- ! Number of terms in the series integer, parameter :: ne0 = 33 integer, parameter :: ne1 = 1 ! Coefficients of l,l',F,D,Om,LMe,LVe,LE,LMa,LJu,LSa,LU,LN,pA integer ke0 ( 14, ne0 ), & ke1 ( 14, ne1 ) ! Sine and cosine coefficients real(wp) :: se0 ( 2, ne0 ), & se1 ( 2, ne1 ) ! Argument coefficients for t^0 data ( ( ke0(i,j), i=1,14), j = 1, 10 ) / & 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 0, 2, -2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 0, 2, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 0, 2, -2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 / data ( ( ke0(i,j), i=1,14), j = 11, 20 ) / & 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 1, 2, -2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 1, 2, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 0, 4, -4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 0, 1, -1, 1, 0, -8, 12, 0, 0, 0, 0, 0, 0, & 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 1, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 / data ( ( ke0(i,j), i=1,14), j = 21, 30 ) / & 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 1, -2, 2, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 1, -2, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 0, 0, 0, 0, 0, 8,-13, 0, 0, 0, 0, 0, -1, & 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 2, 0, -2, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 1, 0, 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 1, 2, -2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 1, 0, 0, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 0, 0, 4, -2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 / data ( ( ke0(i,j), i=1,14), j = 31, ne0 ) / & 0, 0, 2, -2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 1, 0, -2, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, & 1, 0, -2, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 / ! Argument coefficients for t^1 data ( ( ke1(i,j), i=1,14), j = 1, ne1 ) / & 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 / ! Sine and cosine coefficients for t^0 data ( ( se0(i,j), i=1,2), j = 1, 10 ) / & +2640.96d-6, -0.39d-6, & +63.52d-6, -0.02d-6, & +11.75d-6, +0.01d-6, & +11.21d-6, +0.01d-6, & -4.55d-6, +0.00d-6, & +2.02d-6, +0.00d-6, & +1.98d-6, +0.00d-6, & -1.72d-6, +0.00d-6, & -1.41d-6, -0.01d-6, & -1.26d-6, -0.01d-6 / data ( ( se0(i,j), i=1,2), j = 11, 20 ) / & -0.63d-6, +0.00d-6, & -0.63d-6, +0.00d-6, & +0.46d-6, +0.00d-6, & +0.45d-6, +0.00d-6, & +0.36d-6, +0.00d-6, & -0.24d-6, -0.12d-6, & +0.32d-6, +0.00d-6, & +0.28d-6, +0.00d-6, & +0.27d-6, +0.00d-6, & +0.26d-6, +0.00d-6 / data ( ( se0(i,j), i=1,2), j = 21, 30 ) / & -0.21d-6, +0.00d-6, & +0.19d-6, +0.00d-6, & +0.18d-6, +0.00d-6, & -0.10d-6, +0.05d-6, & +0.15d-6, +0.00d-6, & -0.14d-6, +0.00d-6, & +0.14d-6, +0.00d-6, & -0.14d-6, +0.00d-6, & +0.14d-6, +0.00d-6, & +0.13d-6, +0.00d-6 / data ( ( se0(i,j), i=1,2), j = 31, ne0 ) / & -0.11d-6, +0.00d-6, & +0.11d-6, +0.00d-6, & +0.11d-6, +0.00d-6 / ! Sine and cosine coefficients for t^1 data ( ( se1(i,j), i=1,2), j = 1, ne1 ) / & -0.87d-6, +0.00d-6 / ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ! Interval between fundamental epoch J2000.0 and current date (JC). t = ( ( date1-dj0 ) + date2 ) / djc ! Fundamental Arguments (from IERS Conventions 2000) ! Mean Anomaly of the Moon. fa(1) = anmp ( ( 485868.249036d0 + & ( 715923.2178d0 + & ( 31.8792d0 + & ( 0.051635d0 + & ( -0.00024470d0 ) & * t ) * t ) * t ) * t ) * das2r & + mod ( 1325d0*t, 1d0 ) * d2pi ) ! Mean Anomaly of the Sun. fa(2) = anmp ( ( 1287104.793048d0 + & ( 1292581.0481d0 + & ( -0.5532d0 + & ( +0.000136d0 + & ( -0.00001149d0 ) & * t ) * t ) * t ) * t ) * das2r & + mod ( 99d0*t, 1d0 ) * d2pi ) ! Mean Longitude of the Moon minus Mean Longitude of the Ascending ! Node of the Moon. fa(3) = anmp ( ( 335779.526232d0 + & ( 295262.8478d0 + & ( -12.7512d0 + & ( -0.001037d0 + & ( 0.00000417d0 ) & * t ) * t ) * t ) * t ) * das2r & + mod ( 1342d0*t, 1d0 ) * d2pi ) ! Mean Elongation of the Moon from the Sun. fa(4) = anmp ( ( 1072260.703692d0 + & ( 1105601.2090d0 + & ( -6.3706d0 + & ( 0.006593d0 + & ( -0.00003169d0 ) & * t ) * t ) * t ) * t ) * das2r & + mod ( 1236d0*t, 1d0 ) * d2pi ) ! Mean Longitude of the Ascending Node of the Moon. fa(5) = anmp ( ( 450160.398036d0 + & ( -482890.5431d0 + & ( 7.4722d0 + & ( 0.007702d0 + & ( -0.00005939d0 ) & * t ) * t ) * t ) * t ) * das2r & + mod ( -5d0*t, 1d0 ) * d2pi ) fa( 6) = anmp ( 4.402608842d0 + 2608.7903141574d0 * t ) fa( 7) = anmp ( 3.176146697d0 + 1021.3285546211d0 * t ) fa( 8) = anmp ( 1.753470314d0 + 628.3075849991d0 * t ) fa( 9) = anmp ( 6.203480913d0 + 334.0612426700d0 * t ) fa(10) = anmp ( 0.599546497d0 + 52.9690962641d0 * t ) fa(11) = anmp ( 0.874016757d0 + 21.3299104960d0 * t ) fa(12) = anmp ( 5.481293872d0 + 7.4781598567d0 * t ) fa(13) = anmp ( 5.311886287d0 + 3.8133035638d0 * t ) fa(14) = ( 0.024381750d0 + 0.00000538691d0 * t ) * t ! Evaluate the EE complementary terms. s0 = 0d0 s1 = 0d0 do i = ne0,1,-1 a = 0d0 do j=1,14 a = a + dble(ke0(j,i))*fa(j) end do s0 = s0 + ( se0(1,i)*sin(a) + se0(2,i)*cos(a) ) end do do i = ne1,1,-1 a = 0d0 do j=1,14 a = a + dble(ke1(j,i))*fa(j) end do s1 = s1 + ( se1(1,i)*sin(a) + se1(2,i)*cos(a) ) end do eect2000 = ( s0 + s1 * t ) * das2r end function eect2000