&ocean_gm (Gent-McWilliams thickness diffusion, capability [2]).
| 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_gm(cfg, schema) !! `&ocean_gm` (Gent-McWilliams thickness diffusion, capability [2]). 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 g%name = "ocean_gm" g%doc = "Gent-McWilliams thickness diffusion (eddy bolus transport)." pl => cfg%ocean%gm%enable call g%add(nml_logical("enable", pl, & "Master switch (requires &ocean_slopes_nml enable; default off ⇒ no-op)")) pr => cfg%ocean%gm%khth call g%add(nml_real("khth", pr, & "Thickness diffusivity KhTh (constant-fill; production 1e2-1e3)", & units="m^2/s")) pr => cfg%ocean%gm%khth_max_cfl call g%add(nml_real("khth_max_cfl", pr, & "Fraction of the diffusive CFL the face KH may use", units="nondim")) pr => cfg%ocean%gm%khth_slope_max call g%add(nml_real("khth_slope_max", pr, & "Slope magnitude above which the safe-streamfunction blend takes over", & units="nondim")) call schema%add_group(g) end subroutine register_gm