Time scale transformation: Universal Time, UT1, to Terrestrial Time, TT.
Status: canonical.
UT11+UT12 is Julian Date, apportioned in any convenient way between the two arguments, for example where UT11 is the Julian Day Number and UT12 is the fraction of a day. The returned TT1,TT2 follow suit.
The argument DT is classical Delta T.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=wp), | intent(in) | :: | ut11 | UT1 as a 2-part Julian Date |
||
real(kind=wp), | intent(in) | :: | ut12 | UT1 as a 2-part Julian Date |
||
real(kind=wp), | intent(in) | :: | dt | TT-UT1 in seconds |
||
real(kind=wp), | intent(out) | :: | tt1 | TT as a 2-part Julian Date |
||
real(kind=wp), | intent(out) | :: | tt2 | TT as a 2-part Julian Date |
||
integer, | intent(out) | :: | j | status: 0 = OK |
subroutine UT1TT ( ut11, ut12, dt, tt1, tt2, j )
implicit none
real(wp),intent(in) :: ut11 !! UT1 as a 2-part Julian Date
real(wp),intent(in) :: ut12 !! UT1 as a 2-part Julian Date
real(wp),intent(in) :: dt !! TT-UT1 in seconds
real(wp),intent(out) :: tt1 !! TT as a 2-part Julian Date
real(wp),intent(out) :: tt2 !! TT as a 2-part Julian Date
integer,intent(out) :: j !! status: 0 = OK
real(wp) :: dtd
! Result, safeguarding precision.
dtd = dt/d2s
if ( abs(ut11)>abs(ut12) ) then
tt1 = ut11
tt2 = ut12 + dtd
else
tt1 = ut11 + dtd
tt2 = ut12
end if
! Status (always OK).
j = 0
end subroutine UT1TT