x_comp_hconfig_r8 Function

private function x_comp_hconfig_r8(hconfig, key, defaultValue, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_HConfig), intent(in) :: hconfig
character(len=*), intent(in) :: key
real(kind=ESMF_KIND_R8), intent(in), optional :: defaultValue
integer, intent(out) :: rc

Return Value real(kind=ESMF_KIND_R8)


Calls

proc~~x_comp_hconfig_r8~~CallsGraph proc~x_comp_hconfig_r8 x_comp_hconfig_r8 esmf_hconfigasr8 esmf_hconfigasr8 proc~x_comp_hconfig_r8->esmf_hconfigasr8 esmf_hconfigisdefined esmf_hconfigisdefined proc~x_comp_hconfig_r8->esmf_hconfigisdefined proc~esmf_logfounderror ESMF_LogFoundError proc~x_comp_hconfig_r8->proc~esmf_logfounderror proc~esmf_logseterror ESMF_LogSetError proc~x_comp_hconfig_r8->proc~esmf_logseterror 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_logseterror->esmf_breakpoint proc~esmf_logseterror->proc~esmf_logrc2msg proc~esmf_logseterror->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~~x_comp_hconfig_r8~~CalledByGraph proc~x_comp_hconfig_r8 x_comp_hconfig_r8 proc~x_comp_read_fields x_comp_read_fields proc~x_comp_read_fields->proc~x_comp_hconfig_r8 proc~x_comp_read_geom x_comp_read_geom proc~x_comp_read_geom->proc~x_comp_hconfig_r8 proc~x_comp_get_config x_comp_get_config proc~x_comp_get_config->proc~x_comp_read_fields proc~x_comp_get_config->proc~x_comp_read_geom proc~advertise Advertise proc~advertise->proc~x_comp_get_config

Source Code

  function x_comp_hconfig_r8(hconfig, key, defaultValue, rc)
    ! return value
    real(ESMF_KIND_R8) :: x_comp_hconfig_r8
    ! arguments
    type(ESMF_HConfig), intent(in)           :: hconfig
    character(*), intent(in)                 :: key
    real(ESMF_KIND_R8), intent(in), optional :: defaultValue
    integer, intent(out)                     :: rc
    ! local variables
    logical :: isPresent
    logical :: check

    rc = ESMF_SUCCESS
    x_comp_hconfig_r8 = 0.0_ESMF_KIND_R8

    isPresent = ESMF_HConfigIsDefined(hconfig, keyString=key, rc=rc)
    if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
      line=__LINE__, file=__FILE__)) return

    if (isPresent) then
      x_comp_hconfig_r8 = ESMF_HConfigAsR8(hconfig, keyString=key, &
        asOkay=check, rc=rc)
      if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
        line=__LINE__, file=__FILE__)) return
      if (.not.check) then
        call ESMF_LogSetError(ESMF_RC_NOT_VALID, &
          msg="XDATA: Value cannot be converted to R8 - "//trim(key), &
          line=__LINE__, file=__FILE__, rcToReturn=rc)
        return
      endif
    elseif (present(defaultValue)) then
      x_comp_hconfig_r8 = defaultValue
    else
      call ESMF_LogSetError(ESMF_RC_NOT_FOUND, &
        msg="XDATA: Key not found - "//trim(key), &
        line=__LINE__, file=__FILE__, rcToReturn=rc)
      return
    endif
  endfunction x_comp_hconfig_r8