Small constructor — build once from &ocean_ice_nml config.
11 args (> the style guide’s 6): pre-existing deviation, sanctioned
by the derived-type-grouping escape hatch (FORTRAN_STYLE.md
§Public procedure arguments) — the whole point of ice_evp_params_t
is to be this constructor’s one-shot host. Positional (not
optional): a knob threaded to the config/schema but not to this
constructor reads from the namelist, validates, and does nothing —
the dead-knob class the audit indicts. The compiler catches the
omission; optional would not.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | p0 | |||
| real(kind=wp), | intent(in) | :: | c0 | |||
| real(kind=wp), | intent(in) | :: | ec | |||
| real(kind=wp), | intent(in) | :: | cdw | |||
| real(kind=wp), | intent(in) | :: | rho_ocean | |||
| real(kind=wp), | intent(in) | :: | del_sh_min_scale | |||
| real(kind=wp), | intent(in) | :: | tdamp | |||
| integer, | intent(in) | :: | evp_sub_steps | |||
| logical, | intent(in) | :: | a_face_stress | |||
| real(kind=wp), | intent(in) | :: | cfl_trunc | |||
| logical, | intent(in) | :: | cfl_trunc_dyn_its | |||
| logical, | intent(in) | :: | project_ci |
pure function ice_evp_params_from_config(p0, c0, ec, cdw, rho_ocean, & del_sh_min_scale, tdamp, & evp_sub_steps, a_face_stress, & cfl_trunc, cfl_trunc_dyn_its, project_ci) result(par) !! Small constructor — build once from `&ocean_ice_nml` config. !! 11 args (> the style guide's 6): pre-existing deviation, sanctioned !! by the derived-type-grouping escape hatch (`FORTRAN_STYLE.md` !! §Public procedure arguments) — the whole point of `ice_evp_params_t` !! is to be this constructor's one-shot host. Positional (not !! `optional`): a knob threaded to the config/schema but not to this !! constructor reads from the namelist, validates, and does nothing — !! the dead-knob class the audit indicts. The compiler catches the !! omission; `optional` would not. real(wp), intent(in) :: p0, c0, ec, cdw, rho_ocean, del_sh_min_scale, tdamp integer, intent(in) :: evp_sub_steps logical, intent(in) :: a_face_stress real(wp), intent(in) :: cfl_trunc logical, intent(in) :: cfl_trunc_dyn_its, project_ci type(ice_evp_params_t) :: par par%p0 = p0 par%c0 = c0 par%ec = ec par%cdw = cdw par%rho_ocean = rho_ocean par%del_sh_min_scale = del_sh_min_scale par%tdamp = tdamp par%evp_sub_steps = evp_sub_steps par%a_face_stress = a_face_stress par%cfl_trunc = cfl_trunc par%cfl_trunc_dyn_its = cfl_trunc_dyn_its par%project_ci = project_ci end function ice_evp_params_from_config