Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions cicecore/cicedyn/dynamics/ice_dyn_shared.F90
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ module ice_dyn_shared
! shared_mem_1d = 1d without mpi call and refactorization to 1d

real (kind=dbl_kind), public :: &
a_min , & ! minimum ice area concentration to activate dynamics
m_min , & ! minimum ice mass to activate dynamics (kg/m^2)
elasticDamp ! coefficient for calculating the parameter E, elastic damping parameter

! other EVP parameters
Expand All @@ -64,9 +66,7 @@ module ice_dyn_shared
real (kind=dbl_kind), parameter, public :: &
u0 = 5e-5_dbl_kind, & ! residual velocity for seabed stress (m/s)
cosw = c1 , & ! cos(ocean turning angle) ! turning angle = 0
sinw = c0 , & ! sin(ocean turning angle) ! turning angle = 0
a_min = p001 , & ! minimum ice area
m_min = p01 ! minimum ice mass (kg/m^2)
sinw = c0 ! sin(ocean turning angle) ! turning angle = 0

real (kind=dbl_kind), public :: &
revp , & ! 0 for classic EVP, 1 for revised EVP
Expand Down
15 changes: 11 additions & 4 deletions cicecore/cicedyn/general/ice_init.F90
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ module ice_init

use ice_kinds_mod
use ice_communicate, only: my_task, master_task, ice_barrier
use ice_constants, only: c0, c1, c2, c3, c5, c12, p01, p2, p3, p5, p75, p166, &
cm_to_m
use ice_constants, only: c0, c1, c2, c3, c5, c12, &
p001, p01, p2, p3, p5, p75, p166, cm_to_m
use ice_exit, only: abort_ice
use ice_fileunits, only: nu_nml, nu_diag, nml_filename, diag_type, &
ice_stdout, get_fileunit, release_fileunit, bfbflag, flush_fileunit, &
Expand Down Expand Up @@ -123,7 +123,7 @@ subroutine input_data
e_yieldcurve, e_plasticpot, coriolis, &
ssh_stress, kridge, brlx, arlx, &
deltaminEVP, deltaminVP, capping, &
elasticDamp
elasticDamp, a_min, m_min
use ice_dyn_vp, only: &
maxits_nonlin, precond, dim_fgmres, dim_pgmres, maxits_fgmres, &
maxits_pgmres, monitor_nonlin, monitor_fgmres, &
Expand Down Expand Up @@ -255,7 +255,8 @@ subroutine input_data
ortho_type, seabed_stress, seabed_stress_method, &
k1, k2, alphab, threshold_hw, &
deltaminEVP, deltaminVP, capping_method, &
Cf, Pstar, Cstar, Ktens
Cf, Pstar, Cstar, Ktens, &
a_min, m_min

namelist /shortwave_nml/ &
shortwave, albedo_type, snw_ssp_table, &
Expand Down Expand Up @@ -413,6 +414,8 @@ subroutine input_data
kstrength = 1 ! 1 = Rothrock 75 strength, 0 = Hibler 79
Pstar = 2.75e4_dbl_kind ! constant in Hibler strength formula (kstrength = 0)
Cstar = 20._dbl_kind ! constant in Hibler strength formula (kstrength = 0)
a_min = p001 ! minimum ice area concentration to activate dynamics
m_min = p01 ! minimum ice mass to activate dynamics (kg/m^2)
krdg_partic = 1 ! 1 = new participation, 0 = Thorndike et al 75
krdg_redist = 1 ! 1 = new redistribution, 0 = Hibler 80
mu_rdg = 3 ! e-folding scale of ridged ice, krdg_partic=1 (m^0.5)
Expand Down Expand Up @@ -1016,6 +1019,8 @@ subroutine input_data
call broadcast_scalar(kstrength, master_task)
call broadcast_scalar(Pstar, master_task)
call broadcast_scalar(Cstar, master_task)
call broadcast_scalar(a_min, master_task)
call broadcast_scalar(m_min, master_task)
call broadcast_scalar(krdg_partic, master_task)
call broadcast_scalar(krdg_redist, master_task)
call broadcast_scalar(mu_rdg, master_task)
Expand Down Expand Up @@ -2033,6 +2038,8 @@ subroutine input_data
tmpstr2 = ' : unknown value'
endif
write(nu_diag,1020) ' kdyn = ', kdyn,trim(tmpstr2)
write(nu_diag,1003) ' a_min = ', a_min,' : min ice area concentration to activate dynamics'
write(nu_diag,1003) ' m_min = ', m_min,' : min ice mass to activate dynamics (kg/m2)'
if (kdyn >= 1) then
if (kdyn == 1 .or. kdyn == 2) then
if (revised_evp) then
Expand Down
2 changes: 2 additions & 0 deletions configuration/scripts/ice_in
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,8 @@
reltol_pgmres = 1e-6
algo_nonlin = 'picard'
use_mean_vrel = .true.
a_min = 0.001d0
m_min = 0.01d0
/

&shortwave_nml
Expand Down
4 changes: 4 additions & 0 deletions doc/source/science_guide/sg_dynamics.rst
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,10 @@ Note that the VP solver has not yet been tested on the ``tx1`` grid.

The EVP, rEVP, EAP and VP approaches are all available with the B grid. However, at the moment, only the EVP and rEVP schemes are possible with the C grid.

The dynamics are solved for all gridcells with area concentration greater than ``a_min`` and mass
greater than ``m_min``. These parameters are respectively 0.001 and 0.01 by default but can be set in
namelist. Lower values can improve the solution but also lead to instabilities.

Here we summarize the equations and
direct the reader to the above references for details.

Expand Down
2 changes: 2 additions & 0 deletions doc/source/user_guide/ug_case_settings.rst
Original file line number Diff line number Diff line change
Expand Up @@ -485,6 +485,7 @@ dynamics_nml
"", "``picard``", "use picard algorithm", ""
"``alphab``", "real", ":math:`\alpha_{b}` factor in :cite:`Lemieux16`", "20.0"
"``arlx``", "real", "revised_evp value", "300.0"
"``a_min``", "real", "min ice area concentration to activate dynamics", "0.001"
"``brlx``", "real", "revised_evp value", "300.0"
"``capping_method``", "``max``", "max capping in :cite:`Hibler79`", "max"
"", "``sum``", "sum capping in :cite:`Kreyscher00`", ""
Expand Down Expand Up @@ -527,6 +528,7 @@ dynamics_nml
"``monitor_nonlin``", "logical", "write velocity norm at each nonlinear iteration", "``.false.``"
"``monitor_pgmres``", "logical", "write velocity norm at each PGMRES iteration", "``.false.``"
"``mu_rdg``", "real", "e-folding scale of ridged ice for ``krdg_partic`` = 1 in m^0.5", "3.0"
"``m_min``", "real", "min ice mass to activate dynamics (kg/m\ :math:`^2`)", "0.01"
"``ndte``", "integer", "number of EVP subcycles", "120"
"``ortho_type``", "``cgs``", "Use classical Gram-Shchmidt in FGMRES solver", "``mgs``"
"", "``mgs``", "Use modified Gram-Shchmidt in FGMRES solver", ""
Expand Down