Type | Intent | Optional | 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 |
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