Los Alamos National Laboratory
Lab Home  |  Phone
 
 
Climate, Ocean and Sea Ice Modeling
pan ice

CICE: A Community Ice CodE

LACC-98-16

CICE

CICE is a numerical model of sea ice. It is designed to be a component of global climate models, although it can also be used in standalone mode for sea ice simulations. CICE has been developed to be compatible with the Parallel Ocean Program (POP) and the Community Climate System Model.

CICE features the energy conserving thermodynamics model of Bitz and Lipscomb (1999) with four layers of ice and one layer of snow in each of five ice thickness categories, the energy-based ridging scheme of Thorndike, et al (1975), an ice strength parameterization given by Rothrock (1975), elastic-viscous-plastic ice dynamics of Hunke and Dukowicz (1997, 2002) and horizontal advection via an incremental remapping scheme (Lipscomb and Hunke, 2004). Prognostic variables for each thickness category include ice area fraction, ice volume, ice energy in each vertical layer, snow energy, and surface temperature. A nonlinear, vertical salinity profile remains constant. The temperature dependence of the longwave radiation and sensible and latent heat fluxes is included in the nonlinear flux balance that (iteratively) determines the ice or snow surface temperature. The albedo parameterization depends on surface type (snow or bare ice), surface temperature (not just whether it is melting or frozen), and both ice and snow thickness. Ice and snow albedo values are merged based on a snow "patchiness" fraction. The ice model can accomodate 4 wavelengths of radiation and thus have 4 associated albedos; with just one wavelength available for forcing, the 4 albedos are weighted and merged into a single value. For more details, including a full set of references, see the model documentation.

Download Source Code

The CICE code is freely available under a copyright agreement. Atmospheric forcing data for 1997 are also available. These data files are designed only for testing the code and are not necessarily the best observational data. Please do not publish results based on these data sets.

CICE version 3.14 (28 MB)

1997 atmospheric data (446 MB compressed; 681 MB uncompressed)

Documentation

Download PDF documentation

Mailing List

If you would like announcements about bugs, releases and other CICE information, you can subscribe to the cice-users list. To subscribe, send an e-mail to listmanager@lanl.gov with the message "subscribe cice-users". We will have to confirm your request before you are officially added.

Release Notes

This model release is CICE version 3.14. It replaces CICE 3.1, which was released in March 2004. Although the model physics is similar to that of version 3.1, a number of changes have been made, including:

  • Substantially modified the ridging scheme in ice_mechred.F. (The name of this module was changed from ice_mechred_cice.F to agree with the CCSM file name convention.)
  • Setting krdg_partic = 1 gives a new ridging participation scheme. In the new scheme, the sharp cutoff G* is removed. Instead, ridging participation is an exponential function of G(h). This option makes the ridging scheme more stable at high resolution (~10 km with a 1-hr time step).
  • Setting krdg_redist = 1 gives a new thickness distribution of ridges. The new distribution is exponential, with an e-folding scale tuned to fit observations. This distribution agrees better with sonar observations than does the standard scheme, krdg_redist = 0.
  • Removed the namelist option 'ksmooth', which was a temporary fix pending the above modifications.
  • Ice advection, ridging and dynamics can be subcycled under the thermodynamic time step by setting ndyn_dt to an integer larger than 1.
  • Boundary updates in the dynamics module (ice_dyn_evp.F) were altered so that the code runs more efficiently. Code that explicitly flushes underflows to zero is now available (but commented out).
  • There is a new capability to simulate fresh ice. Setting the parameter 'saltmax' to 0 in ice_therm_vertical.F causes the flag 'l_brine' to be false and the ice to be fresh.
  • Added a new formula, kcatbound = 1, for computing thickness category boundaries. The new formula makes it easier to obtain boundaries that are round numbers (e.g., 60, 140, 240, and 360 cm for ncat = 5). The old formula is given by setting kcatbound = 0.
  • Modified the variable list at the beginning of ice_history.F to be more consistent with CCSM.
  • Modified diagnostic prints in ice_init.F to be more consistent with CCSM, and in particular to write the namelist variables to the log file.
  • Timers for non-MPI runs have been standardized to use the F90 intrinsic 'system_clock'.
  • Options for other atmosphere and ocean forcing data sets were added in ice_flux_in.F. New namelist variables include atm_data_type, precip_units, sss_data_type, sst_data_type, oceanmixed_file, restore_sst, and and the time scale trestore.

Other new namelist options include

  • diag_type, to specify whether diagnostic output is printed to standard out or a file,
  • history_dir, to specify a path for the history output,
  • ice_ic, to specify ice initial conditions (including no ice), and
  • dbug, to activate additional diagnostics for debugging.
  • f_aicen, f_vicen activate category output to history (replace formerly hardwired f_aice1, f_aice2, etc).

Additional changes:

  • Coupling options have been generalized. Options specific to CCSM are included with the preprocessor flags 'CCSM' and 'CCSMcoupled'.
  • Reduced memory requirements by eliminating global arrays. The only global arrays remaining are declared in ice_work.F and are allocated and deallocated during runtime.
  • Initialized a number of variables that were not previously initialized. Added subroutines init_diagnostics and init_mechred for this purpose.
  • Replaced the 'ivdep' Cray directives with 'CONCURRENT' directives.
  • Added 'save' statements to many modules.
  • Revised subroutine init_remap to make some loops vector-friendly.
  • Removed some unnecessary calls to bound_aggregate.
  • Removed subroutine normalize_state in ice_itd.F. When tiny ice areas are removed, mass and energy are now conserved by adjusting local ocean fluxes.
  • Removed subroutine cleanup_itd in ice_history.F.
  • The "gx1" grid is now available, along with an ice restart file.
  • Assorted minor code cleanup.

We have also fixed several bugs (in order of decreasing importance):

  • Corrected dimensions of indxi, indxj in ice_transport_remap.F.
  • Corrected density factor in thermodynamics (changed dqsatdt to dQsfcdT).
  • Removed emissivity from upward longwave calculation in ice_ocean.F.
  • Corrected the mass/energy conservation criterion in ice_itd.F.
  • Corrected init_flux_atm conditional to not depend on aice.
  • Corrected bug in shift_ice that allowed negative ice areas.
  • Fixed potential divide-by-zero bug in ice_itd_linear.F.
  • Corrected conditional in ice_mechred.F for rare cases.
  • Corrected 'nyr' usage and definitions of 'elapsed_months', 'elapsed_days'.
  • Changed 'daymid' from int_kind to dbl_kind in ice_flux_in.F.
  • Corrected problems that prevented ncat=1 case from compiling.
  • Changed 'nu_diag' to stdout (unit 6) for processors other than master_task.
  • Corrected type of 'spval' for netcdf.
  • Corrected bug to allow history output to be written after the first time step.

Sponsors
Related Links

Operated by Los Alamos National Security, LLC for the U.S. Department of Energy's NNSA

Inside | © Copyright 2007-8 Los Alamos National Security, LLC All rights reserved | Disclaimer/Privacy | COSIM