setup_ Subroutine

public subroutine setup_(var_name, geom, vgrid, registry, rc)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: var_name
type(ESMF_Geom), intent(in) :: geom
type(ModelVerticalGrid), intent(in) :: vgrid
type(StateRegistry), intent(inout) :: registry
integer, intent(out), optional :: rc

Calls

proc~~setup_~~CallsGraph proc~setup_ setup_ create create proc~setup_->create interface~mapl_assert MAPL_Assert proc~setup_->interface~mapl_assert none~add_primary_spec StateRegistry%add_primary_spec proc~setup_->none~add_primary_spec none~get_primary_extension StateRegistry%get_primary_extension proc~setup_->none~get_primary_extension none~get_spec~2 StateItemExtension%get_spec proc~setup_->none~get_spec~2 none~set_active StateItemSpec%set_active proc~setup_->none~set_active proc~make_itemspec make_itemSpec proc~setup_->proc~make_itemspec proc~mapl_return MAPL_Return proc~setup_->proc~mapl_return proc~mapl_verify MAPL_Verify proc~setup_->proc~mapl_verify set_geometry set_geometry proc~setup_->set_geometry none~add_primary_spec->proc~mapl_return none~add_primary_spec->proc~mapl_verify none~add_family StateRegistry%add_family none~add_primary_spec->none~add_family none~back~55 StateItemExtensionVector%back none~add_primary_spec->none~back~55 none~push_back~54 StateItemExtensionVector%push_back none~add_primary_spec->none~push_back~54 none~get_primary_extension->interface~mapl_assert none~get_primary_extension->proc~mapl_return none~get_primary_extension->proc~mapl_verify none~at~242 VirtualPtFamilyMap%at none~get_primary_extension->none~at~242 none~get_primary ExtensionFamily%get_primary none~get_primary_extension->none~get_primary none~has_virtual_pt StateRegistry%has_virtual_pt none~get_primary_extension->none~has_virtual_pt proc~make_itemspec->interface~mapl_assert proc~make_itemspec->none~set_active proc~make_itemspec->proc~mapl_return proc~make_itemspec->proc~mapl_verify none~make_dependencies VariableSpec%make_dependencies proc~make_itemspec->none~make_dependencies none~set_dependencies StateItemSpec%set_dependencies proc~make_itemspec->none~set_dependencies none~set_raw_dependencies StateItemSpec%set_raw_dependencies proc~make_itemspec->none~set_raw_dependencies 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 none~add_family->proc~mapl_return none~add_family->proc~mapl_verify none~add_family->none~at~242 none~add_virtual_pt StateRegistry%add_virtual_pt none~add_family->none~add_virtual_pt none~at_rc~12 VirtualPtFamilyMap%at_rc none~at~242->none~at_rc~12 none~get_primary->interface~mapl_assert none~get_primary->proc~mapl_return none~front~10 StateItemExtensionPtrVector%front none~get_primary->none~front~10 none~make_dependencies->proc~mapl_return none~push_back~64 ActualPtVector%push_back none~make_dependencies->none~push_back~64 of of none~make_dependencies->of none~capacity~319 StateItemExtensionVector%capacity none~push_back~54->none~capacity~319 none~resize~108 StateItemExtensionVector%resize none~push_back~54->none~resize~108

Called by

proc~~setup_~~CalledByGraph proc~setup_ setup_ proc~setup~4 setup proc~setup~4->proc~setup_ proc~test_created_fields_have_num_levels test_created_fields_have_num_levels proc~test_created_fields_have_num_levels->proc~setup~4 proc~test_get_coordinate_field_change_units_center test_get_coordinate_field_change_units_center proc~test_get_coordinate_field_change_units_center->proc~setup~4 proc~test_get_coordinate_field_change_units_edge test_get_coordinate_field_change_units_edge proc~test_get_coordinate_field_change_units_edge->proc~setup~4 proc~test_get_coordinate_field_simple test_get_coordinate_field_simple proc~test_get_coordinate_field_simple->proc~setup~4

Source Code

   subroutine setup_(var_name, geom, vgrid, registry, rc)
      character(*), intent(in) :: var_name
      type(ESMF_Geom), intent(in) :: geom
      type(ModelVerticalGrid), intent(in) :: vgrid
      type(StateRegistry), intent(inout) :: registry
      integer, optional, intent(out) :: rc

      type(VerticalDimSpec) :: vertical_dim_spec
      type(VariableSpec) :: var_spec
      class(StateItemSpec), allocatable :: fld_spec
      type(VirtualConnectionPt) :: v_pt
      type(StateItemExtension), pointer :: extension
      class(StateItemSpec), pointer :: spec
      integer :: status

      select case(var_name)
      case("PLE")
         vertical_dim_spec = VERTICAL_DIM_EDGE
      case("PL")
         vertical_dim_spec = VERTICAL_DIM_CENTER
      case default
         _FAIL("unsupported var name " // var_name)
      end select

      var_spec = VariableSpec(&
           short_name=var_name, &
           state_intent=ESMF_STATEINTENT_EXPORT, &
           standard_name="air_pressure", &
           units="hPa", &
           vertical_dim_spec=vertical_dim_spec, &
           default_value=3.)
      allocate(fld_spec, source=make_itemSpec(var_spec, r, rc=status)); _VERIFY(status)
      call fld_spec%set_geometry(geom=geom, vertical_grid=vgrid, _RC)

      v_pt = VirtualConnectionPt(state_intent="export", short_name=var_name)
      call registry%add_primary_spec(v_pt, fld_spec)
      extension => registry%get_primary_extension(v_pt, _RC)
      spec => extension%get_spec()
      call spec%set_active()
      call spec%create(_RC)
      call spec%allocate(_RC)

      _RETURN(_SUCCESS)
   end subroutine setup_