eect2000 Function

public function eect2000(date1, date2)

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

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: date1
real(kind=wp) :: date2

Return Value real(kind=wp)


Calls

proc~~eect2000~~CallsGraph proc~eect2000 novas_module::eect2000 proc~anmp novas_module::anmp proc~eect2000->proc~anmp

Called by

proc~~eect2000~~CalledByGraph proc~eect2000 novas_module::eect2000 proc~etilt novas_module::etilt proc~etilt->proc~eect2000 proc~eceq novas_module::eceq proc~eceq->proc~etilt proc~eqec novas_module::eqec proc~eqec->proc~etilt proc~eqxra novas_module::eqxra proc~eqxra->proc~etilt proc~geopos novas_module::geopos proc~geopos->proc~etilt proc~nutate novas_module::nutate proc~geopos->proc~nutate proc~sidtim novas_module::sidtim proc~geopos->proc~sidtim proc~nutate->proc~etilt proc~sidtim->proc~etilt proc~sidtim->proc~eqxra proc~sidtim->proc~nutate proc~ciobas novas_module::ciobas proc~sidtim->proc~ciobas proc~cioloc novas_module::cioloc proc~sidtim->proc~cioloc proc~celter novas_module::celter proc~celter->proc~nutate proc~celter->proc~sidtim proc~celter->proc~ciobas proc~celter->proc~cioloc proc~ciobas->proc~nutate proc~cioloc->proc~eqxra proc~ciora novas_module::ciora proc~ciora->proc~nutate proc~ciora->proc~ciobas proc~ciora->proc~cioloc proc~eqecl novas_module::eqecl proc~eqecl->proc~eqec proc~gcrseq novas_module::gcrseq proc~gcrseq->proc~nutate proc~gcrseq->proc~ciobas proc~gcrseq->proc~cioloc proc~place novas_module::place proc~place->proc~geopos proc~place->proc~nutate proc~place->proc~ciobas proc~place->proc~cioloc proc~tercel novas_module::tercel proc~tercel->proc~nutate proc~tercel->proc~sidtim proc~tercel->proc~ciobas proc~tercel->proc~cioloc proc~mpstar novas_module::mpstar proc~mpstar->proc~place proc~places novas_module::places proc~places->proc~place proc~zdaz novas_module::zdaz proc~zdaz->proc~tercel

Source Code

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