get_child_user_states Subroutine

public subroutine get_child_user_states(states, outer_meta, child_name, rc)

Uses

  • proc~~get_child_user_states~~UsesGraph proc~get_child_user_states get_child_user_states module~mapl3g_griddedcomponentdriver mapl3g_GriddedComponentDriver proc~get_child_user_states->module~mapl3g_griddedcomponentdriver ESMF ESMF module~mapl3g_griddedcomponentdriver->ESMF module~mapl3g_componentdriver mapl3g_ComponentDriver module~mapl3g_griddedcomponentdriver->module~mapl3g_componentdriver module~mapl3g_componentdrivervector mapl3g_ComponentDriverVector module~mapl3g_griddedcomponentdriver->module~mapl3g_componentdrivervector module~mapl3g_multistate mapl3g_MultiState module~mapl3g_griddedcomponentdriver->module~mapl3g_multistate module~mapl_errorhandlingmod mapl_ErrorHandlingMod module~mapl3g_griddedcomponentdriver->module~mapl_errorhandlingmod module~mapl_keywordenforcer mapl_KeywordEnforcer module~mapl3g_griddedcomponentdriver->module~mapl_keywordenforcer module~mapl3g_componentdriver->ESMF module~mapl3g_componentdriver->module~mapl3g_multistate module~mapl3g_componentdriver->module~mapl_errorhandlingmod module~maplshared MaplShared module~mapl3g_componentdriver->module~maplshared module~mapl3g_componentdrivervector->module~mapl3g_componentdriver module~mapl3g_multistate->ESMF module~mapl3g_multistate->module~mapl_keywordenforcer module~mapl3g_esmf_utilities mapl3g_ESMF_Utilities module~mapl3g_multistate->module~mapl3g_esmf_utilities module~mapl_errorhandling mapl_ErrorHandling module~mapl3g_multistate->module~mapl_errorhandling module~mapl_errorhandlingmod->module~mapl_errorhandling module~mapl3g_esmf_utilities->ESMF module~mapl3g_esmf_utilities->module~mapl_errorhandling module~mapl_throwmod MAPL_ThrowMod module~mapl_errorhandling->module~mapl_throwmod mpi mpi module~mapl_errorhandling->mpi module~maplshared->module~mapl_errorhandlingmod module~mapl_abstractcommsplittermod MAPL_AbstractCommSplitterMod module~maplshared->module~mapl_abstractcommsplittermod module~mapl_commgroupdescriptionmod MAPL_CommGroupDescriptionMod module~maplshared->module~mapl_commgroupdescriptionmod module~mapl_constants MAPL_Constants module~maplshared->module~mapl_constants module~mapl_dirpathmod MAPL_DirPathMod module~maplshared->module~mapl_dirpathmod module~mapl_downbitmod MAPL_DownbitMod module~maplshared->module~mapl_downbitmod module~mapl_dso_utilities mapl_DSO_Utilities module~maplshared->module~mapl_dso_utilities module~mapl_filesystemutilities mapl_FileSystemUtilities module~maplshared->module~mapl_filesystemutilities module~mapl_hashmod MAPL_HashMod module~maplshared->module~mapl_hashmod module~mapl_interpmod MAPL_InterpMod module~maplshared->module~mapl_interpmod module~mapl_keywordenforcermod mapl_KeywordEnforcerMod module~maplshared->module~mapl_keywordenforcermod module~mapl_loadbalancemod MAPL_LoadBalanceMod module~maplshared->module~mapl_loadbalancemod module~mapl_minmaxmod MAPL_MinMaxMod module~maplshared->module~mapl_minmaxmod module~mapl_rangemod MAPL_RangeMod module~maplshared->module~mapl_rangemod module~mapl_shmemmod MAPL_ShmemMod module~maplshared->module~mapl_shmemmod module~mapl_simplecommsplittermod MAPL_SimpleCommSplitterMod module~maplshared->module~mapl_simplecommsplittermod module~mapl_sleepmod MAPL_SleepMod module~maplshared->module~mapl_sleepmod module~mapl_sortmod MAPL_SortMod module~maplshared->module~mapl_sortmod module~mapl_splitcommunicatormod MAPL_SplitCommunicatorMod module~maplshared->module~mapl_splitcommunicatormod module~mapl_string MAPL_String module~maplshared->module~mapl_string module~maplshared->module~mapl_throwmod

Arguments

Type IntentOptional Attributes Name
type(MultiState), intent(out) :: states
type(OuterMetaComponent), intent(in), target :: outer_meta
character(len=*), intent(in) :: child_name
integer, intent(out) :: rc

Calls

proc~~get_child_user_states~~CallsGraph proc~get_child_user_states get_child_user_states interface~get_outer_meta get_outer_meta proc~get_child_user_states->interface~get_outer_meta none~get_child~2 OuterMetaComponent%get_child proc~get_child_user_states->none~get_child~2 none~get_gridcomp~3 GriddedComponentDriver%get_gridcomp proc~get_child_user_states->none~get_gridcomp~3 none~get_states GriddedComponentDriver%get_states proc~get_child_user_states->none~get_states none~get_user_gc_driver OuterMetaComponent%get_user_gc_driver proc~get_child_user_states->none~get_user_gc_driver

Called by

proc~~get_child_user_states~~CalledByGraph proc~get_child_user_states get_child_user_states proc~test_child_outer_items_created test_child_outer_items_created proc~test_child_outer_items_created->proc~get_child_user_states

Source Code

   subroutine get_child_user_states(states, outer_meta, child_name, rc)
      use mapl3g_GriddedComponentDriver
      type(MultiState), intent(out) :: states
      type(OuterMetaComponent), target, intent(in) :: outer_meta
      character(*), intent(in) :: child_name
      integer, intent(out) :: rc

      integer :: status
      type(GriddedComponentDriver) :: child_comp
      type(ESMF_GridComp) :: child_gc
      type(OuterMetaComponent), pointer :: child_meta
      type(GriddedComponentDriver), pointer :: user_component

      rc = +1
      child_comp = outer_meta%get_child(child_name, rc=status)
      if (status /= 0) then
         rc = +2
         return
      end if
         
      child_gc = child_comp%get_gridcomp()
      child_meta => get_outer_meta(child_gc, rc=status)
      user_component => child_meta%get_user_gc_driver()
      states = user_component%get_states()

      rc = 0

   end subroutine get_child_user_states