setup_field Subroutine

public subroutine setup_field(field, geom, typekind, units, with_ungridded)

Arguments

Type IntentOptional Attributes Name
type(ESMF_Field), intent(out) :: field
type(ESMF_Geom), intent(in) :: geom
type(ESMF_TypeKind_Flag), intent(in) :: typekind
character(len=*), intent(in) :: units
logical, intent(in), optional :: with_ungridded

Calls

proc~~setup_field~~CallsGraph proc~setup_field setup_field esmf_fieldemptycreate esmf_fieldemptycreate proc~setup_field->esmf_fieldemptycreate esmf_fieldemptyset esmf_fieldemptyset proc~setup_field->esmf_fieldemptyset interface~fieldset FieldSet proc~setup_field->interface~fieldset interface~mapl_fieldemptycomplete MAPL_FieldEmptyComplete proc~setup_field->interface~mapl_fieldemptycomplete none~add_dim UngriddedDims%add_dim proc~setup_field->none~add_dim none~get_bounds~2 UngriddedDims%get_bounds proc~setup_field->none~get_bounds~2 interface~mapl_assert MAPL_Assert none~add_dim->interface~mapl_assert none~get_name~6 UngriddedDim%get_name none~add_dim->none~get_name~6 none~get_num_ungridded UngriddedDims%get_num_ungridded none~add_dim->none~get_num_ungridded none~push_back~79 UngriddedDimVector%push_back none~add_dim->none~push_back~79 proc~mapl_return MAPL_Return none~add_dim->proc~mapl_return none~get_bounds UngriddedDim%get_bounds none~get_bounds~2->none~get_bounds none~get_bounds~2->none~get_num_ungridded none~of~305 UngriddedDimVector%of none~get_bounds~2->none~of~305 none~of_size_kind~25 UngriddedDimVector%of_size_kind none~of~305->none~of_size_kind~25 none~capacity~469 UngriddedDimVector%capacity none~push_back~79->none~capacity~469 none~resize~158 UngriddedDimVector%resize none~push_back~79->none~resize~158 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 none~resize_size_kind~25 UngriddedDimVector%resize_size_kind none~resize~158->none~resize_size_kind~25

Called by

proc~~setup_field~~CalledByGraph proc~setup_field setup_field proc~setup_bundle setup_bundle proc~setup_bundle->proc~setup_field proc~test_change_geom~2 test_change_geom proc~test_change_geom~2->proc~setup_bundle proc~test_change_typekind~2 test_change_typekind proc~test_change_typekind~2->proc~setup_bundle proc~test_change_units test_change_units proc~test_change_units->proc~setup_bundle proc~test_change_weights test_change_weights proc~test_change_weights->proc~setup_bundle proc~test_change_weights_with_ungridded test_change_weights_with_ungridded proc~test_change_weights_with_ungridded->proc~setup_bundle proc~test_create_fields test_create_fields proc~test_create_fields->proc~setup_bundle proc~test_create_fields_with_ungridded test_create_fields_with_ungridded proc~test_create_fields_with_ungridded->proc~setup_bundle proc~test_same_geom test_same_geom proc~test_same_geom->proc~setup_bundle

Source Code

   subroutine setup_field(field, geom, typekind, units, with_ungridded)
      type(ESMF_Field), intent(out) :: field
      type(ESMF_Geom), intent(in) :: geom
      type(ESMF_TypeKind_Flag), intent(in) :: typekind
      character(len=*), intent(in) :: units
      logical, optional, intent(in) :: with_ungridded

      type(UngriddedDims) :: ungridded_dims
      type(LU_Bound), allocatable :: bounds(:)
      type(VerticalStaggerLoc) :: vert_staggerloc
      integer, allocatable :: num_levels

      ungridded_dims = UngriddedDims()
      bounds = ungridded_dims%get_bounds()

      vert_staggerloc = VERTICAL_STAGGER_NONE
      if (present(with_ungridded)) then
         if (with_ungridded) then
            vert_staggerloc = VERTICAL_STAGGER_CENTER
            num_levels = NUM_LEVELS_VGRID
            call ungridded_dims%add_dim(UngriddedDim(NUM_RADII, "radius", 'nm'))
         end if
      end if
      field = ESMF_FieldEmptyCreate()
      call ESMF_FieldEmptySet(field, geom=geom)
      call MAPL_FieldEmptyComplete(field, typekind=typekind, &
           num_levels=num_levels, vert_staggerloc=vert_staggerloc, &
           ungridded_dims=ungridded_dims, &
           units=units)
      call FieldSet(field, FILL_VALUE)

   end subroutine setup_field