ESMF_LocStreamPrint Subroutine

public subroutine ESMF_LocStreamPrint(locstream, keywordEnforcer, options, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_LocStream), intent(in) :: locstream
type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
character(len=*), intent(in), optional :: options
integer, intent(out), optional :: rc

Calls

proc~~esmf_locstreamprint~~CallsGraph proc~esmf_locstreamprint ESMF_LocStreamPrint interface~esmf_locstreamgetkey ESMF_LocStreamGetKey proc~esmf_locstreamprint->interface~esmf_locstreamgetkey proc~esmf_getname ESMF_GetName proc~esmf_locstreamprint->proc~esmf_getname proc~esmf_imerr ESMF_IMErr proc~esmf_locstreamprint->proc~esmf_imerr proc~esmf_locstreamgetinit ESMF_LocStreamGetInit proc~esmf_locstreamprint->proc~esmf_locstreamgetinit proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_locstreamprint->proc~esmf_logfounderror proc~esmf_locstreamgetkeyarray ESMF_LocStreamGetKeyArray interface~esmf_locstreamgetkey->proc~esmf_locstreamgetkeyarray proc~esmf_locstreamgetkeyi4 ESMF_LocStreamGetKeyI4 interface~esmf_locstreamgetkey->proc~esmf_locstreamgetkeyi4 proc~esmf_locstreamgetkeyinfo ESMF_LocStreamGetKeyInfo interface~esmf_locstreamgetkey->proc~esmf_locstreamgetkeyinfo proc~esmf_locstreamgetkeyr4 ESMF_LocStreamGetKeyR4 interface~esmf_locstreamgetkey->proc~esmf_locstreamgetkeyr4 proc~esmf_locstreamgetkeyr8 ESMF_LocStreamGetKeyR8 interface~esmf_locstreamgetkey->proc~esmf_locstreamgetkeyr8 interface~c_esmc_getname c_ESMC_GetName proc~esmf_getname->interface~c_esmc_getname proc~esmf_imerr->proc~esmf_logfounderror proc~esmf_initcheckdeep ESMF_InitCheckDeep proc~esmf_imerr->proc~esmf_initcheckdeep esmf_breakpoint esmf_breakpoint proc~esmf_logfounderror->esmf_breakpoint proc~esmf_logrc2msg ESMF_LogRc2Msg proc~esmf_logfounderror->proc~esmf_logrc2msg proc~esmf_logwrite ESMF_LogWrite proc~esmf_logfounderror->proc~esmf_logwrite proc~esmf_locstreamgetkeyarray->proc~esmf_imerr proc~esmf_locstreamgetkeyarray->proc~esmf_locstreamgetinit proc~esmf_locstreamgetkeyarray->proc~esmf_logfounderror proc~esmf_locstreamgetkeyi4->proc~esmf_imerr proc~esmf_locstreamgetkeyi4->proc~esmf_locstreamgetinit proc~esmf_locstreamgetkeyi4->proc~esmf_logfounderror proc~esmf_locstreamgetkeyi4->proc~esmf_locstreamgetkeyarray c_esmc_locstreamgetkeybnds c_esmc_locstreamgetkeybnds proc~esmf_locstreamgetkeyi4->c_esmc_locstreamgetkeybnds esmf_arrayget esmf_arrayget proc~esmf_locstreamgetkeyi4->esmf_arrayget esmf_localarrayget esmf_localarrayget proc~esmf_locstreamgetkeyi4->esmf_localarrayget proc~esmf_locstreamgetkeyinfo->proc~esmf_imerr proc~esmf_locstreamgetkeyinfo->proc~esmf_locstreamgetinit proc~esmf_locstreamgetkeyinfo->proc~esmf_logfounderror proc~esmf_locstreamgetkeyinfo->esmf_arrayget proc~esmf_locstreamgetkeyr4->proc~esmf_imerr proc~esmf_locstreamgetkeyr4->proc~esmf_locstreamgetinit proc~esmf_locstreamgetkeyr4->proc~esmf_logfounderror proc~esmf_locstreamgetkeyr4->proc~esmf_locstreamgetkeyarray proc~esmf_locstreamgetkeyr4->c_esmc_locstreamgetkeybnds proc~esmf_locstreamgetkeyr4->esmf_arrayget proc~esmf_locstreamgetkeyr4->esmf_localarrayget proc~esmf_locstreamgetkeyr8->proc~esmf_imerr proc~esmf_locstreamgetkeyr8->proc~esmf_locstreamgetinit proc~esmf_locstreamgetkeyr8->proc~esmf_logfounderror proc~esmf_locstreamgetkeyr8->proc~esmf_locstreamgetkeyarray proc~esmf_locstreamgetkeyr8->c_esmc_locstreamgetkeybnds proc~esmf_locstreamgetkeyr8->esmf_arrayget proc~esmf_locstreamgetkeyr8->esmf_localarrayget c_esmc_loggeterrormsg c_esmc_loggeterrormsg proc~esmf_logrc2msg->c_esmc_loggeterrormsg c_esmc_vmwtime c_esmc_vmwtime proc~esmf_logwrite->c_esmc_vmwtime proc~esmf_logclose ESMF_LogClose proc~esmf_logwrite->proc~esmf_logclose proc~esmf_logflush ESMF_LogFlush proc~esmf_logwrite->proc~esmf_logflush proc~esmf_logopenfile ESMF_LogOpenFile proc~esmf_logwrite->proc~esmf_logopenfile proc~esmf_utiliounitflush ESMF_UtilIOUnitFlush proc~esmf_logwrite->proc~esmf_utiliounitflush proc~esmf_utilstring2array ESMF_UtilString2Array proc~esmf_logwrite->proc~esmf_utilstring2array proc~esmf_logclose->proc~esmf_logflush proc~esmf_logflush->proc~esmf_utiliounitflush proc~esmf_utilarray2string ESMF_UtilArray2String proc~esmf_logflush->proc~esmf_utilarray2string proc~esmf_logopenfile->proc~esmf_utiliounitflush proc~esmf_utiliounitget ESMF_UtilIOUnitGet proc~esmf_logopenfile->proc~esmf_utiliounitget

Called by

proc~~esmf_locstreamprint~~CalledByGraph proc~esmf_locstreamprint ESMF_LocStreamPrint program~esmf_locstreamcreateutest ESMF_LocStreamCreateUTest program~esmf_locstreamcreateutest->proc~esmf_locstreamprint

Source Code

      subroutine ESMF_LocStreamPrint(locstream, keywordEnforcer, options, rc)
!
!
! !ARGUMENTS:
      type(ESMF_LocStream), intent(in)             :: locstream 
type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below
      character (len = *),  intent(in),   optional :: options
      integer,              intent(out),  optional :: rc
!
! !DESCRIPTION:
!     Prints information about the {\tt locstream} to {\tt stdout}.
!  This subroutine goes through the internal data members of a locstream
 !  data type and prints information of each data member.
!
!     The arguments are:
!     \begin{description}
!     \item [locstream]
!     \item [{[options]}]
!           Print options are not yet supported.
!     \item [{[rc]}]
!           Return code; equals {\tt ESMF\_SUCCESS} if there are no errors.
!     \end{description}
!
!EOP
        type(ESMF_LocStreamType),pointer :: lstypep
        character(len=ESMF_MAXSTR)       :: name
        integer                          :: localrc
        character(len=6)                 :: defaultopts
        integer                          :: i
        type(ESMF_TypeKind_Flag)              :: keyKind
        real(ESMF_KIND_R8), pointer :: tmpR8(:)
        real(ESMF_KIND_R4), pointer :: tmpR4(:)
        integer(ESMF_KIND_I4), pointer :: tmpI4(:)
        integer                          :: cl,cu,j

        ! Initialize
        localrc = ESMF_RC_NOT_IMPL
        if (present(rc)) rc = ESMF_RC_NOT_IMPL

        ! check variables
        ESMF_INIT_CHECK_DEEP(ESMF_LocStreamGetInit,locstream,rc)

        !DUMMY TEST TO QUIET DOWN COMPILER WARNINGS
        !TODO: Remove the following dummy test when dummy argument actually used
        if (present (options)) continue

        write(ESMF_UtilIOStdout,*) "LocStream Print Starts ====>"

        ! Get internal pointer to locstream
        lstypep => locstream%lstypep

        ! print option is not implemented, but it has to pass to c_ESMC_BasePrint()
        defaultopts = "brief"

        call ESMF_GetName(lstypep%base, name, localrc)
        if (ESMF_LogFoundError(localrc, &
                                  ESMF_ERR_PASSTHRU, &
                                  ESMF_CONTEXT, rcToReturn=rc)) return

        write(ESMF_UtilIOStdout,*)  "Name =     '",  trim(name), "'" 
        write(ESMF_UtilIOStdout,*)  "KeyCount =",lstypep%keyCount
        write(ESMF_UtilIOStdout,*) "Keys:"
        do i=1,lstypep%keyCount
           write(ESMF_UtilIOStdout,*) "   ",trim(lstypep%keyNames(i)),     &
                                      " - ",trim(lstypep%keyLongNames(i)), &
                                      "    ",trim(lstypep%keyUnits(i))


          call ESMF_LocStreamGetKey(locstream,lstypep%keyNames(i),typekind=keyKind,rc=localrc)
          if (ESMF_LogFoundError(localrc, &
                                 ESMF_ERR_PASSTHRU, &
                                 ESMF_CONTEXT, rcToReturn=rc)) return

          if (keyKind .eq. ESMF_TYPEKIND_I4) then
            call  ESMF_LocStreamGetKey(locstream, keyName=lstypep%keyNames(i), &
              computationalLBound=cl, computationalUBound=cu, farray=tmpI4, rc=localrc)
            if (ESMF_LogFoundError(localrc, &
                                   ESMF_ERR_PASSTHRU, &
                                   ESMF_CONTEXT, rcToReturn=rc)) return
            do j=cl,cu
              write(ESMF_UtilIOStdout,*) "    arr(",j,")= ",tmpI4(j)
            enddo
          else if (keyKind .eq. ESMF_TYPEKIND_R4) then
            call  ESMF_LocStreamGetKey(locstream, keyName=lstypep%keyNames(i), &
              computationalLBound=cl, computationalUBound=cu, farray=tmpR4, rc=localrc)
            if (ESMF_LogFoundError(localrc, &
                                   ESMF_ERR_PASSTHRU, &
                                   ESMF_CONTEXT, rcToReturn=rc)) return
            do j=cl,cu
              write(ESMF_UtilIOStdout,*) "    arr(",j,")= ",tmpR4(j)
            enddo
          else if (keyKind .eq. ESMF_TYPEKIND_R8) then
            call  ESMF_LocStreamGetKey(locstream, keyName=lstypep%keyNames(i), &
              computationalLBound=cl, computationalUBound=cu, farray=tmpR8, rc=localrc)
            if (ESMF_LogFoundError(localrc, &
                                   ESMF_ERR_PASSTHRU, &
                                   ESMF_CONTEXT, rcToReturn=rc)) return
            do j=cl,cu
              write(ESMF_UtilIOStdout,*) "    arr(",j,")= ",tmpR8(j)
            enddo
          else
            if (ESMF_LogFoundError(ESMF_RC_ARG_WRONG, &
              msg=" - unknown typekind for LocStream key", &
              ESMF_CONTEXT, rcToReturn=rc)) return
          endif
        enddo

        write(ESMF_UtilIOStdout,*) "LocStream Print Ends   ====>"

        if (present(rc)) rc = ESMF_SUCCESS

        end subroutine ESMF_LocStreamPrint