ice_evp_params_t Derived Type

type, public :: ice_evp_params_t

EVP physical + numerical parameters (SIS2 SIS_C_dyn_CS subset). Passed intent(in) into the core; every scalar is hoisted to a local before the substep loop (no derived-type deref inside a do concurrent). Defaults + meanings mirror the &ocean_ice_nml block in rdb_config.F90 (the config is the authoritative knob set; keep the two in sync).


Inherited by

type~~ice_evp_params_t~~InheritedByGraph type~ice_evp_params_t ice_evp_params_t type~ocean_engine_t ocean_engine_t type~ocean_engine_t->type~ice_evp_params_t evp_params type~ocean_handle_t ocean_handle_t type~ocean_handle_t->type~ocean_engine_t engine

Components

Type Visibility Attributes Name Initial
logical, public :: a_face_stress = .false.

PR 62: weight the atmospheric stress AND the ice-ocean drag in the momentum balance by the face ice concentration a_u (&ocean_ice_nml a_face_stress). Default off ⇒ byte-identical.

real(kind=wp), public :: c0 = 20.0_wp

SIS2 ICE_STRENGTH_CSTAR — ice-strength exponent constant [nondim].

real(kind=wp), public :: cdw = 3.24e-3_wp

SIS2 ICE_CDRAG_WATER — ice-ocean drag coefficient [nondim].

real(kind=wp), public :: cfl_trunc = 0.0_wp

PR 36: SIS2 CFL_TRUNCATE (SIS2 default 0.5). Transport-CFL ceiling on the final ice velocity; 0 disables the clip. Type-level default is the bit-identity mechanism for every test call site that does not set it.

logical, public :: cfl_trunc_dyn_its = .false.

PR 36: SIS2 CFL_TRUNC_DYN_ITS (SIS2 default .false., matches). Also clip at the bottom of every EVP subcycle.

real(kind=wp), public :: del_sh_min_scale = 2.0_wp

SIS2 ICE_DEL_SH_MIN_SCALE — viscosity-floor scale [nondim].

real(kind=wp), public :: ec = 2.0_wp

SIS2 ICE_YIELD_ELLIPTICITY — yield-curve axis ratio [nondim]. 0 => cavitating-fluid rheology (str_t/str_s stay exactly 0).

integer, public :: evp_sub_steps = 432

SIS2 NSTEPS_DYN — EVP subcycles per slow (outer) step.

real(kind=wp), public :: p0 = 2.75e4_wp

SIS2 ICE_STRENGTH_PSTAR — ice-strength pressure constant [Pa].

logical, public :: project_ci = .false.

PR 36: SIS2 PROJECT_ICE_CONCENTRATION (SIS2 default .true.). Project ci forward along the current divergence each subcycle and recompute pres_mice from it.

real(kind=wp), public :: rho_ocean = 1030.0_wp

SIS2 RHO_OCEAN — ice-drag reference density [kg/m^3]. Deliberately independent of the ocean’s rho0 (usually 1035).

real(kind=wp), public :: tdamp = -0.2_wp

SIS2 ICE_TDAMP_ELASTIC — elastic damping timescale selector. > 0 => seconds; == 0 => max(0.2*dt_slow, 3*dt); < 0 => the special case max(|tdamp|*dt_slow, 3*dt) (i.e. |tdamp| is a fraction of the slow step). Sign-free — no positivity guard.


Source Code

   type :: ice_evp_params_t
      !! EVP physical + numerical parameters (SIS2 `SIS_C_dyn_CS` subset).
      !! Passed `intent(in)` into the core; every scalar is hoisted to a
      !! local before the substep loop (no derived-type deref inside a
      !! `do concurrent`).  Defaults + meanings mirror the `&ocean_ice_nml`
      !! block in `rdb_config.F90` (the config is the authoritative knob
      !! set; keep the two in sync).
      real(wp) :: p0 = 2.75e4_wp
         !! SIS2 `ICE_STRENGTH_PSTAR` — ice-strength pressure constant [Pa].
      real(wp) :: c0 = 20.0_wp
         !! SIS2 `ICE_STRENGTH_CSTAR` — ice-strength exponent constant [nondim].
      real(wp) :: ec = 2.0_wp
         !! SIS2 `ICE_YIELD_ELLIPTICITY` — yield-curve axis ratio [nondim].
         !! 0 => cavitating-fluid rheology (`str_t`/`str_s` stay exactly 0).
      real(wp) :: cdw = 3.24e-3_wp
         !! SIS2 `ICE_CDRAG_WATER` — ice-ocean drag coefficient [nondim].
      real(wp) :: rho_ocean = 1030.0_wp
         !! SIS2 `RHO_OCEAN` — ice-drag reference density [kg/m^3].
         !! Deliberately independent of the ocean's `rho0` (usually 1035).
      real(wp) :: del_sh_min_scale = 2.0_wp
         !! SIS2 `ICE_DEL_SH_MIN_SCALE` — viscosity-floor scale [nondim].
      real(wp) :: tdamp = -0.2_wp
         !! SIS2 `ICE_TDAMP_ELASTIC` — elastic damping timescale selector.
         !! `> 0` => seconds; `== 0` => `max(0.2*dt_slow, 3*dt)`; `< 0` =>
         !! the special case `max(|tdamp|*dt_slow, 3*dt)` (i.e. `|tdamp|` is
         !! a fraction of the slow step). Sign-free — no positivity guard.
      integer :: evp_sub_steps = 432
         !! SIS2 `NSTEPS_DYN` — EVP subcycles per slow (outer) step.
      logical :: a_face_stress = .false.
         !! PR 62: weight the atmospheric stress AND the ice-ocean drag in
         !! the momentum balance by the face ice concentration `a_u`
         !! (`&ocean_ice_nml a_face_stress`). Default off ⇒ byte-identical.
      real(wp) :: cfl_trunc = 0.0_wp
         !! PR 36: SIS2 `CFL_TRUNCATE` (SIS2 default 0.5). Transport-CFL
         !! ceiling on the final ice velocity; `0` disables the clip.
         !! Type-level default is the bit-identity mechanism for every
         !! test call site that does not set it.
      logical :: cfl_trunc_dyn_its = .false.
         !! PR 36: SIS2 `CFL_TRUNC_DYN_ITS` (SIS2 default `.false.`, matches).
         !! Also clip at the bottom of every EVP subcycle.
      logical :: project_ci = .false.
         !! PR 36: SIS2 `PROJECT_ICE_CONCENTRATION` (SIS2 default `.true.`).
         !! Project `ci` forward along the current divergence each subcycle
         !! and recompute `pres_mice` from it.
   end type ice_evp_params_t