Icepack version 1.5.0 is being released with CICE6.6.0. This is a major release update from the Icepack1.4.1 release from May, 2024. The Icepack BGC has been significantly updated. The public Icepack interfaces have been refactored, and two public interfaces were renamed with backwards compatibility provided. . The floe size distribution conservation properties were improved, and the snow and ice enthalphy calculation was updated in the lateral melt process. Finally, an alternative congelation formulation following Plante et al. was added.
NOTE: This version is not backwards compatible with earlier versions of Icepack due to changes in public interfaces (see below for a detailed summary). In addition, all answers are changed.
Major Changes
- BGC update #497 (updates BGC physics consistent with E3SM, begins deprecation of skeletal-layer BGC, cleans up interfaces, updates bgc namelist defaults and settings in icepack_in and bgc tracer sizing in set_env files)
Bug fixes
- Fix conservation issues in the floe size distribution. Changes answers in FSD cases. #495
- Use initial ice and snow volume values at the beginning of the lateral melt routine to update the snow and ice enthalpy as well other tracers for lateral melting. Changes answers in all cases.
- Move the computation of vi0new_lat (lateral growth from FSD) outside of subroutine fsd_lateral_growth and check that the category new ice volume (vin0new) does not exceed the total vi0new.
- Redefine floe_area_c to be precisely halfway between floe_area_l and floe_area_h.
- BGC update #497 fixes bug in subroutine snow_redist computation of hsn_new when nslyr=1
- Add a check and abort for negative values in the sqrt in computation of Tin in function calculate_Tin_from_qin. #502
Enhancements
- Update Icepack interfaces to remove arguments that are not needed, for minor physics changes, and as part of the BGC refactor. See below for more details. #497 #495 #502
- Alternative congelation formulation following Plante et al. 2024 #494
- Make dsnow and dsnown optional in icepack_step_therm1 #506
- Rename two public Icepack subroutines. Backward compatibility was maintained but we urge users to update their drivers to use the new names. #502
- use icepack_therm_shared , only: icepack_init_thermo => icepack_init_salinity
- use icepack_therm_shared , only: icepack_init_trcr => icepack_init_enthalpy
- Store static FSD information in Icepack rather than passing it through argument lists; remove fside #495
- Update timeseries script plot fonts and titles, add run_testoutput script #490
- Machine ports #496, #501, #502
Documentation
- Update version number to 1.5.0 #507
- Update documentation for adding a tracer and the tutorial #493
- Update comments associated with floeshape constant attribution and kice #502
Summary of Icepack Interface Changes
Unless otherwise indicated, these changes remove arguments that are set elsewhere and not needed.
-
icepack_init_trcr
- rename to icepack_init_enthalpy
- remove arguments nilyr, nslyr
-
icepack_init_thermo
- rename to icepack_init_salinity
- remove arguments nilyr
-
icepack_init_itd
- remove arguments ncat
-
icepack_init_itd_hist
- remove arguments ncat
-
icepack_init_hbrine
- remove arguments nilyr, nblyr
- remove arguments bgrid, igrid, cgrid, icgrid, swgrid
-
icepack_init_fsd
- remove arguments nfsd
- remove arguments floe_rad_c, floe_binwidth
-
icepack_init_fsd_bounds
- remove arguments nfsd
- remove arguments floe_rad_l, floe_rad_c, floe_binwidth, c_fsd_range
- add optional arguments floe_rad_l_out, floe_rad_c_out, floe_binwidth_out, c_fsd_range_out to return values computed in the subroutine to the caller if needed.
-
icepack_cleanup_fsd
- remove arguments ncat, nfsd
-
icepack_init_bgc
- remove arguments ncat, nblyr, nilyr, ntrcr_o, ntrcr, nbtrcr
- remove arguments cgrid, igrid
- add optional argument DOCPollFractions (new feature)
-
icepack_init_zbgc
- completely refactored, most arguments removed and moved to icepack_init_parameters
- arguments now are (zbgc_frac_init_in, zbgc_init_frac_in, tau_ret_in, tau_rel_in, bgc_tracer_type_in)
-
icepack_load_ocean_bio_array
- remove arguments max_nbtrcr, max_algae, max_don, max_doc, max_dic, max_aero, max_fe
-
icepack_init_ocean_bio
- remove arguments max_dic, max_don, max_fe, max_aero
-
icepack_*_parameters (add new features or move bgc initialization of static parameters from icepack_init_zbgc to icepack_parameters)
- add arguments hs_ssl_min, R_gC2molC, congel_freeze, use_macromolecules, restartbgc, use_atm_dust_iron, grid_o_t, tau_min, tau_max, f_don_protein, kn_bac_protein, f_don_Am_protein, ratio_Si2N_diatoms, ratio_Si2N_sp, ratio_Si2N_phaeo, ratio_S2N_diatoms, ratio_S2N_sp, ratio_S2N_phaeo, ratio_Fe2C_diatoms, ratio_Fe2C_sp, ratio_Fe2C_phaeo, ratio_Fe2N_diatoms, ratio_Fe2N_sp, ratio_Fe2N_phaeo, ratio_Fe2DON, ratio_Fe2DOC_s, ratio_Fe2DOC_l, chlabs_diatoms, chlabs_sp, chlabs_phaeo, alpha2max_low_diatoms, alpha2max_low_sp, alpha2max_low_phaeo, beta2max_diatoms, beta2max_sp, beta2max_phaeo, mu_max_diatoms, mu_max_sp, mu_max_phaeo, grow_Tdep_diatoms, grow_Tdep_sp, grow_Tdep_phaeo, fr_graze_diatoms, fr_graze_sp, fr_graze_phaeo, mort_pre_diatoms, mort_pre_sp, mort_pre_phaeo, mort_Tdep_diatoms, mort_Tdep_sp, mort_Tdep_phaeo, k_exude_diatoms, k_exude_sp, k_exude_phaeo, K_Nit_diatoms, K_Nit_sp, K_Nit_phaeo, K_Am_diatoms, K_Am_sp, K_Am_phaeo, K_Sil_diatoms, K_Sil_sp, K_Sil_phaeo, K_Fe_diatoms, K_Fe_sp, K_Fe_phaeo, f_doc_s, f_doc_l, f_exude_s, f_exude_l, k_bac_s, k_bac_l, algaltype_diatoms, algaltype_sp, algaltype_phaeo, nitratetype, ammoniumtype, silicatetype, dmspptype, dmspdtype, humtype, doctype_s, doctype_l, dictype_1, dontype_protein, fedtype_1, feptype_1, zaerotype_bc1, zaerotype_bc2, zaerotype_dust1, zaerotype_dust2, zaerotype_dust3, zaerotype_dust4, ratio_C2N_diatoms, ratio_C2N_sp, ratio_C2N_phaeo, ratio_chl2N_diatoms, ratio_chl2N_sp, ratio_chl2N_phaeo, F_abs_chl_diatoms, F_abs_chl_sp, F_abs_chl_phaeo, ratio_C2N_proteins_in
-
icepack_compute_tracers
- remove arguments ntrcr
-
icepack_aggregate
- remove arguments ncat, ntrcr, nilyr, nslyr
-
icepack_ice_strength
- remove arguments ncat
-
icepack_step_therm1
- remove arguments ncat, nilyr, nslyr
- remove arguments rside, fside
- add argument rsiden (replaces rside and fside)
- add argument afsdn (new feature)
-
icepack_step_therm2
- remove arguments ncat, nilyr, nslyr, nblyr, bgrid, cgrid, igrid, nfsd
- remove arguments floe_rad_c, floe_binwidth
- remove arguments rside, fside
- add argument rsiden (replaces rside and fside)
-
icepack_step_wavefracture
- remove arguments ncat, nfsd, floe_rad_l, floe_rad_c
-
icepack_step_ridge
- remove arguments ncat, nilyr, nslyr, nblyr, n_aero
-
icepack_step_snow
- remove arguments ncat, nilyr, nslyr
-
icepack_step_radiation
- remove arguments swgrid, igrid
-
icepack_biogeochemistry
- remove arguments ncat, ntrcr, nilyr, nslyr, nblylr, nbtrcr
- remove arguments n_algae, n_zaero, n_doc, n_dic, n_don, n_fed, n_fep
- remove arguments bgrid, igrid, icgrid, cgrid
- remove arguments sice_rho, skl_bgc