test_create_output_bundle Subroutine

public subroutine test_create_output_bundle()

Arguments

None

Calls

proc~~test_create_output_bundle~~CallsGraph proc~test_create_output_bundle test_create_output_bundle ESMF_GeomDestroy ESMF_GeomDestroy proc~test_create_output_bundle->ESMF_GeomDestroy ESMF_GeomGet ESMF_GeomGet proc~test_create_output_bundle->ESMF_GeomGet ESMF_GridDestroy ESMF_GridDestroy proc~test_create_output_bundle->ESMF_GridDestroy ESMF_HConfigCreate ESMF_HConfigCreate proc~test_create_output_bundle->ESMF_HConfigCreate ESMF_HConfigDestroy ESMF_HConfigDestroy proc~test_create_output_bundle->ESMF_HConfigDestroy anyexceptions anyexceptions proc~test_create_output_bundle->anyexceptions assert_that assert_that proc~test_create_output_bundle->assert_that esmf_fieldbundledestroy esmf_fieldbundledestroy proc~test_create_output_bundle->esmf_fieldbundledestroy esmf_fieldbundleget esmf_fieldbundleget proc~test_create_output_bundle->esmf_fieldbundleget esmf_fieldcreate esmf_fieldcreate proc~test_create_output_bundle->esmf_fieldcreate esmf_fielddestroy esmf_fielddestroy proc~test_create_output_bundle->esmf_fielddestroy esmf_statecreate esmf_statecreate proc~test_create_output_bundle->esmf_statecreate esmf_statedestroy esmf_statedestroy proc~test_create_output_bundle->esmf_statedestroy esmf_stateget esmf_stateget proc~test_create_output_bundle->esmf_stateget proc~create_output_bundle create_output_bundle proc~test_create_output_bundle->proc~create_output_bundle proc~make_geom~5 make_geom proc~test_create_output_bundle->proc~make_geom~5 sourcelocation sourcelocation proc~test_create_output_bundle->sourcelocation true true proc~test_create_output_bundle->true proc~create_output_bundle->esmf_fieldcreate proc~create_output_bundle->esmf_stateget 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_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 proc~mapl_return MAPL_Return proc~create_output_bundle->proc~mapl_return proc~mapl_verify MAPL_Verify proc~create_output_bundle->proc~mapl_verify proc~make_geom~5->ESMF_HConfigDestroy proc~make_geom~5->esmf_hconfigcreateat get_geom get_geom proc~make_geom~5->get_geom get_geom_manager get_geom_manager proc~make_geom~5->get_geom_manager get_mapl_geom get_mapl_geom proc~make_geom~5->get_mapl_geom proc~make_geom~5->proc~mapl_return proc~make_geom~5->proc~mapl_verify

Source Code

   subroutine test_create_output_bundle()
      type(ESMF_HConfig) :: hconfig_geom, hconfig_hist
      type(ESMF_Geom) :: geom
      type(ESMF_Grid) :: grid
      integer :: rank,fieldCount
      integer :: status
      logical :: found
      type(ESMF_State) :: state, substate
      type(ESMF_FieldBundle) :: bundle
      type(ESMF_Field) :: field

      hconfig_geom = ESMF_HConfigCreate(content= &
         "{geom: {class: latlon, im_world: 14, jm_world: 13, pole: PC, " // &
         "dateline: DC, nx: 1, ny: 1}}", _RC)
      geom = make_geom(hconfig_geom, _RC)
      call ESMF_GeomGet(geom, grid=grid, _RC)

      field = ESMF_FieldCreate(grid, ESMF_TYPEKIND_R4, name="E_1", _RC)
      substate = ESMF_StateCreate(fieldList=[field], name= "DYN", _RC)
      state = ESMF_Statecreate(nestedStateList=[substate],_RC)

      hconfig_hist = ESMF_HConfigCreate(content= &
         "{var_list: {E1: {expr: DYN.E_1}}}", _RC)
 
      bundle = create_output_bundle(hconfig_hist, state, _RC)
      call ESMF_FieldBundleGet(bundle, fieldCount=fieldCount, _RC)
      @assert_that(fieldCount, is(1))
      call ESMF_FieldBundleGet(bundle, "E1", isPresent=found, _RC)
      @assert_that(found, is(true()))
      
      call ESMF_HConfigDestroy(hconfig_geom, _RC)
      call ESMF_HConfigDestroy(hconfig_hist, _RC)

      call ESMF_FieldBundleGet(bundle, "E1", field=field, _RC)
      call ESMF_FieldDestroy(field, nogarbage=.true., _RC)
      call ESMF_FieldBundleDestroy(bundle, nogarbage=.true. ,_RC)

      call ESMF_StateGet(state, "DYN/E_1", field, _RC)
      call ESMF_FieldDestroy(field, nogarbage=.true., _RC)
      call ESMF_StateDestroy(state, nogarbage=.true., _RC)

      call ESMF_GridDestroy(grid, nogarbage=.true., _RC)
      call ESMF_GeomDestroy(geom, _RC)

   end subroutine test_create_output_bundle