TTTDB Subroutine

public subroutine TTTDB(tt1, tt2, dtr, tdb1, tdb2, j)

Time scale transformation: Terrestrial Time, TT, to Barycentric Dynamical Time, TDB.

Status: canonical.

Notes

  1. TT1+TT2 is Julian Date, apportioned in any convenient way between the two arguments, for example where TT1 is the Julian Day Number and TT2 is the fraction of a day. The returned TDB1,TDB2 follow suit.

  2. The argument DTR represents the quasi-periodic component of the GR transformation between TT and TCB. It is dependent upon the adopted solar-system ephemeris, and can be obtained by numerical integration, by interrogating a precomputed time ephemeris or by evaluating a model such as that implemented in the SOFA routine DTDB. The quantity is dominated by an annual term of 1.7 ms amplitude.

  3. TDB is essentially the same as Teph, the time argument for the JPL solar system ephemerides.

References

  • McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)

  • IAU 2006 Resolution 3

History

  • IAU SOFA revision: 2019 June 20

Arguments

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

TT as a 2-part Julian Date

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

TT as a 2-part Julian Date

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

TDB-TT in seconds

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

TDB as a 2-part Julian Date

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

TDB as a 2-part Julian Date

integer, intent(out) :: j

status: 0 = OK


Contents

Source Code


Source Code

    subroutine TTTDB ( tt1, tt2, dtr, tdb1, tdb2, j )

    implicit none

    real(wp),intent(in) :: tt1 !! TT as a 2-part Julian Date
    real(wp),intent(in) :: tt2 !! TT as a 2-part Julian Date
    real(wp),intent(in) :: dtr !! TDB-TT in seconds
    real(wp),intent(out) :: tdb1 !! TDB as a 2-part Julian Date
    real(wp),intent(out) :: tdb2 !! TDB as a 2-part Julian Date
    integer,intent(out) :: j !! status:  0 = OK

    real(wp) :: dtrd

    !  Result, safeguarding precision.
    dtrd = dtr/d2s
    if ( abs(tt1)>abs(tt2) ) then
       tdb1 = tt1
       tdb2 = tt2 + dtrd
    else
       tdb1 = tt1 + dtrd
       tdb2 = tt2
    end if

    !  Status (always OK).
    j = 0

    end subroutine TTTDB