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