register_ocean_zinit Subroutine

private subroutine register_ocean_zinit(cfg, schema)

&ocean_zinit_nml: z-level T/S initial-condition overlay (A2). Default enable = .false. is a no-op (analytical IC unchanged).

Arguments

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

Calls

proc~~register_ocean_zinit~~CallsGraph proc~register_ocean_zinit register_ocean_zinit proc~group_add nml_group_t%group_add proc~register_ocean_zinit->proc~group_add proc~nml_enum nml_enum proc~register_ocean_zinit->proc~nml_enum proc~nml_logical nml_logical proc~register_ocean_zinit->proc~nml_logical proc~nml_real nml_real proc~register_ocean_zinit->proc~nml_real proc~nml_string nml_string proc~register_ocean_zinit->proc~nml_string proc~schema_add_group nml_schema_t%schema_add_group proc~register_ocean_zinit->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_zinit~~CalledByGraph proc~register_ocean_zinit register_ocean_zinit proc~build_rdb_schema build_rdb_schema proc~build_rdb_schema->proc~register_ocean_zinit 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
logical, private, pointer :: pl
real(kind=wp), private, pointer :: pr
character(len=:), private, pointer :: ps

Source Code

   subroutine register_ocean_zinit(cfg, schema)
      !! `&ocean_zinit_nml`: z-level T/S initial-condition overlay (A2).
      !! Default `enable = .false.` is a no-op (analytical IC unchanged).
      type(config_t), target, intent(in) :: cfg
      type(nml_schema_t), intent(inout) :: schema
      type(nml_group_t) :: g
      logical, pointer :: pl
      real(wp), pointer :: pr
      character(len=:), pointer :: ps

      g%name = "ocean_zinit"
      g%doc = "Z-level T/S initial-condition overlay (A2)."
      pl => cfg%ocean%zinit%enable
      call g%add(nml_logical("enable", pl, &
                             "Master switch (default off; requires RDB_ENABLE_NETCDF=ON)"))
      ps => cfg%ocean%zinit%source
      call g%add(nml_enum("source", ps, &
                          "Where the T(z)/S(z) profile comes from: a "// &
                          "pre-regridded NetCDF, or the analytic affine "// &
                          "lin_* profile (no file)", &
                          allowed=[character(len=15) :: "file", "linear"]))
      ps => cfg%ocean%zinit%file
      call g%add(nml_string("file", ps, "Path to the model-grid T/S NetCDF"))
      ps => cfg%ocean%zinit%t_var
      call g%add(nml_string("t_var", ps, &
                            "Temperature variable-name override (blank tries temp/T/temperature)"))
      ps => cfg%ocean%zinit%s_var
      call g%add(nml_string("s_var", ps, &
                            "Salinity variable-name override (blank tries salt/S/salinity)"))
      ps => cfg%ocean%zinit%z_var
      call g%add(nml_string("z_var", ps, &
                            "Source-axis variable-name override (blank tries z_src/z/depth/lev)"))
      pr => cfg%ocean%zinit%land_fill_t
      call g%add(nml_real("land_fill_t", pr, "Fallback temperature for dry columns", units="degC"))
      pr => cfg%ocean%zinit%land_fill_s
      call g%add(nml_real("land_fill_s", pr, "Fallback salinity for dry columns", units="PSU"))
      pr => cfg%ocean%zinit%lin_t_ref
      call g%add(nml_real("lin_t_ref", pr, &
                          "source='linear': temperature at the z = 0 datum", units="degC"))
      pr => cfg%ocean%zinit%lin_dt_dz
      call g%add(nml_real("lin_dt_dz", pr, &
                          "source='linear': dT/dz, z positive UP (stable > 0)", &
                          units="degC/m"))
      pr => cfg%ocean%zinit%lin_s_ref
      call g%add(nml_real("lin_s_ref", pr, &
                          "source='linear': salinity at the z = 0 datum", units="PSU"))
      pr => cfg%ocean%zinit%lin_ds_dz
      call g%add(nml_real("lin_ds_dz", pr, &
                          "source='linear': dS/dz, z positive UP (stable < 0)", &
                          units="PSU/m"))
      call schema%add_group(g)
   end subroutine register_ocean_zinit