&ocean_continuity_nml: continuity-PPM positivity controls.
| 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_continuity(cfg, schema) !! `&ocean_continuity_nml`: continuity-PPM positivity controls. 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_continuity" g%doc = "Continuity-PPM positivity controls." pr => cfg%ocean%continuity%h_min call g%add(nml_real("h_min", pr, "PPM positivity-limiter thickness floor", units="m")) pl => cfg%ocean%continuity%ppm_limit_pos call g%add(nml_logical("ppm_limit_pos", pl, "Positivity-preserving PPM face limiter (MOM6 PPM_limit_pos)")) pl => cfg%ocean%continuity%vol_cfl call g%add(nml_logical("vol_cfl", pl, "Swept-volume continuity-PPM face thickness (MOM6 vol_CFL)")) pl => cfg%ocean%continuity%positive_definite call g%add(nml_logical("positive_definite", pl, & "Positive-definite split continuity (h>=h_lim, zero mass created; "// & "reconstruction floor + per-donor outflux limiter)")) pl => cfg%ocean%continuity%renorm_consistent_flux call g%add(nml_logical("renorm_consistent_flux", pl, & "uhbt renormalisation: continuous flux for a layer whose "// & "upwind donor flips under the correction (MOM6 "// & "zonal_flux_adjust); fixes the wrong-sign transport at "// & "thickness jumps")) call schema%add_group(g) end subroutine register_ocean_continuity