NUT80 Subroutine

public subroutine NUT80(date1, date2, dpsi, deps)

Nutation, IAU 1980 model.

Status: canonical model.

Notes

  1. The DATE DATE1+DATE2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TDB)=2450123.7 could be expressed in any of these ways, among others:

        DATE1          DATE2
    
     2450123.7D0        0D0        (JD method)
      2451545D0      -1421.3D0     (J2000 method)
     2400000.5D0     50123.2D0     (MJD method)
     2450123.5D0       0.2D0       (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 are with respect to the ecliptic of date.

Reference

  • Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Section 3.222 (p111).

History

  • IAU SOFA revision: 2009 December 15

Arguments

TypeIntentOptionalAttributesName
real(kind=wp), intent(in) :: date1

TT as a 2-part Julian Date (Note 1)

real(kind=wp), intent(in) :: date2

TT as a 2-part Julian Date (Note 1)

real(kind=wp), intent(out) :: dpsi

nutation in longitude (radians)

real(kind=wp), intent(out) :: deps

nutation in obliquity (radians)


Calls

proc~~nut80~~CallsGraph proc~nut80 NUT80 proc~anpm ANPM proc~nut80->proc~anpm

Called by

proc~~nut80~~CalledByGraph proc~nut80 NUT80 proc~eqeq94 EQEQ94 proc~eqeq94->proc~nut80 proc~nutm80 NUTM80 proc~nutm80->proc~nut80 proc~gst94 GST94 proc~gst94->proc~eqeq94 proc~pnm80 PNM80 proc~pnm80->proc~nutm80

Contents

Source Code


Source Code

    subroutine NUT80 ( date1, date2, dpsi, deps )

    implicit none

    real(wp),intent(in) :: date1 !! TT as a 2-part Julian Date (Note 1)
    real(wp),intent(in) :: date2 !! TT as a 2-part Julian Date (Note 1)
    real(wp),intent(out) :: dpsi !! nutation in longitude (radians)
    real(wp),intent(out) :: deps !! nutation in obliquity (radians)

    !  Units of 0.1 milliarcsecond to radians
    real(wp),parameter :: u2r = das2r/1.0e4_wp

    real(wp) :: t, el, elp, f, d, om, dp, de, arg, s, c
    integer :: i, j

    !  ------------------------------------------------
    !  Table of multiples of arguments and coefficients
    !  ------------------------------------------------
    !
    !  The coefficient values are in 0.1 mas units and the rates of change
    !  are in mas per Julian millennium.

    !                Multiple of            Longitude        Obliquity
    !           L    L'   F    D  Omega   coeff. of sin    coeff. of cos
    !                                         1       t        1     t

    real(wp),dimension(9,106),parameter :: x = reshape([ &
          0.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,  1.0_wp, -171996.0_wp, -1742.0_wp,  92025.0_wp,  89.0_wp, &
          0.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,  2.0_wp,    2062.0_wp,     2.0_wp,   -895.0_wp,   5.0_wp, &
         -2.0_wp,  0.0_wp,  2.0_wp,  0.0_wp,  1.0_wp,      46.0_wp,     0.0_wp,    -24.0_wp,   0.0_wp, &
          2.0_wp,  0.0_wp, -2.0_wp,  0.0_wp,  0.0_wp,      11.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
         -2.0_wp,  0.0_wp,  2.0_wp,  0.0_wp,  2.0_wp,      -3.0_wp,     0.0_wp,      1.0_wp,   0.0_wp, &
          1.0_wp, -1.0_wp,  0.0_wp, -1.0_wp,  0.0_wp,      -3.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp, -2.0_wp,  2.0_wp, -2.0_wp,  1.0_wp,      -2.0_wp,     0.0_wp,      1.0_wp,   0.0_wp, &
          2.0_wp,  0.0_wp, -2.0_wp,  0.0_wp,  1.0_wp,       1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  0.0_wp,  2.0_wp, -2.0_wp,  2.0_wp,  -13187.0_wp,   -16.0_wp,   5736.0_wp, -31.0_wp, &
          0.0_wp,  1.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,    1426.0_wp,   -34.0_wp,     54.0_wp,  -1.0_wp, &
          0.0_wp,  1.0_wp,  2.0_wp, -2.0_wp,  2.0_wp,    -517.0_wp,    12.0_wp,    224.0_wp,  -6.0_wp, &
          0.0_wp, -1.0_wp,  2.0_wp, -2.0_wp,  2.0_wp,     217.0_wp,    -5.0_wp,    -95.0_wp,   3.0_wp, &
          0.0_wp,  0.0_wp,  2.0_wp, -2.0_wp,  1.0_wp,     129.0_wp,     1.0_wp,    -70.0_wp,   0.0_wp, &
          2.0_wp,  0.0_wp,  0.0_wp, -2.0_wp,  0.0_wp,      48.0_wp,     0.0_wp,      1.0_wp,   0.0_wp, &
          0.0_wp,  0.0_wp,  2.0_wp, -2.0_wp,  0.0_wp,     -22.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  2.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,      17.0_wp,    -1.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  1.0_wp,  0.0_wp,  0.0_wp,  1.0_wp,     -15.0_wp,     0.0_wp,      9.0_wp,   0.0_wp, &
          0.0_wp,  2.0_wp,  2.0_wp, -2.0_wp,  2.0_wp,     -16.0_wp,     1.0_wp,      7.0_wp,   0.0_wp, &
          0.0_wp, -1.0_wp,  0.0_wp,  0.0_wp,  1.0_wp,     -12.0_wp,     0.0_wp,      6.0_wp,   0.0_wp, &
         -2.0_wp,  0.0_wp,  0.0_wp,  2.0_wp,  1.0_wp,      -6.0_wp,     0.0_wp,      3.0_wp,   0.0_wp, &
          0.0_wp, -1.0_wp,  2.0_wp, -2.0_wp,  1.0_wp,      -5.0_wp,     0.0_wp,      3.0_wp,   0.0_wp, &
          2.0_wp,  0.0_wp,  0.0_wp, -2.0_wp,  1.0_wp,       4.0_wp,     0.0_wp,     -2.0_wp,   0.0_wp, &
          0.0_wp,  1.0_wp,  2.0_wp, -2.0_wp,  1.0_wp,       4.0_wp,     0.0_wp,     -2.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp,  0.0_wp, -1.0_wp,  0.0_wp,      -4.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          2.0_wp,  1.0_wp,  0.0_wp, -2.0_wp,  0.0_wp,       1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  0.0_wp, -2.0_wp,  2.0_wp,  1.0_wp,       1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  1.0_wp, -2.0_wp,  2.0_wp,  0.0_wp,      -1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  1.0_wp,  0.0_wp,  0.0_wp,  2.0_wp,       1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
         -1.0_wp,  0.0_wp,  0.0_wp,  1.0_wp,  1.0_wp,       1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  1.0_wp,  2.0_wp, -2.0_wp,  0.0_wp,      -1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  0.0_wp,  2.0_wp,  0.0_wp,  2.0_wp,   -2274.0_wp,    -2.0_wp,    977.0_wp,  -5.0_wp, &
          1.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,     712.0_wp,     1.0_wp,     -7.0_wp,   0.0_wp, &
          0.0_wp,  0.0_wp,  2.0_wp,  0.0_wp,  1.0_wp,    -386.0_wp,    -4.0_wp,    200.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp,  2.0_wp,  0.0_wp,  2.0_wp,    -301.0_wp,     0.0_wp,    129.0_wp,  -1.0_wp, &
          1.0_wp,  0.0_wp,  0.0_wp, -2.0_wp,  0.0_wp,    -158.0_wp,     0.0_wp,     -1.0_wp,   0.0_wp, &
         -1.0_wp,  0.0_wp,  2.0_wp,  0.0_wp,  2.0_wp,     123.0_wp,     0.0_wp,    -53.0_wp,   0.0_wp, &
          0.0_wp,  0.0_wp,  0.0_wp,  2.0_wp,  0.0_wp,      63.0_wp,     0.0_wp,     -2.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,  1.0_wp,      63.0_wp,     1.0_wp,    -33.0_wp,   0.0_wp, &
         -1.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,  1.0_wp,     -58.0_wp,    -1.0_wp,     32.0_wp,   0.0_wp, &
         -1.0_wp,  0.0_wp,  2.0_wp,  2.0_wp,  2.0_wp,     -59.0_wp,     0.0_wp,     26.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp,  2.0_wp,  0.0_wp,  1.0_wp,     -51.0_wp,     0.0_wp,     27.0_wp,   0.0_wp, &
          0.0_wp,  0.0_wp,  2.0_wp,  2.0_wp,  2.0_wp,     -38.0_wp,     0.0_wp,     16.0_wp,   0.0_wp, &
          2.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,      29.0_wp,     0.0_wp,     -1.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp,  2.0_wp, -2.0_wp,  2.0_wp,      29.0_wp,     0.0_wp,    -12.0_wp,   0.0_wp, &
          2.0_wp,  0.0_wp,  2.0_wp,  0.0_wp,  2.0_wp,     -31.0_wp,     0.0_wp,     13.0_wp,   0.0_wp, &
          0.0_wp,  0.0_wp,  2.0_wp,  0.0_wp,  0.0_wp,      26.0_wp,     0.0_wp,     -1.0_wp,   0.0_wp, &
         -1.0_wp,  0.0_wp,  2.0_wp,  0.0_wp,  1.0_wp,      21.0_wp,     0.0_wp,    -10.0_wp,   0.0_wp, &
         -1.0_wp,  0.0_wp,  0.0_wp,  2.0_wp,  1.0_wp,      16.0_wp,     0.0_wp,     -8.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp,  0.0_wp, -2.0_wp,  1.0_wp,     -13.0_wp,     0.0_wp,      7.0_wp,   0.0_wp, &
         -1.0_wp,  0.0_wp,  2.0_wp,  2.0_wp,  1.0_wp,     -10.0_wp,     0.0_wp,      5.0_wp,   0.0_wp, &
          1.0_wp,  1.0_wp,  0.0_wp, -2.0_wp,  0.0_wp,      -7.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  1.0_wp,  2.0_wp,  0.0_wp,  2.0_wp,       7.0_wp,     0.0_wp,     -3.0_wp,   0.0_wp, &
          0.0_wp, -1.0_wp,  2.0_wp,  0.0_wp,  2.0_wp,      -7.0_wp,     0.0_wp,      3.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp,  2.0_wp,  2.0_wp,  2.0_wp,      -8.0_wp,     0.0_wp,      3.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp,  0.0_wp,  2.0_wp,  0.0_wp,       6.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          2.0_wp,  0.0_wp,  2.0_wp, -2.0_wp,  2.0_wp,       6.0_wp,     0.0_wp,     -3.0_wp,   0.0_wp, &
          0.0_wp,  0.0_wp,  0.0_wp,  2.0_wp,  1.0_wp,      -6.0_wp,     0.0_wp,      3.0_wp,   0.0_wp, &
          0.0_wp,  0.0_wp,  2.0_wp,  2.0_wp,  1.0_wp,      -7.0_wp,     0.0_wp,      3.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp,  2.0_wp, -2.0_wp,  1.0_wp,       6.0_wp,     0.0_wp,     -3.0_wp,   0.0_wp, &
          0.0_wp,  0.0_wp,  0.0_wp, -2.0_wp,  1.0_wp,      -5.0_wp,     0.0_wp,      3.0_wp,   0.0_wp, &
          1.0_wp, -1.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,       5.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          2.0_wp,  0.0_wp,  2.0_wp,  0.0_wp,  1.0_wp,      -5.0_wp,     0.0_wp,      3.0_wp,   0.0_wp, &
          0.0_wp,  1.0_wp,  0.0_wp, -2.0_wp,  0.0_wp,      -4.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp, -2.0_wp,  0.0_wp,  0.0_wp,       4.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  0.0_wp,  0.0_wp,  1.0_wp,  0.0_wp,      -4.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          1.0_wp,  1.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,      -3.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp,  2.0_wp,  0.0_wp,  0.0_wp,       3.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          1.0_wp, -1.0_wp,  2.0_wp,  0.0_wp,  2.0_wp,      -3.0_wp,     0.0_wp,      1.0_wp,   0.0_wp, &
         -1.0_wp, -1.0_wp,  2.0_wp,  2.0_wp,  2.0_wp,      -3.0_wp,     0.0_wp,      1.0_wp,   0.0_wp, &
         -2.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,  1.0_wp,      -2.0_wp,     0.0_wp,      1.0_wp,   0.0_wp, &
          3.0_wp,  0.0_wp,  2.0_wp,  0.0_wp,  2.0_wp,      -3.0_wp,     0.0_wp,      1.0_wp,   0.0_wp, &
          0.0_wp, -1.0_wp,  2.0_wp,  2.0_wp,  2.0_wp,      -3.0_wp,     0.0_wp,      1.0_wp,   0.0_wp, &
          1.0_wp,  1.0_wp,  2.0_wp,  0.0_wp,  2.0_wp,       2.0_wp,     0.0_wp,     -1.0_wp,   0.0_wp, &
         -1.0_wp,  0.0_wp,  2.0_wp, -2.0_wp,  1.0_wp,      -2.0_wp,     0.0_wp,      1.0_wp,   0.0_wp, &
          2.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,  1.0_wp,       2.0_wp,     0.0_wp,     -1.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,  2.0_wp,      -2.0_wp,     0.0_wp,      1.0_wp,   0.0_wp, &
          3.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,       2.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  0.0_wp,  2.0_wp,  1.0_wp,  2.0_wp,       2.0_wp,     0.0_wp,     -1.0_wp,   0.0_wp, &
         -1.0_wp,  0.0_wp,  0.0_wp,  0.0_wp,  2.0_wp,       1.0_wp,     0.0_wp,     -1.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp,  0.0_wp, -4.0_wp,  0.0_wp,      -1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
         -2.0_wp,  0.0_wp,  2.0_wp,  2.0_wp,  2.0_wp,       1.0_wp,     0.0_wp,     -1.0_wp,   0.0_wp, &
         -1.0_wp,  0.0_wp,  2.0_wp,  4.0_wp,  2.0_wp,      -2.0_wp,     0.0_wp,      1.0_wp,   0.0_wp, &
          2.0_wp,  0.0_wp,  0.0_wp, -4.0_wp,  0.0_wp,      -1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          1.0_wp,  1.0_wp,  2.0_wp, -2.0_wp,  2.0_wp,       1.0_wp,     0.0_wp,     -1.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp,  2.0_wp,  2.0_wp,  1.0_wp,      -1.0_wp,     0.0_wp,      1.0_wp,   0.0_wp, &
         -2.0_wp,  0.0_wp,  2.0_wp,  4.0_wp,  2.0_wp,      -1.0_wp,     0.0_wp,      1.0_wp,   0.0_wp, &
         -1.0_wp,  0.0_wp,  4.0_wp,  0.0_wp,  2.0_wp,       1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          1.0_wp, -1.0_wp,  0.0_wp, -2.0_wp,  0.0_wp,       1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          2.0_wp,  0.0_wp,  2.0_wp, -2.0_wp,  1.0_wp,       1.0_wp,     0.0_wp,     -1.0_wp,   0.0_wp, &
          2.0_wp,  0.0_wp,  2.0_wp,  2.0_wp,  2.0_wp,      -1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp,  0.0_wp,  2.0_wp,  1.0_wp,      -1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  0.0_wp,  4.0_wp, -2.0_wp,  2.0_wp,       1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          3.0_wp,  0.0_wp,  2.0_wp, -2.0_wp,  2.0_wp,       1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp,  2.0_wp, -2.0_wp,  0.0_wp,      -1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  1.0_wp,  2.0_wp,  0.0_wp,  1.0_wp,       1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
         -1.0_wp, -1.0_wp,  0.0_wp,  2.0_wp,  1.0_wp,       1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  0.0_wp, -2.0_wp,  0.0_wp,  1.0_wp,      -1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  0.0_wp,  2.0_wp, -1.0_wp,  2.0_wp,      -1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  1.0_wp,  0.0_wp,  2.0_wp,  0.0_wp,      -1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp, -2.0_wp, -2.0_wp,  0.0_wp,      -1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp, -1.0_wp,  2.0_wp,  0.0_wp,  1.0_wp,      -1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          1.0_wp,  1.0_wp,  0.0_wp, -2.0_wp,  1.0_wp,      -1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          1.0_wp,  0.0_wp, -2.0_wp,  2.0_wp,  0.0_wp,      -1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          2.0_wp,  0.0_wp,  0.0_wp,  2.0_wp,  0.0_wp,       1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  0.0_wp,  2.0_wp,  4.0_wp,  2.0_wp,      -1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp, &
          0.0_wp,  1.0_wp,  0.0_wp,  1.0_wp,  0.0_wp,       1.0_wp,     0.0_wp,      0.0_wp,   0.0_wp ], [9,106])

    !  Interval between fundamental epoch J2000.0 and given date (JC).
    t = ( ( date1-dj00 ) + date2 ) / djc

    !
    !  FUNDAMENTAL ARGUMENTS in the FK5 reference system
    !

    !  Mean longitude of the Moon minus mean longitude of the Moon's
    !  perigee.
    el = ANPM ( ( 485866.733_wp + ( 715922.633_wp + &
                      ( 31.310_wp + 0.064_wp * t ) * t ) * t ) * das2r &
                    + mod(1325.0_wp*t, 1.0_wp) * d2pi )

    !  Mean longitude of the Sun minus mean longitude of the Sun's perigee.
    elp = ANPM ( ( 1287099.804_wp + ( 1292581.224_wp + &
                       ( -0.577_wp -0.012_wp * t ) * t ) * t ) * das2r &
                     + mod(99.0_wp*t, 1.0_wp) * d2pi )

    !  Mean longitude of the Moon minus mean longitude of the Moon's node.
    f = ANPM ( ( 335778.877_wp + ( 295263.137_wp + &
                     ( -13.257_wp + 0.011_wp * t ) * t ) * t ) * das2r &
                   + mod(1342.0_wp*t, 1.0_wp) * d2pi )

    !  Mean elongation of the Moon from the Sun.
    d = ANPM ( ( 1072261.307_wp + ( 1105601.328_wp + &
                     ( -6.891_wp + 0.019_wp * t ) * t ) * t ) * das2r &
                   + mod(1236.0_wp*t, 1.0_wp) * d2pi )

    !  Longitude of the mean ascending node of the lunar orbit on the
    !  ecliptic, measured from the mean equinox of date.
    om = ANPM( ( 450160.280_wp + ( -482890.539_wp + &
                     ( 7.455_wp + 0.008_wp * t ) * t ) * t ) * das2r &
                   + mod( -5.0_wp*t, 1.0_wp) * d2pi )

    !  ---------------
    !  Nutation series
    !  ---------------

    !  Change time argument from centuries to millennia.
    t = t / 10.0_wp

    !  Initialize nutation components.
    dp = 0.0_wp
    de = 0.0_wp

    !  Sum the nutation terms, ending with the biggest.
    do j=106,1,-1

       !  Form argument for current term.
       arg = x(1,j) * el &
           + x(2,j) * elp &
           + x(3,j) * f &
           + x(4,j) * d &
           + x(5,j) * om

       !  Accumulate current nutation term.
       s = x(6,j) + x(7,j) * t
       c = x(8,j) + x(9,j) * t
       if ( s /= 0.0_wp ) dp = dp + s * sin(arg)
       if ( c /= 0.0_wp ) de = de + c * cos(arg)

       !  Next term.
    end do

    !  Convert results from 0.1 mas units to radians.
    dpsi = dp * u2r
    deps = de * u2r

    end subroutine NUT80