Releases: CICE-Consortium/CICE
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
CICE6.2.0
CICE6.2.0 is a major update of CICE6.1.4 from December, 2020. It includes Icepack1.2.5. This release includes updates to the default model initial conditions, updates to the default JRA55 forcing, and an update gx1 ocean mixed layer forcing file. It also includes an update to the time manager and a tool to generate JRA55 forcing data offline. A probabilistic grounding scheme was also added to the landfast ice implementation. Several minor bug fixes were also included and the default emissivity value was changed to 0.985.
This implementation should generate the same climate as prior versions in coupled systems. However, the emissivity change should be noted in particular. In addition, there were changes to the time manager that could impact how models are coupled. In particular, the prognostic time manager variables are now myear, mmonth, mday, and msec and the timestep counter is diagnostic. These changes are documented in the user guide, https://cice-consortium-cice.readthedocs.io/en/cice6.2.0/user_guide/ug_implementation.html#time-manager-and-initialization.
The standalone model results are different from prior versions due to the new initial condition and forcing even though the climate is similar.
Major changes:
- Update the Time Manager #566, #586
- Add probabilistic grounding scheme for landfast ice #565 and update landice tests #586
- Update the gx1 initial condition file based on the JRA55 spinup to Jan 1, 2005 and update the gx1prod namelist setup #586
Bug fixes:
- Fix hmix minimum value #586
- Fix halo fill for padded blocks, fix some uninitialized data #579
- Fix reading of mixed layer ocean model dataset #578 and update gx1 SOM dataset #586
- Use cell-centered ice velocity for high frequency wind stress calculation #576
- Proper configuration of zsalinity parameterization #549
- Remove unused private variable for OpenMP #561
- Correct input slices and time interpolation of JRA forcing for multi-year runs #562
Enhancements:
- Update 1D EVP kernel #561
- Improve maxblocks internal computation and add some additional debugging checks as well as a namelist flag #587
- Add JRA55 dataset generation tool and add documentation #582
- Update Icepack to newer version #580, #590
- Change landfast ice parameter value to published value #574
- Adjust emissivity to 0.985, set default NBGCLYR=1 #553
- Add test for zsalinity parameterization #548
- Add automated Github Actions testing on Pull Requests and Pushes to master and releases #555, Update github Actions automated testing script #586
- Update color labels in test reporting script #586
- Update conda macos port #590
- Port to Compy #581
Documentation
CICE6.1.4
CICE6.1.4 is a minor update of CICE6.1.3 from August, 2020. It includes Icepack1.2.4. This release includes a new implicit solver for the VP rheology as well as a couple minor bug fixes in Icepack and in the box2001 forcing case. It also includes a couple changes to the namelists and updates to documentation.
Major changes:
- Add an implicit solver for the VP rheology based on Picard iteration. This is a significant new option for solving the dynamics. It includes several new namelist variables and is triggered by setting kdyn=3 in the CICE namelist. The implementation is documented in the user guide and in the Pull Request. This is an initial version and is still being fully validated. #491
Bug fixes:
- Update Icepack to Icepack1.2.4. This includes two bug fixes. First, an extra and slightly different value for the floeshape parameter was removed. Now floeshape is defined consistently throughout as 0.66. This will change answers slightly but only for fsd cases. Second, the convergence check of Z/L, ustar, tstar, and qstar in atmo_boundary_layer was fixed. This may change answers but shouldn't affect science. #536
- Fix an error in the masked halo update that was introduced in #491. This bug was on master only for 3 days, and it only affects padded decompositions. #517
- Fix computation of stresses used in box2001 forcing by multiplying by ice concentrations correctly. This changes answers but only for box2001 forcing cases. #525, #526
Enhancements:
- Update the verbose log output to improve formatting and fix a few issues #540
- Move sw_redist, sw_frac, sw_dtemp from the thermo to the shortwave namelist. Prior namelist files may not be backwards compatible #540
- Update the timeseries plotting scripts, timeseries.csh and timeseries.py to improve data extraction from the log file #539
- Add floediam and hfrazilmin to CICE namelist #536
- Reintroduce upwind advection. This had been deprecated a few months ago. #535
- Fix undefined tmpstr2 in ice_init #532
- Check additional return codes in the bfbcomp testing tool to improve test reporting #532
- Remove keys_ CPPs. These were being used to define the global MPI communicator inside CICE. The MPI communicator should be passed thru the init_communicate interface instead. This may affect Oasis, NEMO, and other applications. #532
- Add 4 new distinct shortwave variables in the call to scale_fluxes. #515
- Update machine ports. Add -no-wrap-margin for ECCC machines compiling with intel #522. Add machine freya #517.
Documentation
- Add porting links to the quickstart user guide #532
- Add aliases documentation to user guide #532
- Remove CPP keys_ documentation #532
- Add documentation for the implicit vp solver #491
- Fix ice strength documentation #513
- Update sphinx requirements to fix a recent change (pushed directly to the release branch)
CICE6.1.3
CICE6.1.3 is a minor update of CICE6.1.2 from June, 2020. It includes Icepack1.2.3. This and the Icepack tag fix a couple of minor bugs in the old aerosol scheme and the snow melt budget. The upwind advection scheme has been deprecrated and the shortwave redistribution has been refactored to allow redistribution in both the Bitz/Lipscomb and mushy schemes. Several other minor features were added and documentation was updated.
Major changes:
Bug fixes:
- Update Icepack which includes a snow melt bug fix (CICE-Consortium/Icepack#328) and a fix to aerosols (CICE-Consortium/Icepack#330). These fixes will probably change answers but not science. #499 #511
- Remove iblk from write statements; fix cpp NEMO_IN_CICE. This does not affect answers. #463
- OMP bug fixes. This fixes some failing BGC tests with a PGI compiler, but does not change answers. #478
Enhancements:
- Deprecate upwind advection option #508
- Fix bug in bgc initialization when starting from ice state but no bgc #507
- Generalize sw_redist implementation in Icepack (CICE-Consortium/Icepack#326), so it can be turned on with both ktherm=1 (Bitz/Lipscomb) and ktherm=2 (mushy-layer). By default, the sw_redist is now off. In the prior implementation, it was on with ktherm=1 and off with ktherm=2. This change is bit-for-bit with prior results if the namelist are set consistently. #497
- Compute and add ability to send shortwave penetration by radiation category #495, #500
- Update plots to use scientific notation #506
- Add ability to define some cice options by default using .cice_set and add some warning messages when multiple cice_setup options conflict. Change results reporting and code coverage so it clones with --depth=1 only #494
- Clean up and document C Preprocessor (CPP) flags #490, #496
- Add restart_coszen namelist to write extra field to restart files #480
- Addition of fswthru by components #479
- Add
PstarandCstarto namelist #475 #477 - Verbose diagnostic output for model configuration #468 #488, #494
- Allow for read of tlat, tlon, anglet with popgrid #463
- Optionally rotate wind/stress from to computational grid (from true north). Set via new namelist, rotate_wind, with default set to true. This default is consistent with prior implementation. #473
- Changes to the nuopc/dmi driver. Allow for coupling to both nemo and hycom in the nuopc/dmi driver #474.
- Changes to the nuopc/cmeps driver #478, #480, #500
- Update the Makefile to support compilation of CICE into a library, use of external ESMF, and DEPFILE #478
- Add MACHINFO and ENVINFO to env files #466
- Add lcov code coverage tool #467 #470
Documentation
CICE6.1.2
CICE6.1.2 is a minor update of CICE6.1.1 from March, 2020. It includes Icepack1.2.2. This and the Icepack tag include water isotopes as well as a couple of minor bug fixes that shouldn't affect science. This release updates the tx1 grid forcing dataset to JRA55, adds a couple of new namelist variables to improve model control, and contains several minor updates to scripts. Documentation has also been updated.
Major changes:
- Added water isotopes as diagnostic tracers in Icepack #423
Bug fixes:
- Set max_blocks=1 instead of 0, only problematic in some atypical decompositions #431
- Fix some general bugs in the IO implementation. These were not causing problems in standard configurations, but were detected with extended IO testing #444, #447
Enhancements:
-
Update icepack to version 1.2.2 #460
-
Update tx1 test forcing to JRA55 #435
-
Add snow conductivity (ksno) into namelist #433
-
Add precision namelist to control real and double precision history files #446
-
Add conserv_check namelist to turn on internal conservation checks. This results in an abort if the internal check does not verify #450
-
Add ustar convergence control via a new atmiter_conv namelist variable #452
-
Upgrades for data assimilation using JEDI #427
-
Update HYCOM wind file forcing notation #425
-
Add some additional namelist checks and modify namelist checks abort message #459
-
Add ability to set compile cppdefs via ICE_CPPDEFS variable in the cice.settings file #448, #460
-
Improved test reporting for suites #428
-
Add pio testing on cheyenne leveraging prebuilt pio libraries #447
-
Remove old vector directives #453 (Note that this changed answers for cray compilers)
-
Migrate input data to zenodo #424
-
Machine updates including ports to hera intel, orion intel, cheyenne pgi, and cheyenne gnu #418, #424, #432, #438, #372, #447, #449, #460, #462
Documentation
- Update namelist tables including documentation of internal code defaults #459
- Update documentation in general
CICE6.1.1
CICE6.1.1 is a minor update of CICE6.1.0 from December, 2019. It includes Icepack1.2.1. This and the Icepack tag fix a couple of bugs in the floe size distribution implementation. This release includes several enhancements including the ability to run on Mac and Linux hardware by leveraging conda to download a compiler and other software. Documentation has also been updated.
Bug fixes:
- Correct logic for floe size distribution wave_spec_type (changes answers for fsd12 option) #394
- Fix threading in macros files for some machines #396
- Change order of operations in albedo calculation for restart consistency #414, does not change answers in standard test cases
Enhancements:
- Use MPI module instead of Fortran include statement #389
- Update wave_spec_frac filename handling, namelist input now specifies path and filename #417
- Add conda environment to run on personal computers #393 #400 #402
- Update run status output based on diag_type setting #396
- Update machines/compilers for izumi #401, for cori #416
- Generalize cice.setup script to allow setup-only, setup+build, setup+build+run and setup+build+submit #395 and fix bug introduced by the upgrade #406
- Update ice_open to use 8-byte integers #410
- Update Icepack version #409, #414, #416, #417
Documentation
CICE6.1.0
CICE version 6.1.0 is released with Icepack version 1.2.0. This release includes a major new physics parameterization in Icepack, the joint thickness and floe size distribution (FSD) of L. Roach and colleagues, and a new directory structure for drivers used in host models, especially NUOPC caps.
We continue to work toward an interface for Icepack that is flexible, extensible and easy to maintain, so that future Icepack upgrades minimize the amount of changes required in host models. Toward that goal, this release includes changes to the interface that are not backwards compatible, which are detailed in the Icepack v1.2 release notes.
Major changes:
- Add the joint thickness and floe size distribution (FSD) #382
- Rearrange the driver directory to accommodate NUOPC caps #376 #377 #383
Enhancements:
- Update Icepack version #379, #387
- Update Icepack interface calls to use keywords #378
and to be consistent with recent refactoring of the interface (see Icepack #285. Icepack #289) #379, #385 - Improve automation of test reporting and Zenodo links #370
- Improve method for launching serial runs #369
Bug fixes:
CICE6.0.2
CICE version 6.0.2 is released with Icepack version 1.1.2. This is an incremental release on top of CICE6.0.1 that includes a number of enhancements as well as a new, JRA55 forcing capability.
Major changes:
- add JRA55 forcing capability #350 and add forcing data on the ftp input data site
Enhancements:
- update icepack to version 1.1.2 and update cice version number to 6.0.2 #368
- update revp #331. Change stress initialization to previous time step for revp, to be up-to-date with literature.
- update local solar time computation #323
- add method to determine model depths based on a pop grid file for fast ice #367
- code cleanup
- scripts
- build system
- update machines
- update documentation
Bug fixes:
CICE Version 6.0.1
CICE version 6.0.1 is released with Icepack version 1.1.1. This is an incremental release on top of CICE6.0.0 that includes minor enhancements as well as a new, vectorized EVP kernel and an updated implementation to generate bit-for-bit global sums in diagnostic output when running the same case on different decompositions or pe counts.
Major changes:
Enhancements:
- update grounding scheme to apply only at depths less than 30m #325
- add option to write restarts each timestep #312
- update scripts to improve robustness #311, #315
- reuse test suites #310
- improve build #307
- update documentation #271, #321, #324, #326
- machine updates #272, #280, #290, #303, #304, #309, #313, #314, #319
- make bulletin board more visible in online info #276
- commit used to test webhooks, etc #277
- add ability for user to set the test directory #281
Bug fixes:
CICE version 6.0.0
CICE version 6.0.0 is released with Icepack version 1.1.0. Icepack contains the column physics within CICE, first released as an independent software package in February 2018. Because the code refactoring associated with Icepack introduced significant differences with the previous CICE release (v5.1.2), we created an “alpha” version of CICE v6 in March 2018 while enhancements for the full v6 release were completed.
Since the v6.0.0.alpha release, we updated Icepack to version 1.1.0, implemented dynamic allocation for most arrays, enhanced all rheology options (EVP, rEVP, EAP), simplified the initialization procedure for tracers, added support for CMIP6 history output, improved the quality control and compliance tests, added new test configurations to the test suites, and automated basic testing using Travis CI. This release also includes many other improvements since version 5.1.2, most notably a new landfast-ice parameterization with tensile strength, and full vertical biogeochemistry with shortwave feedback on sea ice physics. The source code and forcing data directories have been restructured to allow extensions for other sea ice model components, and we implemented a flexible, extensible, robust interface between Icepack and the sea ice model driver. The code, scripts, development procedures and tasks/issues are documented online, and automated test reporting is available.
Major changes:
- Update icepack #163 #188 #223 #250 #262
- Add CMIP6 support #191 #195
- Add dynamic allocation #194
- Move tracer pre-processing information to namelist #196
- Add tripole grid and test #201
- Add bathymetry files for testing landfast ice #222
- Revise rEVP #229 #226
- Refactor tracer initialization to take advantage of dynamic allocation #235
- Set EVP subcycling ndte=240 (increased from 120) #250
Enhancements:
- Travis CI #111
- Enhance machine support #120 #125 #153 #220 #261
- Add queue information to scripts #143 #147
- Add version number in netcdf output #121
- Increase test coverage #129
- Implement box model tests #151 #254
- Support coupling in RASM #152 #253
- Rename some variables and subroutines #158
- Test the QC testing process #167
- Add subname to each routine, for diagnostics #173
- Move emissivity into namelist #176
- Clean up dummy and unused variables #180
- Add output variables for vector speed/direction quantities (ice, atm, ocn) #199
- Compare log files in addition to restart files for regression tests #202
- Change namelist flags, settings for consistency with Icepack #208
- Clarify test output #209
- Enhance scripts #215
- Move k1 to namelist #220
- Add HYCOM forcing for DMI #230
- Consolidate BGC namelist flags and clean up initialization #240
- Improve EAP efficiency #257
- Update documentation
Bug fixes:
- Handle effective sample size > 30 in QC script #108
- Comment out non-thread-safe threading #111
- Fix QC false failures and update per Roberts et al 2018 #145 #161
- Broadcast calendar fields #146
- Fix binary restarts #148
- Mask restoring variables by land #149
- Fix failing tests #163
- Fix units for trsig in history output #198
- Correct parameter k1 for basal grounding scheme #206
- Debug zbgc #207
- Fix threading problem for dfresh, dfsalt #228
- Fix array-out-of-bounds in EAP #257