Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecate 0-layer thermodynamics in the CICE driver #732

Merged
merged 5 commits into from
Jul 31, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
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
13 changes: 12 additions & 1 deletion cicecore/cicedynB/general/ice_init.F90
Original file line number Diff line number Diff line change
Expand Up @@ -416,7 +416,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 @@ -1861,8 +1865,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 @@ -2440,8 +2446,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 @@ -2459,7 +2467,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 @@ -2497,6 +2507,7 @@ subroutine init_state
file=__FILE__, line=__LINE__)
endif

#ifdef UNDEPRECATE_0LAYER
if (.not.heat_capacity) then

if (nilyr > 1) then
Expand All @@ -2514,7 +2525,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 @@ -145,7 +145,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 @@ -12,7 +12,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 @@ -18,7 +18,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 @@ -43,7 +43,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 @@ -23,7 +23,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 @@ -388,14 +388,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