ESMF_TimeIntervalPrint Subroutine

public subroutine ESMF_TimeIntervalPrint(timeinterval, options, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_TimeInterval), intent(in) :: timeinterval
character(len=*), intent(in), optional :: options
integer, intent(out), optional :: rc

Source Code

      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