ice_evp_params_from_config Function

public 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.

Arguments

Type IntentOptional 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

Return Value type(ice_evp_params_t)


Called by

proc~~ice_evp_params_from_config~~CalledByGraph proc~ice_evp_params_from_config ice_evp_params_from_config proc~engine_setup engine_setup proc~engine_setup->proc~ice_evp_params_from_config proc~complete_ocean_create complete_ocean_create proc~complete_ocean_create->proc~engine_setup proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~engine_setup proc~driver_validate driver_validate proc~driver_validate->proc~engine_setup proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean proc~rdb_ocean_create_finalize rdb_ocean_create_finalize proc~rdb_ocean_create_finalize->proc~complete_ocean_create proc~rdb_ocean_create_from_string rdb_ocean_create_from_string proc~rdb_ocean_create_from_string->proc~complete_ocean_create

Source Code

   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