Releases: CICE-Consortium/CICE
CICE6.6.2
CICE6.6.2 is a minor update from CICE6.6.1 from July, 2025 and includes Icepack1.5.2.
This release is being done primarily to update the Copyright. There are also some enhancements including to the zap_small_areas in Icepack that improves the stability at the ice edge. There are also port updates for Carpenter, Gaeac5, Gaeac6, and Ursa.
Major Changes
Bug fixes
Enhancements
- #1039 Port to NOAA Ursa
 - #1041 Update Carpenter port, update intel compilers, add inteloneapi, workaround debug compiler flag -fpe0 error
 - #1043 Update NOAA Gaeac5 port and port to NOAA Gaeac6
 - #1046 Update Icepack to #6a5c51e9e6c64 which includes improvement to zap_small_areas for vicen and vsnon. This may change answers to roundoff, but testing suggests it's relatively rare.
 - #1045 Update CICE file reading to deal with possibility of NaNs on file
 - #1049 Update Icepack to #f9789c2f325993c0af
 
Documentation
CICE6.6.1
CICE6.6.1 is a minor update from CICE6.6.0 from November, 2024 and includes Icepack1.5.1.
This release has a few significant updates including the addition of a sea-level ponds option, addition of a semi-implicit coupling scheme as needed for NASA/GEOS, and support for a MOM supergrid file. It also has several bug fixes including a fix to the outgoing longwave calculation and a fix to the ponds implementation in Icepack. There are a few enhancements, mostly for history output and coupling. Finally, the zsalinity option has been officially deprecated in this version. Note that some new pond history field diagnostics have been added but these are not supported yet for the topo ponds option.
Major Changes
Bug fixes
- #999 Fix outgoing lw for history and coupling
 - #1002 Update Icepack to #43ead56380b to fix hocn and flushing velocity issue - changes answers
 - #1015 Update Icepack to fix surface flux arguments and BGC bug - changes answers for BGC
 - #1018 Remove 1:len specification in MPI boundary calls for the nvhpc compiler
 
Enhancements
- #993 Add support for mom (supergrid) grid format
 - #1000 Update Perlmutter Port, update Icepack
 - #1001 Enable triggering restart writes at any forecast time (UFS configuration)
 - #1003 Update derecho gnu to add coverage capability with lcov
 - #1005 Add ability to write out one-time grid history file
 - #1006 Update rectangular (box) configurations - changes answers for some box tests
 - #1012 Add a semi-implicit thermodynamic coupling option, enforce mass and energy conservation for sublimation and deposition, and enable photosynthetic radiation, as needed for the GEOS model.
 - #1013 Port to gaea
 - #1016 Migrate dynamics thresholds to namelist and rename
 - #1017 Deprecate zsalinity
 - #1019 Port to blueback
 - #1021 Update blueback for automated testing
 - #1023 Update initial date in nuopc/cmeps driver
 - #1025 Update method to check test jobs are completed for automated test reporting to make the method more robust.
 - #1028 Update set_version_numbers.csh to automatically update the zenodo template, .zenodo.json.
 - #1029 Updated the character length of stdname in the nuopc/cmeps driver
 - #1032 Update Icepack to #cfdf8cc9cb73d5
 - #1034 Changed edge flux adjustment flag from l_fixed_area to l_edge_flux_adj
 
Documentation
- #1007, #1027, #1030, #1032 Update Copyright, Distribution Policy, and License
 - #1015 Update history units and conversion factors, sphinx-bibtex version
 - #1024 Properly rename the calendar CICE uses with leap years as proleptic_gregorian rather than greogorian.
 - #1032 Update version number to CICE6.6.1
 - #1034 Modifications to the documentation for C-grid remapping and edge flux adjustment method
 - #1037 Update zenodo author list
 
CICE6.6.0
CICE6.6.0 is a major update from CICE6.5.1 from May, 2024 and includes Icepack1.5.0. This includes a significant update in the BGC implementation in Icepack. It also includes some updates to many Icepack interfaces. The floe size distribution was changed and several minor bugs were fixed in PIO. Parts of the CICE grid source code were cleaned up as well.
Major Changes
- Update BGC and Icepack interfaces #968
 
Bug fixes
- Update the floe size distribution implementation and interfaces per changes in icepack #975 Changes answers for all results
 - Fix icepack_aggregate arguments in ice_prescribed_mod.F90 #980
 - Confirm backward compatibility for PIO reads on non-parallel files #966
 - Add PIO finalize calls to improve PIO cleanup. Avoids an abort due to too many MPI communicators when writing lots of files. Add a new test to write hourly files for a 1 year test run. #995
 - pio_errorhandling call was in the wrong location #973
 
Enhancements
- Update to Icepack1.5.0 #997
 - Access alternative congelation ice formulation in icepack #965
 - Update CICE plotting tools #958
 - Change shr_file to shr_log #960
 - Enable prescribed ice for UFS #964
 - NUOPC/CMEPS driver
- Write restart at end of run via NUOPC component attribute & Initialize cpl_scalar field when created for UFS #984
 - Reduce prints in shr_orbital #981
 - Check for REST_OPTION = 'end' and whether stop_ymd is the same interval as the restarts; fix pointer file names when multiple instances are turned on. #990
 - Allow the driver to set msec #991
 
 - Grid
 - Update opticep unit test to handle new dsnow optional arguments in Icepack #998
 - Machine port #974, Update izumi_nag port #958
 
Documentation
CICE6.5.1
CICE6.5.1 is a minor update from CICE6.5.0 from October, 2023 and includes Icepack1.4.1.
This release has a significant update to the 1D evp solver to make it more robust and improve performance. Another significant change is an update to the options and control of netCDF and PIO output formats including support for chunking and compression thru hdf5. Several history output and diagnostic features have also been added. Finally, the nprocs and max_blocks implementations have been extended. They now support a namelist setting of -1 that will result in an internal calculation for both variables.
Major Changes
- Update the 1D evp solver. This solver compresses the CICE dynamics data to 1D and uses OpenMP to parallelize the dynamics solver. #895
 
Bug fixes
Enhancements
- Refactor and clean up grid variables in dynamics. #921
 - Update calculation of uvel and vvel in evp dynamics, remove extra calculations and update documentation. #953
 - Add vorticity as a diagnostic quantity for B and C grids. #924
 - Add sndmassdyn and dvsdtd diagnostic quantities. #940
 - Refactor CMIP history variables, add avg_ice_present and mask_ice_free_points as history field attributes to improve code reuse. #906
 - Allow per stream suffix for history filenames. #912
 - Update PIO and netcdf error checks. #927
 - Update PIO and netcdf formats (cdf1, cdf2, cdf5, hdf5, pnetcdf1, pnetcdf2, pnetcdf5, etc), add new namelist controls for hdf5 compression and chunking, add namelist for PIO rearranger, add namelist for PIO tasks/root/stride settings. Add CPPs NO_CDF2, NO_CDF5, NO_HDF5 to allow compilation with older versions of the netcdf library or versions that don't include some features. #928, #938, #956
 - Support disabling coordinate variables in history files. #935
 - Add checks to ensure individual history streams have unique filenames #943
 - Update nprocs implementation to compute number of tasks automatically with nprocs=-1, improve max_blocks estimate when max_blocks=-1. #949
 - Update calculation of max_blocks=-1, compute exact number of blocks per task and allow that to vary by task. Fix a couple bugs related to having different numbers of max_blocks per task. #954
 - Updated single channel test's use of Fortran "huge", switch to local large values due to problems with MPI. #922
 - Add reusuable subroutine ice_memusage_allocErr to check allocation and deallocation errors #954
 - Update Icepack version. #913, #955
 - Update opticep unit tests to use latest main code. #913
 - Update github actions testing related to MacOS upgrade. #922, #948
 - Update DMI nuopc driver. Add missing logical variable timer_states. #910
 - Update cmeps nuopc driver. Update dealloc_grid. #911. Update single column formulation. #926, #957. Fix ice_mesh_mod grid defaults. #929. Update idate0 and date init settings. #936. Fix missing j loop indices and variable return code. #944
 - Port to Carpenter. #939, #942
 - Port to Gadi. #947
 
Documentation
CICE6.5.0
CICE6.5.0 updates CICE6.4.2 from September 2023 and includes Icepack1.4.0.
This release updates the C-grid solver to make it more robust. It also includes the first updates in Icepack from the E3SM integration. Some Icepack interfaces have changed. Other important changes include the frazil coupling implementation, addition of the 5-band snicar shortwave feature, and an update of the JRA55 tx1 grid forcing. Finally, the cicedynB directory has been removed and renamed to cicedyn.
Important NOTES
- This release improves the robustness of the C-grid solver and can be considered the first fully supported release of the C-grid feature.
 - Icepack was updated with non-backward-compatible interface changes. More details can be seen in the Icepack1.4.0 release notes.
 - CICE tx1 grid JRA55 forcing from prior versions was incorrect, this has been fixed.
 
Major Changes
- Update areafact calculation remapping advection and set l_fixed_area to true for C grid solutions (This changes answers slightly with remap advection and improves the C-grid solutions) #849
 - Update Icepack to version with E3SM initial integration modification.  Update CICE to be compatible.  (This changes temperature values on restart files where ice does not exist but is bit-for-bit otherwise.  This also changes some Icepack intefaces) #879
- Update snicar shortwave/aerosol optics implementation, add snicar tests
 - Add Tf argument to several Icepack subroutine interfaces
 - Cleanup/remove several static Icepack subroutine arguments
 - Update snow physics control
 - Update CICE driver and coupling layers as needed
 
 - Update the tfrz_options settings for some configurations (This changes answers for those configurations) #883
 
Bug fixes
- Update the JRA55 tx1 atm forcing dataset #876
 - Fix bug in lateral melt in Icepack (This changes all results) #902
 - Fix error in the computation of N and E grid values when TLON, TLAT, ANGLET are on the CICE grid file. #899
 - Fix the mesh check method in the nuopc/cmeps coupling layer #873
 
Enhancements
- Add cpl_frazil and update use of update_ocn_f consistent with upgrades to Icepack #889
 - Add atm_data_version namelist to control JRA55 atm forcing file versioning #876
 - Update computation of intermediate quantities for the seabed stress (This changes answers for C-grid with seabed stress turned on) #893
 - Change nuopc/cmeps coupling layer to use CESM style field names #869
 - Add single channel test cases #875
 - Port to Perlmutter #882
 - Add CPP NO_SNICARHC to turn off hardcoded 5-band dEdd tables in Icepack. By default this is on. #886
 - Remove the cicedynB link, provided temporarily for backwards compatibility when the directory was renamed to cicedyn. #887
 - Update input data path on Derecho #890
 - Update Icepack #879, #886, #902, #903
 
Documentation
CICE6.4.2
CICE6.4.2 updates CICE6.4.1 from December, 2022 and includes Icepack1.3.4.
This release has several minor bug fixes including to computation of thin ice/snow enthalpy snow physics, FSD lateral melt, and the VP solver. It corrects some errors in halo and global sum infrastructure and extends unit testing of both features. It adds an option for use of JRA55do forcing and deprecates the COREII LYq forcing. Several history and restart output features were added including the ability to have multiple restart frequencies and to set history averaging separately for each history stream.
Bug fixes
- Fix thin ice/snow enthalpy computation in Icepack #857 Changes answers in CICE
 - Update snow physics implementation in Icepack #852 Changes answers for snow physics
 - Update l_fixed_area option in horizontal remapping used for C grid simulations. #833. Changes answers for C grid
 - Fix rare instability in probabilistic seabed stress, should not change answers. #810
 - Add haloUpdate unit test and fix some errors in the haloUpdate code, Changes answers in tripole cases using serial (no MPI) infrastructure #820
 - Update VP solver to improve performance and fix bug in workspace_y calculation, Changes answers in VP solver #824
 - Fix bug in tripoleT global sum calculation, Changes answers in tripoleT configurations #824
 
Enhancements
- Extend restart output controls, provide multiple frequency options #850
 - Deprecate zsalinity feature #851
 - Deprecate COREII LYq forcing #841
 - Add support for JRA55do as new forcing option #843
 - Add namelist option to specify time axis position in history files #839
 - Add time_period_freq attribute to history file variables #816
 - Update filename and time information on CICE initial condition history file #818
 - Update global reduction implementation to improve performance, expand sumchk unit test #824
 - Add opticep unit test to test CICE calls to Icepack without optional arguments. Update optargs unit tests #846
 - Add functionality to set hist_avg for each stream #827
 - Add method to check namelist inputs more robustly, #801
 - Update coupling layer, #806, #812, #830, #856, #861
 - Refactor setmask option to meshnc, #806
 - Update FSD calls to Icepack, add wlat argument #813
 - Update Icepack #821, #823, #813, #829, #841, #846, #851, #852, #857, #864
 - Update port for Cheyenne, Derecho, Chicoma #852, #863
 - Update Github Actions conda_macos test script to work around broken mpi compiler wrappers #853
 
Documentation
CICE6.4.1
CICE6.4.1 updates CICE6.4.0 from August, 2022 and includes Icepack1.3.3.
This release provides several minor upgrades to the recently released C-grid option. It has several bug fixes including in dEdd scheme affecting modal aerosols and the snow grain implementation. It has updated the VP dynamics option to improve robustness and reproducibility. It moved the evp dynamics deformation calculation to the end of the subcycling loop. It adds new features such as the saltflux_option. Testing and scripts have been updated including addition of a new variable spacing rectangular box option.
This version deprecates the zsalinity option. Please contact the CICE Consortium with any concerns regarding deprecated code. We will consider keeping it.
Important NOTES
- The C-grid implementation is available. However validation is ongoing. Some noise is generated in the solution when incremental remapping advection is used with the C-grid. One solution seems to be to use the upwind advection scheme instead which is more diffusive. The Consortium would appreciate any feedback from the community as users test the C-grid in their applications both with respect to results and possible improvements.
 - The cicecore/cicedynB directory was renamed to cicecore/cicedyn. A symlink was added to continue to support use of CICE in applications where the source code paths (including cicecore/cicedynB) are hardwired for compilation or other reasons. This symlink will be removed in the near-future. Applications are encouraged to update their scripts and start using cicedyn instead.
 
Bug fixes
- Update Icepack, with specific updates for dEdd. Fix several bugs including missing g/w0/tau calculation after "aerosol in snow" and computation of modal aerosol taer/waer/gaer which was not multiplying by nilyr and nslyr properly. Refactor computation of g/w0/tau, get rid of use of puny. Change some constants in dEdd to double precision. Update aerosol tables to double precision in CICE. THIS CHANGES ANSWERS for tr_aero and modal aerosols and could change answers for other configurations #760
 - Update Icepack with snwgrain fixes. THIS CHANGES ANSWERS for snow grain cases #797
 - Broadcast namelist variable default_season at initialization to all MPI tasks. THIS CHANGES ANSWERS for cases where default_season was not set to winter #766
 - Update computation of cdn_ocn in dynamics to use value appropriate to U, E, or N cell location THIS CHANGES ANSWERS but preserves climate #771
 
Enhancements
- Update grid averaging for tmass, aice, uvelT, and vvelT to improve results. THIS CHANGES ANSWERS but preserves climate #762
 - Move evp deformation calculation outside of subcycling loop for B grid, deformation now computed at end of subcyling loop, one subcycle later THIS CHANGES ANSWERS but preserves climate #755
 - Refactor strocnxT and strocnyT implementation #764
 - Refactor evp subcycling loop, move grid_ice check outside subcycling loop #756
 - Update dynamics initialization and other dynamics memory allocation #778
 - Update VP implementation to give bit-for-bit reproducibility with different decompositions. VP now supports use of user selected global sum algorithm. Several other minor fixes in VP to improve robustness. THIS CHANGES ANSWERS for VP dynamics but preserves climate #774
 - Add saltflux options constant and prognostic #799
 - Add time-varying wave forcing, add warning for FSD without waves, make FSD tendencies per second #775
 - Refactor ice[T,U,N,E]mask variables, add ice_HaloUpdate2DL1 #773
 - Add variable spacing rectangular grid box configurations #746
 - Update gridbox_verts call to ensure arrays are always initialized #749
 - Update debug_blocks output #750
 - Fix computation of stress12T, sig1, sig2, sigP for C-grid configuration, purely diagnostic, also fix underlying grid on history file #790 #802
 - Update Kinetic Energy diagnostic, averaging U and V to T grid, changes diagnostic output but not model results #784
 - Initialize ice_calendar nstreams variable to improve robustness #752
 - Initialize l_readCenter for all grid types to improve robustness #758
 - Update Icepack #794 #803
 - Add ability to set memory requirements for machine batch submissions settings #750
 - Refactor computation of machine pe/task/thread values to new file, setup_mach_params.csh #750
 - Update subroutine diagnostic_abort to print output for a failing point #750
 - Remove history grids not used #762
 - Correct FSD history field units #769
 - Remove f_bounds dependency on netcdf #797
 - Rename cicedynB directory to cicedyn, create a temporary symlink back to cicedynB #790
 - Finalize deprecation of 0-layer thermo and cesm ponds #787
 - Deprecate zsalinity feature #795
 - Add modal aerosol tests #760
 - Update test suite scripts and add dyneap and dynpicard tests #790
 - Refactor box test options and box tests #772
 - Fix OPENACC error in 1d evp implementation #799
 - Updated the qc testing #750
 - Updates for conformation with f2003 and f2008 #750
 - Remove trailing blanks in many files #750
 - Update cice.launch.csh script to improve robustness #776
 - Update nuopc/cmeps driver, add wave-ice coupling, async IO #782 #785
 - Update ECCC machine files #751
 - Update MacOSX conda implementation #750
 - Update port to Narwhal #776
 - Port to Gust #781
 - Add checks for source code in Github Actions, don't want tabs in source code #790
 
Documentation
CICE6.4.0
CICE6.4.0 updates CICE6.3.1 from February 2022, and includes Icepack1.3.2.
This release discretizes the dynamics equations (momentum and stress) for a C-grid.  The grid infrastructure was generalized and enhanced to allow coupling among ice, ocean and atmosphere on A- (cell centered), B- (CICE default), C- (vector components located on cell faces) and CD-grids (vectors located on cell faces; under development).  The new C-grid capability is now being tested in coupled modeling systems so that needed adjustments can be made for future releases. The modifications in this release are bit-for-bit in standalone CICE configurations but not when coupled.
This release also deprecates a few older features of the code, including the 0-layer thermodynamics and the CESM melt ponds. In this version, the code is deprecated using preprocessor flags to enable the changes to be more easily reversed, if necessary. Please contact the CICE Consortium with any concerns regarding deprecated code. We will consider keeping it.
Additional, non-bit-for-bit enhancements identified with the C-grid work will be included in the next major release, as will finalization of the deprecated code features (i.e., removal of the preprocessor flags).
Major Changes
- C-grid implementation including infrastructure support #715 #719 #726 #728 #729 #744
 - deprecate 0-layer thermodynamics #732
 - deprecate CESM ponds #733
 
Bug fixes
- None
 
Enhancements
- refine scripts #723 #731 #745
 - update machine files #725
 - update mct/cesm1 driver #726
 - add unit test for optional arguments #730
 - update Icepack #743, #748
 - update the CICE qc t-test plotting implementation #742
 
Documentation
CICE6.3.1
CICE6.3.1 is a minor update of CICE6.3.0 from September, 2021. It is released with Icepack1.3.1. This update includes several minor changes including a bug fix that led to errors in multi-processor runs with advection="none". This version also updates a few aspects of the dynamics implementation, upgrades the OpenMP performance, updates the atmbndy options associated with a change in Icepack1.3.1, and updates several other technical features.
Major Changes
- None
 
Bug fixes
- Fix multi-pe advection bug setting, advection=none was not working on multiple pes. #664
 
Enhancements
- Implementation of plastic potential for VP and EVP. #649
 - Refactor EVP and VP, express rheology term as a function of viscous coefficients, update documentation #639, #647. Note: This changes answers at roundoff level.
 - Update calls to seabed stress to improve efficiency #673
 - Deprecate gx1 CORE forcing option #643
 - Update OpenMP implementation to debug and improve performance. #680, #693. Note: May require setting "setenv OMP_STACKSIZE 64M" or similar in machine env file
 - Update PIO fill value on restart #675
 - Update namelist reading to allow namelist groups to be read in any order #671, #677
 - Update Makefile to improve dependency logic #667
 - Update Icepack #658 #691 Note: changes results when formdrag is applied and fbot_xfer_type == 'Cdn_ocn'
 - Update testing scripts #644, #658, #665, #664, #678
 - Update NUOPC/CMEPS coupling interface to add new snow features and more #668, #670
 - Update DMI coupling interface to add new snow features #641
 - Refactor/reduce calls to calc_ffrac in eap solver #638
 - Update atmbndy input to support similarity (aka default), constant, and mixed options, update documentation #633.
 - Zero out eap variables on land consistently #632
 - Update history implementation allocation checks #631
 - Port to Narwhal #678
 
Documentation
CICE6.3.0
CICE6.3.0 is a major update of CICE6.2.0 from April, 2021. This update includes a significant upgrade to the snow physics in CICE and Icepack. In addition, the 1D evp solver is now fully validated, several fixes have been made to the history files, the ice/ocean drag can be computed from the under-ice roughness, and staggered atmospheric levels are supported in coupling. By default, the new snow physics is turned off, so the default results are similar to CICE6.2.0.
Major Changes
Bug fixes
- fix single/double precision history issues in netcdf and pio2 #628
 - history time axis, time_beg and time_end values #624
 - error in QC runs related to cycling forcing data and consistency with leap years #624
 - 1x1 and 2x2 blocksize error #618
 - history and restart frequency #610
 - array bounds and decomposition errors #602
 
Enhancements
- optionally compute dragio using under-ice roughness length #612
 - support for staggered atmospheric levels #603
 - extend averaging for histfreq='1' and begin to decouple histfreq='1', histfreq_n=1, and hist_avg #624
 - update Icepack #621, #629
 - add iceruf to namelist #600
 - update drivers #593 #598 #605 #607 #611
 - improve unit testing #606, #610, #617
 - improve code coverage testing scripts #604
 - update testing scripts #610
 - improve debugging capabilities #602
 - update HYCOM forcing for new calendar #597
 - update calendar features, deprecate restart namelist #610
 - update gx1prod and add gx1prod15 production setups #629
 - machine ports #596, #617, #620
 
Documentation