&ocean_isopycnal_nml: grounding-stability controls for the
Lagrangian vertical coordinate.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(config_t), | intent(in), | target | :: | cfg | ||
| type(nml_schema_t), | intent(inout) | :: | schema |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(nml_group_t), | private | :: | g | ||||
| logical, | private, | pointer | :: | pl | |||
| real(kind=wp), | private, | pointer | :: | pr |
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