From 68d3a9e09fc9f56a92e30b4408ace7d6edacf49c Mon Sep 17 00:00:00 2001 From: Elizabeth Hunke Date: Fri, 2 Aug 2024 18:04:49 -0600 Subject: [PATCH 1/2] access alternative congelation ice formulation in icepack --- cicecore/cicedyn/general/ice_init.F90 | 9 ++++++--- configuration/scripts/ice_in | 1 + configuration/scripts/machines/env.chicoma_intel | 2 +- configuration/scripts/options/set_nml.congel | 2 ++ configuration/scripts/tests/base_suite.ts | 2 ++ doc/source/user_guide/ug_case_settings.rst | 2 ++ 6 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 configuration/scripts/options/set_nml.congel diff --git a/cicecore/cicedyn/general/ice_init.F90 b/cicecore/cicedyn/general/ice_init.F90 index a7f84e46e..0796efd2d 100644 --- a/cicecore/cicedyn/general/ice_init.F90 +++ b/cicecore/cicedyn/general/ice_init.F90 @@ -164,7 +164,7 @@ subroutine input_data character (len=char_len) :: shortwave, albedo_type, conduct, fbot_xfer_type, & tfrz_option, saltflux_option, frzpnd, atmbndy, wave_spec_type, snwredist, snw_aging_table, & - capping_method, snw_ssp_table + congel_freeze, capping_method, snw_ssp_table logical (kind=log_kind) :: calc_Tsfc, formdrag, highfreq, calc_strair, wave_spec, & sw_redist, calc_dragio, use_smliq_pnd, snwgrain @@ -280,7 +280,7 @@ subroutine input_data highfreq, natmiter, atmiter_conv, calc_dragio, & ustar_min, emissivity, iceruf, iceruf_ocn, & fbot_xfer_type, update_ocn_f, l_mpond_fresh, tfrz_option, & - saltflux_option,ice_ref_salinity,cpl_frazil, & + saltflux_option,ice_ref_salinity,cpl_frazil, congel_freeze, & oceanmixed_ice, restore_ice, restore_ocn, trestore, & precip_units, default_season, wave_spec_type,nfreq, & atm_data_type, ocn_data_type, bgc_data_type, fe_data_type, & @@ -537,6 +537,7 @@ subroutine input_data atmiter_conv = c0 ! ustar convergence criteria precip_units = 'mks' ! 'mm_per_month' or ! 'mm_per_sec' = 'mks' = kg/m^2 s + congel_freeze = 'two-step'! congelation freezing method tfrz_option = 'mushy' ! freezing temp formulation saltflux_option = 'constant' ! saltflux calculation ice_ref_salinity = 4.0_dbl_kind ! Ice reference salinity for coupling @@ -1127,6 +1128,7 @@ subroutine input_data call broadcast_scalar(wave_spec_type, master_task) call broadcast_scalar(wave_spec_file, master_task) call broadcast_scalar(nfreq, master_task) + call broadcast_scalar(congel_freeze, master_task) call broadcast_scalar(tfrz_option, master_task) call broadcast_scalar(saltflux_option, master_task) call broadcast_scalar(ice_ref_salinity, master_task) @@ -2313,6 +2315,7 @@ subroutine input_data if (trim(tfrz_option) == 'constant') then write(nu_diag,1002) ' Tocnfrz = ', Tocnfrz endif + write(nu_diag,1030) ' congel_freeze = ', trim(congel_freeze) if (update_ocn_f) then tmpstr2 = ' : frazil water/salt fluxes included in ocean fluxes' else @@ -2723,7 +2726,7 @@ subroutine input_data aspect_rapid_mode_in=aspect_rapid_mode, dSdt_slow_mode_in=dSdt_slow_mode, & phi_c_slow_mode_in=phi_c_slow_mode, phi_i_mushy_in=phi_i_mushy, conserv_check_in=conserv_check, & wave_spec_type_in = wave_spec_type, wave_spec_in=wave_spec, nfreq_in=nfreq, & - update_ocn_f_in=update_ocn_f, cpl_frazil_in=cpl_frazil, & + update_ocn_f_in=update_ocn_f, cpl_frazil_in=cpl_frazil, congel_freeze_in=congel_freeze, & tfrz_option_in=tfrz_option, kalg_in=kalg, fbot_xfer_type_in=fbot_xfer_type, & saltflux_option_in=saltflux_option, ice_ref_salinity_in=ice_ref_salinity, & Pstar_in=Pstar, Cstar_in=Cstar, iceruf_in=iceruf, iceruf_ocn_in=iceruf_ocn, calc_dragio_in=calc_dragio, & diff --git a/configuration/scripts/ice_in b/configuration/scripts/ice_in index ad29e05ce..d9215de60 100644 --- a/configuration/scripts/ice_in +++ b/configuration/scripts/ice_in @@ -270,6 +270,7 @@ fbot_xfer_type = 'constant' update_ocn_f = .false. l_mpond_fresh = .false. + congel_freeze = 'two-step' tfrz_option = 'mushy' saltflux_option = 'constant' ice_ref_salinity = 4.0 diff --git a/configuration/scripts/machines/env.chicoma_intel b/configuration/scripts/machines/env.chicoma_intel index a324ec0fe..1f8f8ac8b 100644 --- a/configuration/scripts/machines/env.chicoma_intel +++ b/configuration/scripts/machines/env.chicoma_intel @@ -64,7 +64,7 @@ setenv ICE_MACHINE_WKDIR /lustre/scratch5/$user/CICE_RUNS setenv ICE_MACHINE_INPUTDATA /usr/projects/climate/eclare/DATA/Consortium setenv ICE_MACHINE_BASELINE /lustre/scratch5/$user/CICE_BASELINE setenv ICE_MACHINE_SUBMIT "sbatch " -setenv ICE_MACHINE_ACCT t23_cice +setenv ICE_MACHINE_ACCT t24_cice setenv ICE_MACHINE_QUEUE "debug" setenv ICE_MACHINE_TPNODE 128 # tasks per node setenv ICE_MACHINE_BLDTHRDS 12 diff --git a/configuration/scripts/options/set_nml.congel b/configuration/scripts/options/set_nml.congel new file mode 100644 index 000000000..d61042cbd --- /dev/null +++ b/configuration/scripts/options/set_nml.congel @@ -0,0 +1,2 @@ + congel_freeze = 'one-step' + diff --git a/configuration/scripts/tests/base_suite.ts b/configuration/scripts/tests/base_suite.ts index 3a18d8548..3f34da8a2 100644 --- a/configuration/scripts/tests/base_suite.ts +++ b/configuration/scripts/tests/base_suite.ts @@ -27,6 +27,7 @@ restart gx3 8x2 alt06 restart gx3 8x3 alt07 restart gx3 16x2 snicar restart gx3 12x2 snicartest +restart gx3 8x2 congel restart gx3 8x3 saltflux restart gx3 18x2 debug,maskhalo restart gx3 6x2 alt01,debug,short @@ -37,6 +38,7 @@ smoke gx3 4x4 alt04,debug,short smoke gx3 4x4 alt05,debug,short smoke gx3 8x2 alt06,debug,short smoke gx3 8x3 alt07,debug,short +smoke gx3 8x2 congel,debug,short smoke gx3 16x2 snicar,debug,short smoke gx3 12x2 snicartest,debug,short smoke gx3 10x2 debug,diag1,run5day,gx3sep2 diff --git a/doc/source/user_guide/ug_case_settings.rst b/doc/source/user_guide/ug_case_settings.rst index 8e7b154db..a2740932c 100644 --- a/doc/source/user_guide/ug_case_settings.rst +++ b/doc/source/user_guide/ug_case_settings.rst @@ -673,6 +673,8 @@ forcing_nml "``calc_strair``", "``.false.``", "read wind stress and speed from files", "``.true.``" "", "``.true.``", "calculate wind stress and speed", "" "``calc_Tsfc``", "logical", "calculate surface temperature", "``.true.``" + "``congel_freeze``", "``one-step``", "immediately freeze congelation ice", "``two-step``" + "", "``two-step``", "delayed freezing of congelation ice", "" "``cpl_frazil``", "``external``", "frazil water/salt fluxes are handled outside of Icepack", "``fresh_ice_correction``" "", "``fresh_ice_correction``", "correct fresh-ice frazil water/salt fluxes for mushy physics", "" "", "``internal``", "send full frazil water/salt fluxes for mushy physics", "" From 59b9ca35fa189e67c8e7efeb2e2ef3d789413cef Mon Sep 17 00:00:00 2001 From: apcraig Date: Wed, 7 Aug 2024 12:23:45 -0600 Subject: [PATCH 2/2] Update Icepack to #4c8709525, Aug 7, 2024. Includes one-step congelation implementation, port to casper, updated documentation. --- icepack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/icepack b/icepack index 083d6e3cf..4c8709525 160000 --- a/icepack +++ b/icepack @@ -1 +1 @@ -Subproject commit 083d6e3cf42198bc7b4ffd1f02063c4c5b35b639 +Subproject commit 4c87095256c1c599c3ccaa857a95744158751a60