TAIUT1 Subroutine

public subroutine TAIUT1(tai1, tai2, dta, ut11, ut12, j)

Time scale transformation: International Atomic Time, TAI, to Universal Time, UT1.

Status: canonical.

Notes

  1. TAI1+TAI2 is Julian Date, apportioned in any convenient way between the two arguments, for example where TAI1 is the Julian Day Number and TAI2 is the fraction of a day. The returned UT11,UT12 follow suit.

  2. The argument DTA, i.e. UT1-TAI, is an observed quantity, and is available from IERS tabulations.

Reference

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

History

  • IAU SOFA revision: 2019 June 20

Arguments

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

TAI as a 2-part Julian Date

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

TAI as a 2-part Julian Date

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

UT1-TAI in seconds

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

UT1 as a 2-part Julian Date

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

UT1 as a 2-part Julian Date

integer, intent(out) :: j

status: 0 = OK


Called by

proc~~taiut1~~CalledByGraph proc~taiut1 TAIUT1 proc~utcut1 UTCUT1 proc~utcut1->proc~taiut1 proc~apco13 APCO13 proc~apco13->proc~utcut1 proc~apio13 APIO13 proc~apio13->proc~utcut1 proc~atco13 ATCO13 proc~atco13->proc~apco13 proc~atoi13 ATOI13 proc~atoi13->proc~apio13 proc~atio13 ATIO13 proc~atio13->proc~apio13 proc~atoc13 ATOC13 proc~atoc13->proc~apco13

Contents

Source Code


Source Code

    subroutine TAIUT1 ( tai1, tai2, dta, ut11, ut12, j )

    implicit none

    real(wp),intent(in) :: tai1 !! TAI as a 2-part Julian Date
    real(wp),intent(in) :: tai2 !! TAI as a 2-part Julian Date
    real(wp),intent(in) :: dta !! UT1-TAI in seconds
    real(wp),intent(out) :: ut11 !! UT1 as a 2-part Julian Date
    real(wp),intent(out) :: ut12 !! UT1 as a 2-part Julian Date
    integer,intent(out) :: j !! status:  0 = OK

    real(wp) :: dtad

    !  Result, safeguarding precision.
    dtad = dta/d2s
    if ( abs(tai1)>abs(tai2) ) then
       ut11 = tai1
       ut12 = tai2 + dtad
    else
       ut11 = tai1 + dtad
       ut12 = tai2
    end if

    !  Status (always OK).
    j = 0

    end subroutine TAIUT1