subroutine ESMF_TimeIntervalPrint(timeinterval, options, rc)
! !ARGUMENTS:
type(ESMF_TimeInterval), intent(in) :: timeinterval
character (len=*), intent(in), optional :: options
integer, intent(out), optional :: rc
!
! !DESCRIPTION:
! Prints out the contents of an {\tt ESMF\_TimeInterval} to {\tt stdout},
! in support of testing and debugging. The options control the type of
! information and level of detail. \\
!
! The arguments are:
! \begin{description}
! \item[timeinterval]
! Time interval to be printed out.
! \item[{[options]}]
! Print options. If none specified, prints all {\tt timeinterval}
! property values. \\
! "string" - prints {\tt timeinterval}'s value in ISO 8601 format
! for all units through seconds. For any non-zero
! fractional seconds, prints in integer rational
! fraction form n/d. Format is PyYmMdDThHmMs[:n/d]S,
! where [:n/d] is the integer numerator and denominator
! of the fractional seconds value, if present.
! See ~\cite{ISO} and ~\cite{ISOnotes}. See also method
! {\tt ESMF\_TimeIntervalGet(..., timeString= , ...)} \\
! "string isofrac" - prints {\tt timeinterval}'s value in strict
! ISO 8601 format for all units, including any fractional
! seconds part. Format is PyYmMdDThHmMs[.f]S, where [.f]
! represents fractional seconds in decimal form,
! if present. See ~\cite{ISO} and ~\cite{ISOnotes}.
! See also method {\tt ESMF\_TimeIntervalGet(..., timeStringISOFrac= , ...)} \\
! \item[{[rc]}]
! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors.
! \end{description}
!
!EOP
! !REQUIREMENTS:
! TMGn.n.n
integer :: localrc ! local return code
! Assume failure until success
if (present(rc)) rc = ESMF_RC_NOT_IMPL
localrc = ESMF_RC_NOT_IMPL
! check input
ESMF_INIT_CHECK_SHALLOW(ESMF_TimeIntervalGetInit,timeinterval,rc)
! invoke C to C++ entry point
call ESMF_UtilIOUnitFlush (ESMF_UtilIOStdout, rc=localrc)
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
ESMF_CONTEXT, rcToReturn=rc)) return
call c_ESMC_TimeIntervalPrint(timeinterval, options, localrc)
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
ESMF_CONTEXT, rcToReturn=rc)) return
! Return success
if (present(rc)) rc = ESMF_SUCCESS
end subroutine ESMF_TimeIntervalPrint