diff --git a/columnphysics/icepack_parameters.F90 b/columnphysics/icepack_parameters.F90 index b3c0f1347..795ca9ea0 100644 --- a/columnphysics/icepack_parameters.F90 +++ b/columnphysics/icepack_parameters.F90 @@ -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 @@ -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 @@ -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 @@ -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, & @@ -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) @@ -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 @@ -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, & @@ -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) @@ -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 @@ -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 diff --git a/columnphysics/icepack_therm_itd.F90 b/columnphysics/icepack_therm_itd.F90 index 4f773a14e..ba2bc8134 100644 --- a/columnphysics/icepack_therm_itd.F90 +++ b/columnphysics/icepack_therm_itd.F90 @@ -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 @@ -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 diff --git a/columnphysics/icepack_therm_shared.F90 b/columnphysics/icepack_therm_shared.F90 index 1448d0896..553328cac 100644 --- a/columnphysics/icepack_therm_shared.F90 +++ b/columnphysics/icepack_therm_shared.F90 @@ -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) diff --git a/columnphysics/icepack_therm_vertical.F90 b/columnphysics/icepack_therm_vertical.F90 index 92a035037..74cc7cdc2 100644 --- a/columnphysics/icepack_therm_vertical.F90 +++ b/columnphysics/icepack_therm_vertical.F90 @@ -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 @@ -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 diff --git a/configuration/driver/icedrv_init.F90 b/configuration/driver/icedrv_init.F90 index 3fecc57cc..15a3614e2 100644 --- a/configuration/driver/icedrv_init.F90 +++ b/configuration/driver/icedrv_init.F90 @@ -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 @@ -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, & @@ -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, & @@ -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) @@ -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, & diff --git a/configuration/scripts/icepack_in b/configuration/scripts/icepack_in index 553ee26e4..744391441 100644 --- a/configuration/scripts/icepack_in +++ b/configuration/scripts/icepack_in @@ -47,6 +47,8 @@ sw_redist = .false. sw_frac = 0.9d0 sw_dtemp = 0.02d0 + floediam = 300.0d0 + hfrazilmin = 0.05d0 / &shortwave_nml diff --git a/doc/source/master_list.bib b/doc/source/master_list.bib index 8f7cbed0a..a763b1fa5 100644 --- a/doc/source/master_list.bib +++ b/doc/source/master_list.bib @@ -743,6 +743,7 @@ @article{danabasoglu20 } + % ********************************************** % For new entries, see example entry in BIB_TEMPLATE.txt % ********************************************** diff --git a/doc/source/user_guide/interfaces.include b/doc/source/user_guide/interfaces.include index 9b4b7c570..e55e989cf 100644 --- a/doc/source/user_guide/interfaces.include +++ b/doc/source/user_guide/interfaces.include @@ -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, & @@ -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) @@ -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, & @@ -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) diff --git a/doc/source/user_guide/ug_case_settings.rst b/doc/source/user_guide/ug_case_settings.rst index f30728623..3b8e40e59 100755 --- a/doc/source/user_guide/ug_case_settings.rst +++ b/doc/source/user_guide/ug_case_settings.rst @@ -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"