register_imports Subroutine

public subroutine register_imports(gridcomp, hconfig, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_GridComp), intent(inout) :: gridcomp
type(ESMF_HConfig), intent(in) :: hconfig
integer, intent(out), optional :: rc

Calls

proc~~register_imports~~CallsGraph proc~register_imports register_imports ESMF_HConfigIterLoop ESMF_HConfigIterLoop proc~register_imports->ESMF_HConfigIterLoop esmf_hconfigcreateat esmf_hconfigcreateat proc~register_imports->esmf_hconfigcreateat esmf_hconfigiterbegin esmf_hconfigiterbegin proc~register_imports->esmf_hconfigiterbegin esmf_hconfigiterend esmf_hconfigiterend proc~register_imports->esmf_hconfigiterend ftn_begin ftn_begin proc~register_imports->ftn_begin ftn_end ftn_end proc~register_imports->ftn_end interface~mapl_addspec MAPL_AddSpec proc~register_imports->interface~mapl_addspec interface~mapl_assert MAPL_Assert proc~register_imports->interface~mapl_assert next next proc~register_imports->next of of proc~register_imports->of proc~mapl_return MAPL_Return proc~register_imports->proc~mapl_return proc~mapl_verify MAPL_Verify proc~register_imports->proc~mapl_verify proc~mirror_ungridded_dims mirror_ungridded_dims proc~register_imports->proc~mirror_ungridded_dims at at proc~mapl_return->at insert insert proc~mapl_return->insert proc~mapl_throw_exception MAPL_throw_exception proc~mapl_return->proc~mapl_throw_exception proc~mapl_verify->proc~mapl_throw_exception

Called by

proc~~register_imports~~CalledByGraph proc~register_imports register_imports proc~setservices~5 setServices proc~setservices~5->proc~register_imports

Source Code

   subroutine register_imports(gridcomp, hconfig, rc)
      type(ESMF_GridComp), intent(inout) :: gridcomp
      type(ESMF_HConfig), intent(in) :: hconfig
      integer, optional, intent(out) :: rc
      type(ESMF_HConfigIter) :: iter, iter_begin, iter_end
      type(ESMF_HConfig) :: var_list
      character(len=:), allocatable :: item_name
      type(StringVector) :: variable_names
      integer :: status

      var_list = ESMF_HConfigCreateAt(hconfig, keystring=VAR_LIST_KEY, rc=status)
      if(status==ESMF_RC_NOT_FOUND) then
         _FAIL(VAR_LIST_KEY // ' was not found.')
      end if
      _VERIFY(status)

      iter_begin = ESMF_HConfigIterBegin(var_list,_RC)
      iter_end = ESMF_HConfigIterEnd(var_list,_RC)
      iter = iter_begin
      do while (ESMF_HConfigIterLoop(iter,iter_begin,iter_end,rc=status))
         _VERIFY(status)
         call parse_item(iter, item_name, variable_names, _RC)
         call add_specs(gridcomp, variable_names, _RC)
      end do

      _RETURN(_SUCCESS)
   end subroutine register_imports