Skip to content

Commit

Permalink
Moved floediam and hfrazilmin to icepack_parameters (#342)
Browse files Browse the repository at this point in the history
* Moved floediam and hfrazilmin to icepack_parameters

Added floediam and hfrazilmin to the thermo namelist in the icepack driver
Settable via a call to icepack_parameters
Defaults left unchanged
Added variables to icepack_in

* fix multiple declaration of floeshape in icepack

* update floeshape value to 0.66
  • Loading branch information
apcraig authored Nov 24, 2020
1 parent 782a1b7 commit 77c523e
Show file tree
Hide file tree
Showing 9 changed files with 37 additions and 16 deletions.
21 changes: 17 additions & 4 deletions columnphysics/icepack_parameters.F90
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ module icepack_parameters
!-----------------------------------------------------------------------

real (kind=dbl_kind), public :: &
hfrazilmin = 0.05_dbl_kind ,&! min thickness of new frazil ice (m)
cp_ice = 2106._dbl_kind ,&! specific heat of fresh ice (J/kg/K)
cp_ocn = 4218._dbl_kind ,&! specific heat of ocn (J/kg/K)
! freshwater value needed for enthalpy
Expand Down Expand Up @@ -132,7 +133,6 @@ module icepack_parameters
phi_c_slow_mode = 0.05_dbl_kind,&! critical liquid fraction porosity cutoff
phi_i_mushy = 0.85_dbl_kind ! liquid fraction of congelation ice


integer (kind=int_kind), public :: &
ktherm = 1 ! type of thermodynamics
! 0 = 0-layer approximation
Expand Down Expand Up @@ -278,7 +278,10 @@ module icepack_parameters
nfreq = 25 ! number of frequencies

real (kind=dbl_kind), public :: &
floeshape = 0.666_dbl_kind ! constant from Steele (unitless)
floeshape = 0.66_dbl_kind ! constant from Steele (unitless)

real (kind=dbl_kind), public :: &
floediam = 300.0_dbl_kind ! effective floe diameter for lateral melt (m)

logical (kind=log_kind), public :: &
wave_spec = .false. ! if true, use wave forcing
Expand Down Expand Up @@ -379,7 +382,7 @@ module icepack_parameters
subroutine icepack_init_parameters( &
puny_in, bignum_in, pi_in, secday_in, &
rhos_in, rhoi_in, rhow_in, cp_air_in, emissivity_in, &
cp_ice_in, cp_ocn_in, &
cp_ice_in, cp_ocn_in, hfrazilmin_in, floediam_in, &
depressT_in, dragio_in, albocn_in, gravit_in, viscosity_dyn_in, &
Tocnfrz_in, rhofresh_in, zvir_in, vonkar_in, cp_wv_in, &
stefan_boltzmann_in, ice_ref_salinity_in, &
Expand Down Expand Up @@ -441,6 +444,8 @@ subroutine icepack_init_parameters( &
!-----------------------------------------------------------------------

real (kind=dbl_kind), intent(in), optional :: &
floediam_in, & ! effective floe diameter for lateral melt (m)
hfrazilmin_in, & ! min thickness of new frazil ice (m)
cp_ice_in, & ! specific heat of fresh ice (J/kg/K)
cp_ocn_in, & ! specific heat of ocn (J/kg/K)
depressT_in, & ! Tf:brine salinity ratio (C/ppt)
Expand Down Expand Up @@ -716,6 +721,8 @@ subroutine icepack_init_parameters( &
if (present(rhow_in) ) rhow = rhow_in
if (present(cp_air_in) ) cp_air = cp_air_in
if (present(emissivity_in) ) emissivity = emissivity_in
if (present(floediam_in) ) floediam = floediam_in
if (present(hfrazilmin_in) ) hfrazilmin = hfrazilmin_in
if (present(cp_ice_in) ) cp_ice = cp_ice_in
if (present(cp_ocn_in) ) cp_ocn = cp_ocn_in
if (present(depressT_in) ) depressT = depressT_in
Expand Down Expand Up @@ -877,7 +884,7 @@ subroutine icepack_query_parameters( &
p2_out, p4_out, p5_out, p6_out, p05_out, p15_out, p25_out, p75_out, &
p333_out, p666_out, spval_const_out, pih_out, piq_out, pi2_out, &
rhos_out, rhoi_out, rhow_out, cp_air_out, emissivity_out, &
cp_ice_out, cp_ocn_out, &
cp_ice_out, cp_ocn_out, hfrazilmin_out, floediam_out, &
depressT_out, dragio_out, albocn_out, gravit_out, viscosity_dyn_out, &
Tocnfrz_out, rhofresh_out, zvir_out, vonkar_out, cp_wv_out, &
stefan_boltzmann_out, ice_ref_salinity_out, &
Expand Down Expand Up @@ -948,6 +955,8 @@ subroutine icepack_query_parameters( &
!-----------------------------------------------------------------------

real (kind=dbl_kind), intent(out), optional :: &
floediam_out, & ! effective floe diameter for lateral melt (m)
hfrazilmin_out, & ! min thickness of new frazil ice (m)
cp_ice_out, & ! specific heat of fresh ice (J/kg/K)
cp_ocn_out, & ! specific heat of ocn (J/kg/K)
depressT_out, & ! Tf:brine salinity ratio (C/ppt)
Expand Down Expand Up @@ -1264,6 +1273,8 @@ subroutine icepack_query_parameters( &
if (present(rhow_out) ) rhow_out = rhow
if (present(cp_air_out) ) cp_air_out = cp_air
if (present(emissivity_out) ) emissivity_out = emissivity
if (present(floediam_out) ) floediam_out = floediam
if (present(hfrazilmin_out) ) hfrazilmin_out = hfrazilmin
if (present(cp_ice_out) ) cp_ice_out = cp_ice
if (present(cp_ocn_out) ) cp_ocn_out = cp_ocn
if (present(depressT_out) ) depressT_out = depressT
Expand Down Expand Up @@ -1435,6 +1446,8 @@ subroutine icepack_write_parameters(iounit)
write(iounit,*) " rhow = ",rhow
write(iounit,*) " cp_air = ",cp_air
write(iounit,*) " emissivity = ",emissivity
write(iounit,*) " floediam = ",floediam
write(iounit,*) " hfrazilmin = ",hfrazilmin
write(iounit,*) " cp_ice = ",cp_ice
write(iounit,*) " cp_ocn = ",cp_ocn
write(iounit,*) " depressT = ",depressT
Expand Down
3 changes: 1 addition & 2 deletions columnphysics/icepack_therm_itd.F90
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ module icepack_therm_itd
use icepack_parameters, only: phi_init, dsin0_frazil, hs_ssl, salt_loss
use icepack_parameters, only: rhosi, conserv_check
use icepack_parameters, only: kitd, ktherm, heat_capacity
use icepack_parameters, only: z_tracers, solve_zsal
use icepack_parameters, only: z_tracers, solve_zsal, hfrazilmin

use icepack_tracers, only: ntrcr, nbtrcr
use icepack_tracers, only: nt_qice, nt_qsno, nt_fbri, nt_sice
Expand All @@ -47,7 +47,6 @@ module icepack_therm_itd
use icepack_itd, only: column_sum, column_conservation_check
use icepack_isotope, only: isoice_alpha, isotope_frac_method
use icepack_mushy_physics, only: liquidus_temperature_mush, enthalpy_mush
use icepack_therm_shared, only: hfrazilmin
use icepack_therm_shared, only: hi_min
use icepack_zbgc, only: add_new_ice_bgc
use icepack_zbgc, only: lateral_melt_bgc
Expand Down
3 changes: 0 additions & 3 deletions columnphysics/icepack_therm_shared.F90
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,6 @@ module icepack_therm_shared
logical (kind=log_kind), public :: &
l_brine ! if true, treat brine pocket effects

real (kind=dbl_kind), parameter, public :: &
hfrazilmin = 0.05_dbl_kind ! min thickness of new frazil ice (m)

real (kind=dbl_kind), public :: &
hi_min ! minimum ice thickness allowed (m)

Expand Down
4 changes: 1 addition & 3 deletions columnphysics/icepack_therm_vertical.F90
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ module icepack_therm_vertical
use icepack_parameters, only: ktherm, heat_capacity, calc_Tsfc
use icepack_parameters, only: ustar_min, fbot_xfer_type, formdrag, calc_strair
use icepack_parameters, only: rfracmin, rfracmax, pndaspect, dpscale, frzpnd
use icepack_parameters, only: phi_i_mushy
use icepack_parameters, only: phi_i_mushy, floeshape, floediam

use icepack_tracers, only: tr_iage, tr_FY, tr_aero, tr_pond, tr_fsd, tr_iso
use icepack_tracers, only: tr_pond_cesm, tr_pond_lvl, tr_pond_topo
Expand Down Expand Up @@ -556,8 +556,6 @@ subroutine frzmlt_bottom_lateral (dt, ncat, &
! Parameters for lateral melting

real (kind=dbl_kind), parameter :: &
floediam = 300.0_dbl_kind, & ! effective floe diameter (m)
floeshape = 0.66_dbl_kind , & ! constant from Steele (unitless)
m1 = 1.6e-6_dbl_kind , & ! constant from Maykut & Perovich
! (m/s/deg^(-m2))
m2 = 1.36_dbl_kind ! constant from Maykut & Perovich
Expand Down
9 changes: 7 additions & 2 deletions configuration/driver/icedrv_init.F90
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ subroutine input_data
ahmax, R_ice, R_pnd, R_snw, dT_mlt, rsnw_mlt, ksno, &
mu_rdg, hs0, dpscale, rfracmin, rfracmax, pndaspect, hs1, hp1, &
a_rapid_mode, Rac_rapid_mode, aspect_rapid_mode, dSdt_slow_mode, &
phi_c_slow_mode, phi_i_mushy, kalg, emissivity
phi_c_slow_mode, phi_i_mushy, kalg, emissivity, floediam, hfrazilmin

integer (kind=int_kind) :: ktherm, kstrength, krdg_partic, krdg_redist, &
natmiter, kitd, kcatbound
Expand Down Expand Up @@ -135,7 +135,8 @@ subroutine input_data
kitd, ktherm, ksno, conduct, &
a_rapid_mode, Rac_rapid_mode, aspect_rapid_mode, &
dSdt_slow_mode, phi_c_slow_mode, phi_i_mushy, &
sw_redist, sw_frac, sw_dtemp
sw_redist, sw_frac, sw_dtemp, &
floediam, hfrazilmin

namelist /dynamics_nml/ &
kstrength, krdg_partic, krdg_redist, mu_rdg, &
Expand Down Expand Up @@ -198,6 +199,7 @@ subroutine input_data
rfracmin_out=rfracmin, rfracmax_out=rfracmax, &
pndaspect_out=pndaspect, hs1_out=hs1, hp1_out=hp1, &
ktherm_out=ktherm, calc_Tsfc_out=calc_Tsfc, &
floediam_out=floediam, hfrazilmin_out=hfrazilmin, &
update_ocn_f_out = update_ocn_f, &
conduct_out=conduct, a_rapid_mode_out=a_rapid_mode, &
Rac_rapid_mode_out=Rac_rapid_mode, &
Expand Down Expand Up @@ -576,6 +578,8 @@ subroutine input_data
write(nu_diag,1005) ' atmiter_conv = ', atmiter_conv
write(nu_diag,1010) ' calc_strair = ', calc_strair
write(nu_diag,1010) ' calc_Tsfc = ', calc_Tsfc
write(nu_diag,1005) ' floediam = ', floediam
write(nu_diag,1005) ' hfrazilmin = ', hfrazilmin

write(nu_diag,*) ' atm_data_type = ', &
trim(atm_data_type)
Expand Down Expand Up @@ -765,6 +769,7 @@ subroutine input_data
dpscale_in=dpscale, frzpnd_in=frzpnd, &
rfracmin_in=rfracmin, rfracmax_in=rfracmax, &
pndaspect_in=pndaspect, hs1_in=hs1, hp1_in=hp1, &
floediam_in=floediam, hfrazilmin_in=hfrazilmin, &
ktherm_in=ktherm, calc_Tsfc_in=calc_Tsfc, &
conduct_in=conduct, a_rapid_mode_in=a_rapid_mode, &
Rac_rapid_mode_in=Rac_rapid_mode, &
Expand Down
2 changes: 2 additions & 0 deletions configuration/scripts/icepack_in
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@
sw_redist = .false.
sw_frac = 0.9d0
sw_dtemp = 0.02d0
floediam = 300.0d0
hfrazilmin = 0.05d0
/

&shortwave_nml
Expand Down
1 change: 1 addition & 0 deletions doc/source/master_list.bib
Original file line number Diff line number Diff line change
Expand Up @@ -743,6 +743,7 @@ @article{danabasoglu20
}



% **********************************************
% For new entries, see example entry in BIB_TEMPLATE.txt
% **********************************************
8 changes: 6 additions & 2 deletions doc/source/user_guide/interfaces.include
Original file line number Diff line number Diff line change
Expand Up @@ -729,7 +729,7 @@ icepack_init_parameters
subroutine icepack_init_parameters( &
puny_in, bignum_in, pi_in, secday_in, &
rhos_in, rhoi_in, rhow_in, cp_air_in, emissivity_in, &
cp_ice_in, cp_ocn_in, &
cp_ice_in, cp_ocn_in, hfrazilmin_in, floediam_in, &
depressT_in, dragio_in, albocn_in, gravit_in, viscosity_dyn_in, &
Tocnfrz_in, rhofresh_in, zvir_in, vonkar_in, cp_wv_in, &
stefan_boltzmann_in, ice_ref_salinity_in, &
Expand Down Expand Up @@ -791,6 +791,8 @@ icepack_init_parameters
!-----------------------------------------------------------------------

real (kind=dbl_kind), intent(in), optional :: &
floediam_in, & ! effective floe diameter for lateral melt (m)
hfrazilmin_in, & ! min thickness of new frazil ice (m)
cp_ice_in, & ! specific heat of fresh ice (J/kg/K)
cp_ocn_in, & ! specific heat of ocn (J/kg/K)
depressT_in, & ! Tf:brine salinity ratio (C/ppt)
Expand Down Expand Up @@ -1075,7 +1077,7 @@ icepack_query_parameters
p2_out, p4_out, p5_out, p6_out, p05_out, p15_out, p25_out, p75_out, &
p333_out, p666_out, spval_const_out, pih_out, piq_out, pi2_out, &
rhos_out, rhoi_out, rhow_out, cp_air_out, emissivity_out, &
cp_ice_out, cp_ocn_out, &
cp_ice_out, cp_ocn_out, hfrazilmin_out, floediam_out, &
depressT_out, dragio_out, albocn_out, gravit_out, viscosity_dyn_out, &
Tocnfrz_out, rhofresh_out, zvir_out, vonkar_out, cp_wv_out, &
stefan_boltzmann_out, ice_ref_salinity_out, &
Expand Down Expand Up @@ -1146,6 +1148,8 @@ icepack_query_parameters
!-----------------------------------------------------------------------

real (kind=dbl_kind), intent(out), optional :: &
floediam_out, & ! effective floe diameter for lateral melt (m)
hfrazilmin_out, & ! min thickness of new frazil ice (m)
cp_ice_out, & ! specific heat of fresh ice (J/kg/K)
cp_ocn_out, & ! specific heat of ocn (J/kg/K)
depressT_out, & ! Tf:brine salinity ratio (C/ppt)
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 @@ -199,6 +199,8 @@ thermo_nml
"``conduct``", "``bubbly``", "conductivity scheme :cite:`Pringle07`", "``bubbly``"
"", "``MU71``", "conductivity :cite:`Maykut71`", ""
"``dSdt_slow_mode``", "real", "slow drainage strength parameter m/s/K", "-1.5e-7"
"``floediam``", "real", "effective floe diameter for lateral melt in m", "300.0"
"``hfrazilmin``", "real", "min thickness of new frazil ice in m", "0.05"
"``kitd``", "``0``", "delta function ITD approximation", "1"
"", "``1``", "linear remapping ITD approximation", ""
"``ksno``", "real", "snow thermal conductivity", "0.3"
Expand Down

0 comments on commit 77c523e

Please sign in to comment.