x_comp_get_config Subroutine

private subroutine x_comp_get_config(xdata, xstate, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_GridComp) :: xdata
type(xdata_state), intent(inout), pointer :: xstate
integer, intent(out) :: rc

Calls

proc~~x_comp_get_config~~CallsGraph proc~x_comp_get_config x_comp_get_config esmf_hconfigcreateat esmf_hconfigcreateat proc~x_comp_get_config->esmf_hconfigcreateat esmf_hconfigisdefined esmf_hconfigisdefined proc~x_comp_get_config->esmf_hconfigisdefined proc~esmf_gridcompget ESMF_GridCompGet proc~x_comp_get_config->proc~esmf_gridcompget proc~esmf_hconfigdestroy ESMF_HConfigDestroy proc~x_comp_get_config->proc~esmf_hconfigdestroy proc~esmf_logfounderror ESMF_LogFoundError proc~x_comp_get_config->proc~esmf_logfounderror proc~esmf_logseterror ESMF_LogSetError proc~x_comp_get_config->proc~esmf_logseterror proc~x_comp_read_fields x_comp_read_fields proc~x_comp_get_config->proc~x_comp_read_fields proc~x_comp_read_geom x_comp_read_geom proc~x_comp_get_config->proc~x_comp_read_geom proc~x_comp_read_output x_comp_read_output proc~x_comp_get_config->proc~x_comp_read_output proc~esmf_gridcompget->proc~esmf_logfounderror proc~esmf_compget ESMF_CompGet proc~esmf_gridcompget->proc~esmf_compget proc~esmf_compstatusget ESMF_CompStatusGet proc~esmf_gridcompget->proc~esmf_compstatusget proc~esmf_gridcompgetinit ESMF_GridCompGetInit proc~esmf_gridcompget->proc~esmf_gridcompgetinit proc~esmf_imerr ESMF_IMErr proc~esmf_gridcompget->proc~esmf_imerr proc~esmf_hconfigdestroy->proc~esmf_logfounderror c_esmc_hconfigdestroy c_esmc_hconfigdestroy proc~esmf_hconfigdestroy->c_esmc_hconfigdestroy proc~esmf_hconfiggetinit ESMF_HConfigGetInit proc~esmf_hconfigdestroy->proc~esmf_hconfiggetinit proc~esmf_hconfigdestroy->proc~esmf_imerr 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 proc~x_comp_read_fields->esmf_hconfigcreateat proc~x_comp_read_fields->esmf_hconfigisdefined proc~x_comp_read_fields->proc~esmf_hconfigdestroy proc~x_comp_read_fields->proc~esmf_logfounderror proc~x_comp_read_fields->proc~esmf_logseterror esmf_hconfigiterbegin esmf_hconfigiterbegin proc~x_comp_read_fields->esmf_hconfigiterbegin esmf_hconfigiterend esmf_hconfigiterend proc~x_comp_read_fields->esmf_hconfigiterend proc~esmf_hconfigasstringmapkey ESMF_HConfigAsStringMapKey proc~x_comp_read_fields->proc~esmf_hconfigasstringmapkey proc~esmf_hconfigiterloop ESMF_HConfigIterLoop proc~x_comp_read_fields->proc~esmf_hconfigiterloop proc~esmf_hconfigvalidatemapkeys ESMF_HConfigValidateMapKeys proc~x_comp_read_fields->proc~esmf_hconfigvalidatemapkeys proc~esmf_logfoundallocerror ESMF_LogFoundAllocError proc~x_comp_read_fields->proc~esmf_logfoundallocerror proc~x_comp_hconfig_i4 x_comp_hconfig_i4 proc~x_comp_read_fields->proc~x_comp_hconfig_i4 proc~x_comp_hconfig_r8 x_comp_hconfig_r8 proc~x_comp_read_fields->proc~x_comp_hconfig_r8 proc~x_comp_read_geom->esmf_hconfigcreateat proc~x_comp_read_geom->esmf_hconfigisdefined proc~x_comp_read_geom->proc~esmf_hconfigdestroy proc~x_comp_read_geom->proc~esmf_logfounderror proc~x_comp_read_geom->proc~esmf_logseterror proc~x_comp_read_geom->proc~esmf_hconfigvalidatemapkeys proc~esmf_utilstringuppercase ESMF_UtilStringUpperCase proc~x_comp_read_geom->proc~esmf_utilstringuppercase proc~x_comp_read_geom->proc~x_comp_hconfig_i4 proc~x_comp_read_geom->proc~x_comp_hconfig_r8 proc~x_comp_hconfig_str x_comp_hconfig_str proc~x_comp_read_geom->proc~x_comp_hconfig_str proc~x_comp_read_output->esmf_hconfigcreateat proc~x_comp_read_output->esmf_hconfigisdefined proc~x_comp_read_output->proc~esmf_hconfigdestroy proc~x_comp_read_output->proc~esmf_logfounderror proc~x_comp_read_output->proc~esmf_logseterror proc~x_comp_read_output->proc~esmf_hconfigvalidatemapkeys proc~x_comp_hconfig_logical x_comp_hconfig_logical proc~x_comp_read_output->proc~x_comp_hconfig_logical

Called by

proc~~x_comp_get_config~~CalledByGraph proc~x_comp_get_config x_comp_get_config proc~advertise Advertise proc~advertise->proc~x_comp_get_config

Source Code

  subroutine x_comp_get_config(xdata, xstate, rc)
    ! arguments
    type(ESMF_GridComp)                       :: xdata
    type(xdata_state), pointer, intent(inout) :: xstate
    integer, intent(out)                      :: rc
    ! local variables
    logical            :: isPresent
    integer            :: stat
    logical            :: check
    type(ESMF_HConfig) :: hconfig
    type(ESMF_HConfig) :: xdatacfg

    rc = ESMF_SUCCESS

    if (.not. associated(xstate)) then
      call ESMF_LogSetError(ESMF_RC_PTR_NOTALLOC, &
        msg='XDATA: xstate has not been associated', &
        line=__LINE__, file=__FILE__, rcToReturn=rc)
      return
    endif

    call ESMF_GridCompGet(xdata, configIsPresent=isPresent, rc=rc)
    if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
      line=__LINE__, file=__FILE__)) return
    if (isPresent) then
      ! get hconfig from component
      call ESMF_GridCompGet(xdata, hconfig=hconfig, rc=rc)
      if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
        line=__LINE__, file=__FILE__)) return
      isPresent = ESMF_HConfigIsDefined(hconfig, &
        keyString=xstate%cname, rc=rc)
      if (isPresent) then
        ! access xdatacfg
        xdatacfg = ESMF_HConfigCreateAt(hconfig, &
          keyString=xstate%cname, rc=rc)
        if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
          line=__LINE__, file=__FILE__)) return
        call x_comp_read_output(xdatacfg, xstate, rc=rc)
        if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
          line=__LINE__, file=__FILE__)) return
        call x_comp_read_geom(xdatacfg, xstate, rc=rc)
        if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
          line=__LINE__, file=__FILE__)) return
        call x_comp_read_fields(xdatacfg, xstate, rc=rc)
        if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
          line=__LINE__, file=__FILE__)) return
        call ESMF_HConfigDestroy(xdatacfg, rc=rc)
        if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
          line=__LINE__, file=__FILE__)) return
      endif ! xdatacfg
    endif ! config

  endsubroutine x_comp_get_config