register_nonhydrostatic Subroutine

private subroutine register_nonhydrostatic(cfg, schema)

&nonhydrostatic_nml: NH/multilayer switches, CG-Poisson controls, PP81 vmix, KPP knobs, k-eps, Smagorinsky, BPG, mode split. keps_stability and bpg_method are enums.

Arguments

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

Calls

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

Source Code

   subroutine register_nonhydrostatic(cfg, schema)
      !! `&nonhydrostatic_nml`: NH/multilayer switches, CG-Poisson
      !! controls, PP81 vmix, KPP knobs, k-eps, Smagorinsky, BPG, mode
      !! split.  `keps_stability` and `bpg_method` are enums.
      type(config_t), target, intent(in) :: cfg
      type(nml_schema_t), intent(inout) :: schema
      type(nml_group_t) :: g
      real(wp), pointer :: pr
      integer, pointer :: pi
      logical, pointer :: pl
      character(len=:), pointer :: ps

      g%name = "nonhydrostatic"
      g%doc = "Non-hydrostatic / multilayer: CG-Poisson, PP81/KPP/k-eps vmix, Smagorinsky, BPG, mode split."
      pi => cfg%nz_layers
      call g%add(nml_int("nz_layers", pi, "Number of sigma layers", min=1))
      pl => cfg%use_multilayer
      call g%add(nml_logical("use_multilayer", pl, "Enable coupled hydrostatic vertical layers"))
      pr => cfg%rho_0
      call g%add(nml_real("rho_0", pr, "Reference density for EOS", units="kg/m^3"))
      pr => cfg%kpp_ri_crit
      call g%add(nml_real("kpp_ri_crit", pr, "Critical bulk Richardson number for KPP BL-depth"))
      pr => cfg%kpp_cs_nonlocal
      call g%add(nml_real("kpp_cs_nonlocal", pr, "KPP non-local (counter-gradient) transport coefficient"))
      pr => cfg%kpp_c_vt2
      call g%add(nml_real("kpp_c_vt2", pr, "KPP V_t^2 unresolved-turbulence coefficient (0 = off)"))
      pr => cfg%hdiff_kappa
      call g%add(nml_real("hdiff_kappa", pr, &
                          "Horizontal tracer diffusion coefficient (COASTAL path only; "// &
                          "ocean's along-coordinate equivalent is &ocean_hdiff_nml kappa_h)", &
                          units="m^2/s", &
                          dead_on_ocean_path="coastal-legacy, per this key's own doc string: "// &
                          "stored onto tracer_t%hdiff_kappa via register_default_tracers but "// &
                          "hdiff_kappa is read nowhere on the ocean path. Use "// &
                          "&ocean_hdiff_nml kappa_h."))
      call schema%add_group(g)
   end subroutine register_nonhydrostatic