register_ocean_isopycnal Subroutine

private subroutine register_ocean_isopycnal(cfg, schema)

&ocean_isopycnal_nml: grounding-stability controls for the Lagrangian vertical coordinate.

Arguments

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

Calls

proc~~register_ocean_isopycnal~~CallsGraph proc~register_ocean_isopycnal register_ocean_isopycnal proc~group_add nml_group_t%group_add proc~register_ocean_isopycnal->proc~group_add proc~nml_logical nml_logical proc~register_ocean_isopycnal->proc~nml_logical proc~nml_real nml_real proc~register_ocean_isopycnal->proc~nml_real proc~schema_add_group nml_schema_t%schema_add_group proc~register_ocean_isopycnal->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_isopycnal~~CalledByGraph proc~register_ocean_isopycnal register_ocean_isopycnal proc~build_rdb_schema build_rdb_schema proc~build_rdb_schema->proc~register_ocean_isopycnal 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

Source Code

   subroutine register_ocean_isopycnal(cfg, schema)
      !! `&ocean_isopycnal_nml`: grounding-stability controls for the
      !! Lagrangian vertical coordinate.
      type(config_t), target, intent(in) :: cfg
      type(nml_schema_t), intent(inout) :: schema
      type(nml_group_t) :: g
      real(wp), pointer :: pr
      logical, pointer :: pl

      g%name = "ocean_isopycnal"
      g%doc = "Lagrangian grounding-stability controls."
      pr => cfg%ocean%isopycnal%angstrom_h
      call g%add(nml_real("angstrom_h", pr, &
                          "Minimum-thickness floor on the Lagrangian continuity h-update (MOM6 Angstrom_H analogue)", &
                          units="m"))
      pl => cfg%ocean%isopycnal%reset_vanished_u
      call g%add(nml_logical("reset_vanished_u", pl, &
                             "Zero face velocity when layer vanished on both adjacent cells"))
      pl => cfg%ocean%isopycnal%cfl_ignore_vanished
      call g%add(nml_logical("cfl_ignore_vanished", pl, &
                             "Exclude vanished layers from MaxCFL / panic / CFL truncation"))
      pl => cfg%ocean%isopycnal%pgf_skip_nonoverlap
      call g%add(nml_logical("pgf_skip_nonoverlap", pl, &
                             "Zero the face PGF where a grounded layer's z-extents do not "// &
                             "overlap across the face AND the layer is at the floor "// &
                             "(<= 2*max(angstrom_h, H_VANISHED)) on one side "// &
                             "(VCOORD_LAGRANGIAN only, mont / "// &
                             "fv_lite / fv_wright / fv_mom6; default ON — kills the spurious "// &
                             "at-rest grounded-layer pressure gradient)"))
      pl => cfg%ocean%isopycnal%conservative_floor
      call g%add(nml_logical("conservative_floor", pl, &
                             "Conservative min-thickness borrow (replaces the injecting angstrom_h floor)"))
      pl => cfg%ocean%isopycnal%check_h_positive
      call g%add(nml_logical("check_h_positive", pl, &
                             "DEBUG: abort on the first negative h_layer, naming the stage + (i,j,k)"))
      call schema%add_group(g)
   end subroutine register_ocean_isopycnal