fillProfileStr Subroutine

private subroutine fillProfileStr(srcField, dstField, regridmethod, profileStr, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_Field), intent(in) :: srcField
type(ESMF_Field), intent(inout) :: dstField
type(ESMF_RegridMethod_Flag), intent(in), optional :: regridmethod
character(len=*), intent(out) :: profileStr
integer, intent(out), optional :: rc

Calls

proc~~fillprofilestr~~CallsGraph proc~fillprofilestr fillProfileStr esmf_fieldget esmf_fieldget proc~fillprofilestr->esmf_fieldget proc~esmf_logfounderror ESMF_LogFoundError proc~fillprofilestr->proc~esmf_logfounderror 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 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~~fillprofilestr~~CalledByGraph proc~fillprofilestr fillProfileStr proc~esmf_fieldregridstorenx ESMF_FieldRegridStoreNX proc~esmf_fieldregridstorenx->proc~fillprofilestr interface~esmf_fieldregridstore ESMF_FieldRegridStore interface~esmf_fieldregridstore->proc~esmf_fieldregridstorenx

Source Code

    subroutine fillProfileStr(srcField, dstField, regridmethod, profileStr, rc)
      type(ESMF_Field),               intent(in)              :: srcField
      type(ESMF_Field),               intent(inout)           :: dstField
      type(ESMF_RegridMethod_Flag),   intent(in),optional     :: regridmethod
      character (len=*),              intent(out)             :: profileStr
      integer,                        intent(out),   optional :: rc

      integer :: localrc
      character (len=ESMF_MAXSTR) :: tmpStr 

      
      ! Set string
      profileStr="ESMF_FieldRegridStore("

      ! Get srcField name
      call ESMF_FieldGet(srcField, name=tmpStr, rc=localrc)
      if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
           ESMF_CONTEXT, rcToReturn=rc)) return                 

      ! Add to profileStr
      profileStr=trim(profileStr)//"src="//trim(tmpStr)

      
      ! Get dstField name
      call ESMF_FieldGet(dstField, name=tmpStr, rc=localrc)
      if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
           ESMF_CONTEXT, rcToReturn=rc)) return                 

      ! Add to profileStr
      profileStr=trim(profileStr)//" dst="//trim(tmpStr)

      ! Get method name
      if (present(regridmethod)) then
         if (regridMethod == ESMF_REGRIDMETHOD_BILINEAR) then
            tmpStr="bilinear"
         else if (regridMethod == ESMF_REGRIDMETHOD_CONSERVE) then
            tmpStr="conserve"
         else if (regridMethod == ESMF_REGRIDMETHOD_CONSERVE_2ND) then
            tmpStr="conserve2nd"
         else if (regridMethod == ESMF_REGRIDMETHOD_PATCH) then
            tmpStr="patch"
         else if (regridMethod == ESMF_REGRIDMETHOD_NEAREST_STOD) then
            tmpStr="neareststod"
         else if (regridMethod == ESMF_REGRIDMETHOD_NEAREST_DTOS) then
            tmpStr="nearestdtos"
         else
            tmpStr="unknown"
         endif
      else
         tmpStr="bilinear" ! Default to bilinear if not present
      endif
         
      ! Add to profileStr
      profileStr=trim(profileStr)//" method="//trim(tmpStr)         
      
      ! end it
      profileStr=trim(profileStr)//")"
 
      ! Return success !
      if(present(rc)) rc = ESMF_SUCCESS      
      
    end subroutine fillProfileStr