create_output_bundle Function

public function create_output_bundle(hconfig, import_state, rc) result(bundle)

Arguments

Type IntentOptional Attributes Name
type(ESMF_HConfig), intent(in) :: hconfig
type(ESMF_State), intent(in) :: import_state
integer, intent(out), optional :: rc

Return Value type(ESMF_FieldBundle)


Calls

proc~~create_output_bundle~~CallsGraph proc~create_output_bundle create_output_bundle ESMF_HConfigIterLoop ESMF_HConfigIterLoop proc~create_output_bundle->ESMF_HConfigIterLoop ESMF_InfoGetFromHost ESMF_InfoGetFromHost proc~create_output_bundle->ESMF_InfoGetFromHost ESMF_InfoSet ESMF_InfoSet proc~create_output_bundle->ESMF_InfoSet esmf_fieldbundleadd esmf_fieldbundleadd proc~create_output_bundle->esmf_fieldbundleadd esmf_fieldbundlecreate esmf_fieldbundlecreate proc~create_output_bundle->esmf_fieldbundlecreate esmf_fieldcreate esmf_fieldcreate proc~create_output_bundle->esmf_fieldcreate esmf_hconfigcreateat esmf_hconfigcreateat proc~create_output_bundle->esmf_hconfigcreateat esmf_hconfigiterbegin esmf_hconfigiterbegin proc~create_output_bundle->esmf_hconfigiterbegin esmf_hconfigiterend esmf_hconfigiterend proc~create_output_bundle->esmf_hconfigiterend esmf_stateget esmf_stateget proc~create_output_bundle->esmf_stateget proc~mapl_return MAPL_Return proc~create_output_bundle->proc~mapl_return proc~mapl_verify MAPL_Verify proc~create_output_bundle->proc~mapl_verify 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~~create_output_bundle~~CalledByGraph proc~create_output_bundle create_output_bundle proc~test_create_output_bundle test_create_output_bundle proc~test_create_output_bundle->proc~create_output_bundle

Source Code

   function create_output_bundle(hconfig, import_state, rc) result(bundle)
      type(ESMF_FieldBundle) :: bundle
      type(ESMF_HConfig), intent(in) :: hconfig
      type(ESMF_State), intent(in) :: import_state
      integer, optional, intent(out) :: rc

      integer :: status
      type(ESMF_HConfigIter) :: iter, iter_begin, iter_end
      type(ESMF_HConfig) :: var_list
      character(len=:), allocatable :: alias, short_name
      type(ESMF_Field) :: field, new_field
      type(ESMF_Info) :: info, new_info
      type(ESMF_StateItem_Flag) :: itemType

      var_list = ESMF_HConfigCreateAt(hconfig, keystring=VAR_LIST_KEY, _RC)
      iter_begin = ESMF_HConfigIterBegin(var_list,_RC)
      iter_end = ESMF_HConfigIterEnd(var_list,_RC)
      iter = iter_begin

      bundle = ESMF_FieldBundleCreate(_RC)
      do while (ESMF_HConfigIterLoop(iter,iter_begin,iter_end,rc=status))
         call parse_item(iter, alias, short_name, _RC)
         call ESMF_StateGet(import_state, short_name, field, _RC)
         new_field = ESMF_FieldCreate(field, dataCopyFlag=ESMF_DATACOPY_REFERENCE, name=alias,  _RC)
         call ESMF_InfoGetFromHost(field, info, _RC)
         call ESMF_InfoGetFromHost(new_field, new_info, _RC)
         call ESMF_InfoSet(new_info, key="", value=info, _RC)
         call ESMF_FieldBundleAdd(bundle, [new_field], _RC)
      end do

      _RETURN(_SUCCESS)
   end function create_output_bundle