register_ocean_ice_ic Subroutine

private subroutine register_ocean_ice_ic(cfg, schema)

&ocean_ice_ic_nml: sea-ice ANALYTIC initial-condition path (PR 24). Default conc_config="zero" ⇒ byte-identical. "file" is deliberately NOT in the allowed= list — file-backed ICs are PR-14 (v1.1), out of scope here.

Arguments

Type IntentOptional Attributes Name
type(config_t), intent(in), target :: cfg
type(nml_schema_t), intent(inout) :: schema

Calls

proc~~register_ocean_ice_ic~~CallsGraph proc~register_ocean_ice_ic register_ocean_ice_ic proc~group_add nml_group_t%group_add proc~register_ocean_ice_ic->proc~group_add proc~nml_enum nml_enum proc~register_ocean_ice_ic->proc~nml_enum proc~nml_real nml_real proc~register_ocean_ice_ic->proc~nml_real proc~schema_add_group nml_schema_t%schema_add_group proc~register_ocean_ice_ic->proc~schema_add_group error error proc~group_add->error proc~lower lower proc~group_add->proc~lower proc~schema_add_group->error proc~schema_add_group->proc~lower proc~move_group move_group proc~schema_add_group->proc~move_group

Called by

proc~~register_ocean_ice_ic~~CalledByGraph proc~register_ocean_ice_ic register_ocean_ice_ic proc~build_rdb_schema build_rdb_schema proc~build_rdb_schema->proc~register_ocean_ice_ic proc~read_config_from_string_impl read_config_from_string_impl proc~read_config_from_string_impl->proc~build_rdb_schema proc~read_config_impl read_config_impl proc~read_config_impl->proc~build_rdb_schema proc~read_config read_config proc~read_config->proc~read_config_impl proc~read_config_from_string read_config_from_string proc~read_config_from_string->proc~read_config_from_string_impl proc~build_pending_handle build_pending_handle proc~build_pending_handle->proc~read_config_from_string proc~rdb_ocean_create_from_string rdb_ocean_create_from_string proc~rdb_ocean_create_from_string->proc~build_pending_handle proc~rdb_ocean_create_pending rdb_ocean_create_pending proc~rdb_ocean_create_pending->proc~build_pending_handle

Variables

Type Visibility Attributes Name Initial
type(nml_group_t), private :: g
real(kind=wp), private, pointer :: pr
character(len=:), private, pointer :: ps

Source Code

   subroutine register_ocean_ice_ic(cfg, schema)
      !! `&ocean_ice_ic_nml`: sea-ice ANALYTIC initial-condition path (PR
      !! 24). Default `conc_config="zero"` ⇒ byte-identical. `"file"` is
      !! deliberately NOT in the `allowed=` list — file-backed ICs are
      !! PR-14 (v1.1), out of scope here.
      type(config_t), target, intent(in) :: cfg
      type(nml_schema_t), intent(inout) :: schema
      type(nml_group_t) :: g
      character(len=:), pointer :: ps
      real(wp), pointer :: pr

      g%name = "ocean_ice_ic"
      g%doc = "Sea-ice analytic initial-condition path (PR 24)."
      ps => cfg%ocean%ice_ic%conc_config
      call g%add(nml_enum("conc_config", ps, &
                          "Sea-ice initial concentration configuration", &
                          allowed=[character(len=12) :: "zero", "uniform", "latitudes"]))
      pr => cfg%ocean%ice_ic%conc
      call g%add(nml_real("conc", pr, &
                          "Uniform-mode concentration ('uniform' only)", &
                          min=0.0_wp, max=1.0_wp))
      pr => cfg%ocean%ice_ic%h_ice
      call g%add(nml_real("h_ice", pr, &
                          "Ice thickness where seeded (SIS2 ICE_INIT_MASS as a thickness)", &
                          units="m", min=0.0_wp))
      pr => cfg%ocean%ice_ic%h_snow
      call g%add(nml_real("h_snow", pr, &
                          "Snow thickness where seeded (SIS2 SNOW_INIT_MASS as a thickness)", &
                          units="m", min=0.0_wp))
      pr => cfg%ocean%ice_ic%t_ice
      call g%add(nml_real("t_ice", pr, &
                          "Ice/snow temperature fed through the exact enthalpy inversion "// &
                          "(SIS2 ICE_TEMPERATURE_IC)", units="degC"))
      pr => cfg%ocean%ice_ic%s_ice
      call g%add(nml_real("s_ice", pr, &
                          "Ice bulk salinity (SIS2 ICE_SALINITY_IC)", &
                          units="PSU", min=0.0_wp))
      pr => cfg%ocean%ice_ic%arctic_edge
      call g%add(nml_real("arctic_edge", pr, &
                          "'latitudes' Arctic ice edge (SIS2 ARCTIC_ICE_EDGE_IC)", &
                          units="degrees_north", min=-91.0_wp, max=91.0_wp))
      pr => cfg%ocean%ice_ic%antarctic_edge
      call g%add(nml_real("antarctic_edge", pr, &
                          "'latitudes' Antarctic ice edge (SIS2 ANTARCTIC_ICE_EDGE_IC)", &
                          units="degrees_north", min=-91.0_wp, max=91.0_wp))
      call schema%add_group(g)
   end subroutine register_ocean_ice_ic