|
|
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
|