Skip to content

Commit

Permalink
Deprecate 0-layer thermodynamics in the CICE driver (CICE-Consortium#732
Browse files Browse the repository at this point in the history
)

* initial 0-layer thermo deprecation

* capitalization matters for cpps

* set_nml.boxadv needs thermo turned on

* deprecate old ridging participation and redistribution functions

* Revert "deprecate old ridging participation and redistribution functions"

This reverts commit 95c289a.
  • Loading branch information
eclare108213 authored and dabail10 committed Oct 4, 2022
1 parent fe8938d commit bdbd2f1
Show file tree
Hide file tree
Showing 10 changed files with 35 additions and 12 deletions.
13 changes: 12 additions & 1 deletion cicecore/cicedynB/general/ice_init.F90
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,11 @@ subroutine input_data
conserv_check = .false. ! tracer conservation check
shortwave = 'ccsm3' ! 'ccsm3' or 'dEdd' (delta-Eddington)
albedo_type = 'ccsm3' ! 'ccsm3' or 'constant'
#ifdef UNDEPRECATE_0LAYER
ktherm = 1 ! -1 = OFF, 0 = 0-layer, 1 = BL99, 2 = mushy thermo
#else
ktherm = 1 ! -1 = OFF, 1 = BL99, 2 = mushy thermo
#endif
conduct = 'bubbly' ! 'MU71' or 'bubbly' (Pringle et al 2007)
coriolis = 'latitude' ! latitude dependent, or 'constant'
ssh_stress = 'geostrophic' ! 'geostrophic' or 'coupled'
Expand Down Expand Up @@ -1897,8 +1901,10 @@ subroutine input_data
tmpstr2 = ' : Bitz and Lipscomb 1999 thermo'
elseif (ktherm == 2) then
tmpstr2 = ' : mushy-layer thermo'
#ifdef UNDEPRECATE_0LAYER
elseif (ktherm == 0) then
tmpstr2 = ' : zero-layer thermo'
#endif
elseif (ktherm < 0) then
tmpstr2 = ' : Thermodynamics disabled'
else
Expand Down Expand Up @@ -2488,8 +2494,10 @@ subroutine init_state
it , & ! tracer index
iblk ! block index

#ifdef UNDEPRECATE_0LAYER
logical (kind=log_kind) :: &
heat_capacity ! from icepack
#endif

integer (kind=int_kind) :: ntrcr
logical (kind=log_kind) :: tr_iage, tr_FY, tr_lvl, tr_iso, tr_aero
Expand All @@ -2511,7 +2519,9 @@ subroutine init_state

!-----------------------------------------------------------------

#ifdef UNDEPRECATE_0LAYER
call icepack_query_parameters(heat_capacity_out=heat_capacity)
#endif
call icepack_query_tracer_sizes(ntrcr_out=ntrcr)
call icepack_query_tracer_flags(tr_iage_out=tr_iage, tr_FY_out=tr_FY, &
tr_lvl_out=tr_lvl, tr_iso_out=tr_iso, tr_aero_out=tr_aero, &
Expand Down Expand Up @@ -2553,6 +2563,7 @@ subroutine init_state
file=__FILE__, line=__LINE__)
endif

#ifdef UNDEPRECATE_0LAYER
if (.not.heat_capacity) then

if (nilyr > 1) then
Expand All @@ -2570,7 +2581,7 @@ subroutine init_state
endif

endif ! heat_capacity = F

#endif
endif ! my_task

!-----------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion cicecore/shared/ice_init_column.F90
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ subroutine init_thermo_vertical
character(len=*), parameter :: subname='(init_thermo_vertical)'

!-----------------------------------------------------------------
! initialize heat_capacity, l_brine, and salinity profile
! initialize
!-----------------------------------------------------------------

call icepack_query_parameters(depressT_out=depressT)
Expand Down
4 changes: 2 additions & 2 deletions configuration/scripts/machines/env.badger_intel
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ setenv ICE_MACHINE_MACHINFO "Penguin Intel Xeon Broadwell"
setenv ICE_MACHINE_ENVNAME intel
setenv ICE_MACHINE_ENVINFO "(Note: can vary) ifort 19.0.4.243 20190416, openmpi/2.1.2, netcdf4.4.0"
setenv ICE_MACHINE_MAKE gmake
setenv ICE_MACHINE_WKDIR /net/scratch3/$user/CICE_RUNS
setenv ICE_MACHINE_WKDIR /net/scratch4/$user/CICE_RUNS
setenv ICE_MACHINE_INPUTDATA /usr/projects/climate/eclare/DATA/Consortium
setenv ICE_MACHINE_BASELINE /net/scratch3/$user/CICE_BASELINE
setenv ICE_MACHINE_BASELINE /net/scratch4/$user/CICE_BASELINE
setenv ICE_MACHINE_SUBMIT "sbatch "
#setenv ICE_MACHINE_ACCT e3sm
setenv ICE_MACHINE_ACCT climatehilat
Expand Down
2 changes: 1 addition & 1 deletion configuration/scripts/options/set_nml.alt01
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ tr_pond_lvl = .false.
tr_aero = .false.
kcatbound = 1
kitd = 0
ktherm = 0
ktherm = 1
conduct = 'bubbly'
kdyn = 1
seabed_stress = .true.
Expand Down
2 changes: 1 addition & 1 deletion configuration/scripts/options/set_nml.boxadv
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ tr_pond_topo = .false.
tr_pond_lvl = .false.
tr_aero = .false.
kitd = 1
ktherm = 0
ktherm = 1
kdyn = 2
kstrength = 0
krdg_partic = 0
Expand Down
2 changes: 1 addition & 1 deletion configuration/scripts/options/set_nml.boxnodyn
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ tr_pond_topo = .false.
tr_pond_lvl = .false.
tr_aero = .false.
kitd = 0
ktherm = 0
ktherm = 1
kdyn = 1
revised_evp = .false.
kstrength = 1
Expand Down
2 changes: 1 addition & 1 deletion configuration/scripts/options/set_nml.boxrestore
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ tr_pond_topo = .false.
tr_pond_lvl = .false.
tr_aero = .false.
kitd = 1
ktherm = 0
ktherm = 1
kdyn = 1
revised_evp = .true.
kstrength = 0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,12 @@ program convert_restarts
logical (kind=log_kind), parameter :: &
oceanmixed_ice = .true., & ! if true, read/write ocean mixed layer fields
heat_capacity = .true., & ! if true, ice has nonzero heat capacity
#ifdef UNDEPRECATE_0LAYER
! if false, use zero-layer thermodynamics
#else
! heat_capacity = .false. (zero-layer thermodynamics)
! has been deprecated in CICE and Icepack
#endif
diag = .true. ! write min/max diagnostics for fields

! file names
Expand Down
10 changes: 7 additions & 3 deletions doc/source/cice_index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,6 @@ either Celsius or Kelvin units).
"Gstar", "piecewise-linear ridging participation function parameter", "0.15"
"**H**", "", ""
"halo_info", "information for updating ghost cells", ""
"heat_capacity", "if true, use salinity-dependent thermodynamics", "T"
"hfrazilmin", "minimum thickness of new frazil ice", "0.05 m"
"hi_min", "minimum ice thickness for thinnest ice category", "0.01 m"
"hi_ssl", "ice surface scattering layer thickness", "0.05 m"
Expand Down Expand Up @@ -388,10 +387,9 @@ either Celsius or Kelvin units).
"krdg_partic", "ridging participation function", "1"
"krdg_redist", "ridging redistribution function", "1"
"krgdn", "mean ridge thickness per thickness of ridging ice", ""
"kseaice", "thermal conductivity of ice for zero-layer thermodynamics", "2.0 W/m/deg"
"ksno", "thermal conductivity of snow", "0.30 W/m/deg"
"kstrength", "ice stength formulation (1= :cite:`Rothrock75`, 0 = :cite:`Hibler79`)", "1"
"ktherm", "thermodynamic formulation (0 = zero-layer, 1 = :cite:`Bitz99`, 2 = mushy)", ""
"ktherm", "thermodynamic formulation (-1 = off, 1 = :cite:`Bitz99`, 2 = mushy)", ""
"**L**", "", ""
"l_brine", "flag for brine pocket effects", ""
"l_fixed_area", "flag for prescribing remapping fluxes", ""
Expand Down Expand Up @@ -774,3 +772,9 @@ either Celsius or Kelvin units).
"zref", "reference height for stability", "10. m"
"zTrf", "reference height for :math:`T_{ref}`, :math:`Q_{ref}`, :math:`U_{ref}`", "2. m"
"zvir", "gas constant (water vapor)/gas constant (air) - 1", "0.606"

..
ktherm=0 has been deprecated
"heat_capacity", "if true, use salinity-dependent thermodynamics", "T"
"kseaice", "thermal conductivity of ice for zero-layer thermodynamics", "2.0 W/m/deg"
"ktherm", "thermodynamic formulation (0 = zero-layer, 1 = :cite:`Bitz99`, 2 = mushy)", ""
5 changes: 4 additions & 1 deletion doc/source/user_guide/ug_case_settings.rst
Original file line number Diff line number Diff line change
Expand Up @@ -391,14 +391,17 @@ thermo_nml
"", "``1``", "linear remapping ITD approximation", ""
"``ksno``", "real", "snow thermal conductivity", "0.3"
"``ktherm``", "``-1``", "thermodynamic model disabled", "1"
"", "``0``", "zero-layer thermodynamic model", ""
"", "``1``", "Bitz and Lipscomb thermodynamic model", ""
"", "``2``", "mushy-layer thermodynamic model", ""
"``phi_c_slow_mode``", ":math:`0<\phi_c < 1`", "critical liquid fraction", "0.05"
"``phi_i_mushy``", ":math:`0<\phi_i < 1`", "solid fraction at lower boundary", "0.85"
"``Rac_rapid_mode``", "real", "critical Rayleigh number", "10.0"
"", "", "", ""

..
ktherm=0 has been deprecated
"", "``0``", "zero-layer thermodynamic model", ""
.. _dynamics_nml:

dynamics_nml
Expand Down

0 comments on commit bdbd2f1

Please sign in to comment.