Skip to content

Releases: CICE-Consortium/CICE-svn-trunk

CICE version 5.1.2

30 Jan 18:10
Compare
Choose a tag to compare

Bug fix for melt pond flushing in mushy thermodynamics:
The flushing velocity w had the wrong sign. This changes the answers.

CICE version 5.1.1

30 Jan 18:10
Compare
Choose a tag to compare

This version contains an error and should NOT be used.

CICE version 5.1

30 Jan 18:19
Compare
Choose a tag to compare

New Features in CICE 5.1

physics

  • include uice, vice in atm-ice coupling updates (e.g. stress) for high frequency coupling
  • variable coefficient for ice-ocean heat flux

new namelist options

  • ''gridcpl_file'' allows ice coupling on different grid than computation (default off with no impact)
  • ''bfbflag'' controls bit-for-bit global sums for global_sum_dbl and global_sum_prod_dbl
  • ''natmiter'' for the number of iterations used in the atmo boundary layer routine.
  • ''highfreq'' for high-frequency coupling
  • additional ''grid_type='regional' '' (for RASM)
  • ''fbot_xfer_type'' allows variable coefficient for ice-ocean heat flux
  • ''l_mpond_fresh'' turns fresh water flux from topo ponds on/off
  • ''tfrz_option'' for ocean freezing temperature
  • ''kalg'' for algae influence on delta Eddington radiation
  • ''Cf'' for frictional dissipation during mechanical deformation
  • flags for additional output in history

bug fixes

  • vertical thermo: fix error abort messages
  • BL99 thermo: base temperature convergence check on 0 rather than puny
  • mushy thermo: correct double accounting of snow ice formation in coupling variables
  • mushy thermo: correct snow ice formation energy for nslyr > 1
  • level-ice ponds: fix dhlid for surface inversions
  • level-ice ponds: remove snowinfil option (default = ON)
  • level-ice ponds: do not reset dhs when restarting
  • topo ponds: limit snow fraction based on pond fraction
  • topo ponds: use category temperatures instead of average temperature
  • topo ponds: alter lid growth calculation
    *topo ponds: set limits for pond area, depth to avoid divide-by-zero
  • topo ponds: abort if brine salinity = 0
  • delta Eddington radiation: initialize AOPs within ij loop
  • delta Eddington ponds: use consistent array indices
  • evp: update stress tensor halos on the tripole grid
  • formdrag: calculate coefficients for ice cover fraction greater than 0.001
  • formdrag: remove extra ice-area multiplicative factors
  • formdrag: do not allow ridge height to be less than freeboard, or keel depth to be less than draft
  • transport: change indices from real to integer kind
  • mechanical redistribution: correct volume of snow lost in leads for nslyr > 1
  • zbgc: rearrange namelist read commands for NAG compiler
  • OpenMP: fix OMP directives
  • history: fix sice attributes for netCDF
  • pio: now works (in CESM only)
  • spacecurve: fix decomposition
  • initialization: aggregate all tracers upon restart initialization
  • initialization: indxi, indxj in ice_ocean.F90 and ice_step.F90
  • initialization: set level ice fraction = 1 when not restarting
  • initialization: update halos before aggregating when not restarting
  • initialization: set nonzero Cdn_atm
  • initialization: supply location and type information when reading tracer restart fields
  • restarts: fix restart_dir default setting
  • array-out-of-bounds error: alter conditionals in mpi/ice_boundary.F90
  • array-out-of-bounds error: wrap eice_init in l_conservation_check conditional
  • array-out-of-bounds error: make flux_bio optional
  • array-out-of-bounds error: calculate vice_init only if l_conservation_check=T
  • divide-by-zero error: avoid compiler complaints when nblyr=0 and vertical bgc grid is not used

other software enhancements

  • more flexible mpicom setting, fully backwards compatible
  • make ''nml_filename'' size 32 chars instead of 6.
  • add tr_pond_cesm check
  • add force_restart_now flag to allow external (CESM) to force a restart as needed
  • add check in ice distribution if number of blocks is too small
  • update missing value in netcdf output
  • refactor rad_to_deg conversion in history output for consistency and parallelism
  • modify history fields setting for histfreq field, more flexible and robust.
  • modify history fields f_ checking: move away from first char ''x'' limitation, more flexible.
  • history variables are now managed internally first by stream, then by variable
  • make time2sec public in ice_calendar
  • minor fix to order of ''call calendar'' in the v4 restart file subroutine
  • make orbital variables public
  • add bit-for-bit global sums for global_sum_dbl and global_sum_prod_dbl (''bfbflag'')
  • add ''grid_type='regional' ''
  • add ''uninit'' debugging flag
  • modify some save and intent statements
  • refactor enthalpy adjustment in layers for improved efficiency
  • open binary files for direct-access reading and writing on the extended grid
  • allow topo ponds to be used without the delta Eddington radiation scheme (''heat_capacity=F, calc_Tsfc=F'')

diagnostics and documentation

  • limit redistribution diagnostics to category 1
  • save full area, volume redistribution diagnostics instead of fractions
  • add age diagnostics
  • add total number of blocks diagnostic at initialization
  • add history fields (''vsnon, alvdf, alidf, fswint_ai, keffn_top, blkmask, uatm, vatm, fsensn_ai,'' 3D and 4D dimensions)
  • add ''io_flavor'' attribute to distinguish PIO from regular netcdf output
  • more specific title in netcdf files
  • ''print_points_state'' subroutine for explicit point diagnostics only
  • add sums to min, max diagnostics
  • turn on diagnostics when reading restart files
  • add doc/PDF/CMHB_IJHPCA2014.pdf
  • update cicedoc.pdf

CHANGES SPECIFIC TO MODELING CENTERS

Hadley Centre

  • correct ORCA grid size when using restart_ext
  • add cpp wrappers
  • add specific communicators
  • keep all blocks, including all-land blocks
  • fill ghost cells of all-land blocks with special values, on the extended grid

CESM/RASM

  • ''CCSMCOUPLED'' ifdef replaces ''CCSM'' and ''SEQ_MCT''
  • add ''coszen'' restart field
  • update abort process for CESM
  • add rpointer files
  • add output file naming convention
  • multiple instance support
  • support gregorian calendar in orbital settings
  • update cesm prescribed ice
  • CESM initialization needs
  • use different value of ''isec'' for CESM
  • modify ice-atm-ocean coupling (''Uref'') for CESM
  • add ''nextsw_cday'' for CESM use
  • add driver/cesm/
  • update Macros and run file for yellowstone
  • additional ''grid_type='regional' '' for RASM
  • adjust time for year_init
  • avoid certain grid-related code for prescribed-ice mode

CICE version 5.0.4

30 Jan 18:21
Compare
Choose a tag to compare

Bug fix for mushy thermodynamics in brackish seas:
To get the initial ice salinity when new ice forms, a fixed amount of 3 ppt was subtracted from the sea surface salinity (SSS), causing negative ice salinities when SSS < 3 ppt. This fix keeps the same 3 ppt reduction in salinity for all SSS > 6 ppt, but it makes the initial sea ice salinity go to 0 continuously (and differentiably) as SSS approaches 0. We also added an arbitrary -0.1 C upper limit to the new ice temperature.

CICE version 5.0.3

30 Jan 18:22
Compare
Choose a tag to compare

Improved efficiency of writing (serial) restart files:
*allow only master_task to define a serial netcdf restart file
*remove unnecessary restart_format conditionals
*fuse master_task conditionals
*set MPI barriers for global gathers and scatters, wrapped with new cpp flag

CICE version 5.0.2

30 Jan 18:22
Compare
Choose a tag to compare

*Removed limitation to swabs for thin snow layers from cesm (old) shortwave option (return to CICE version 4.1 behavior).

CICE version 5.0.1

30 Jan 18:23
Compare
Choose a tag to compare
  • Corrections for restarts on extended grids and restart file conversions from CICE version 4.1
  • New Macro and log files for ORNL machines

CICE version 5.0

30 Jan 18:25
Compare
Choose a tag to compare

New Features in CICE 5.0

physics

  • A method for prognosing sea ice salinity, including improved snow-ice formation
  • Two new explicit melt pond parameterizations (topo and level-ice)
  • Sea ice biogeochemistry
  • Elastic-Anisotropic-Plastic rheology
  • Improved parameterization of form drag
  • The "revised EVP" under-damping approach
  • Gracefully handles the case when an internal layer melts completely

infrastructure

  • Ice and snow enthalpy defined as tracers
  • Gregorian calendar with leap years
  • Reduced memory and floating-point operations for tracer calculations
  • Restarts in binary, netCDF or PIO formats
  • CPP options for categories, layers and tracers
  • Read/write variables on the extended grid, including ghost (halo) cells

efficiency

  • Parallelism option via OpenMP threads
  • Improved parallel efficiency through halo masks and new block distributions
  • Parallel I/O option via the PIO library

miscellaneous

  • New history variables for melt ponds, ridging diagnostics, biogeochemistry and more
  • Corrected bugs, particularly for nonstandard configurations.

CICE version 4.1

30 Jan 18:28
Compare
Choose a tag to compare

Changes through revision r277

Added an alternative parameterization for ice conductivity suggested by Pringle et al. (JGR 2007) and tuned the gx1 configuration to improve the ice thickness simulation. These changes involved several parameters now in namelist, including the ice thickness above which bare ice albedo is constant, a flag for the conductivity parameterization, a parameter that determines the ridged ice thickness distribution, and the minimum friction velocity for oceanic heat flux to the underside of the ice. A manuscript submitted to Ocean Modelling entitled "Sea Ice Thickness Sensitivities" documents these changes (contact E. Hunke).

Implemented two tracers for tracking the ridged ice area and volume. The actual tracers are for level (undeformed) ice area and volume, which are much easier to implement. Ice that is not level is recognized as ridged. Both level ice and ridged ice are offered as history output.

Added a column configuration. Because of the boundary conditions and other spatial assumptions in the model, this is not a single column, but a small array of columns (minimum grid size is 5x5). However, only the single, central column is used (all other columns are designated as land).

The history module has been generalized to allow output at different frequencies. Five output frequencies ('1', 'h', 'd', 'm', 'y') are available simultaneously during a run. The same variable can be output at different frequencies (say daily and monthly) via its f_ string in namelist.
Variables with a third and/or fourth dimension (i.e., vertical; categories) are also available for output in the history files.

Reduced work and memory needed for multiple tracers. Originally the number of tracers was fixed, but in CICE version 4 some tracers may be turned off at runtime. Arrays and loops have been reduced to the size needed only for active tracers.

Added an alternative "T-fold" tripole grid option. The tripole option in CICE 4.0 is for "U-fold" grids.

Corrected bugs, particularly for nonstandard configurations (for example, nghost=2).

Except for the albedo diagnostic output, results are bit-for-bit identical to those from the previous release when using the same parameter set (conduct='MU71', ahmax=0.5, mu_rdg=4, ustar_min=0.05). Some of these parameters have changed in the new, default ice_in files (for gx1 and col configurations, not for gx3). In particular, ustar_min was much too large and has been reduced to 0.0005 m/s. Now, ahmax=0.3 m corresponds with the World Meteorological Organization's definition of white ice.

physics

  • Added tracers for tracking the ridged ice area and volume
  • Tuned the gx1 configuration to improve the ice thickness simulation (namelist parameters: conduct, ahmax, mu_rdg, ustar_min)
  • Added option for Pringle et al (2007) conductivity

infrastructure

  • Simplified and corrected some index calculations for neighbor blocks
  • Generalized indices for mapping data to ghost cells when nghost>1
  • Increment and count tracers during initialization instead of hardwiring them
  • Arrays and loops have been reduced to the size needed only for active tracers
  • Added new, alternative "T-fold" tripole grid option
  • Implemented an alternative method for averaging points along the tripole grid cut
  • Added column configuration
  • Moved several hardwired parameters into namelist

diagnostics

  • The history module has been generalized to allow output at different frequencies and for additional dimensions
  • Use 'ppt' to denote salinity units instead of 'psu'
  • Call ice_write_hist initially only if write_ic is true
  • Corrected albedo weights used in diagnostics
  • Corrected indices in diagnostic routine quasilocal_max_min

bug fixes

  • Match order of operations for derived grid quantities to prevent round-off differences along the tripole grid cut.
  • Use 0 instead of puny for conditional to load tracer array, for conservation
  • Limit call to atmospheric boundary layer calculation by icells
  • Correct calendar for 360-day years.
  • Correct field_loc and field_type in some subroutine calls
  • Declare subroutine argument ns outside of netcdf ifdef in routine icecdf
  • Remove ustar_scale
  • Remove continuation from declaration statement in ice_flux.F90

CICE version 4.0

30 Jan 18:31
Compare
Choose a tag to compare

Changes through revision r168
Arrays associated with tracers on ice and snow volume (_depend, _type) were not initialized or updated properly. In particular, init_transport needs to be called after init_state in CICE_InitMod.F90. These changes affect only the ice age tracer.

Using zero instead of puny for some volume-tracer transport calculations improves conservation and monotonicity. This changes the answers.

The variables meltb, congel, etc., have been strictly diagnostic, but now are needed for further parameterization development, such as melt ponds and biogeochemistry. They were merged within the thermodynamics module, which meant that the category values were not available. They are now available via the argument lists and merged along with all the other category fluxes. Results are bit-for-bit the same as before.

Changes to 'save' statements in ice_grid.F90 fix a case in which grid lengths were being lost in certain grid cells along the lower boundary.

In the case of closed boundaries, check blocks only along the grid edges, not in the interior. We recommend that everyone use ns_boundary_type='open' with a row of land cells along grid edges that need to be closed. The 'closed' option is intended for testing only.

Separate albedo components (ice, snow, melt ponds) have been added to the history output, along with the cosine of the zenith angle. These components were buried in the Delta Eddington code and so a number of changes had to be made to several modules.

In the Delta Eddington shortwave formulation, dx_exp should not be used (it was left over from the old "approximate exponential" lookup table's indexing method). This bug prevented most (dEdd) radiation from penetrating into the ice, and none passed through to the ocean. Now it is possible that more shortwave penetrates into an ice layer than is needed to completely melt the layer, or else it causes the computed temperature to be greater than the melting temperature, which causes the vertical thermodynamics code to abort. A limiting scheme had been implemented for this problem but was not working correctly; it has now been fixed. A parameter 'frac' sets the fraction of the ice layer than can be melted through; currently it is set to 1-puny, to minimize the limiting, but it may need to be made smaller. A minimum temperature difference for absorption of radiation is also set, currently dTemp=0.01 (K). The limiting occurs in ice_therm_vertical.F90, for both the default and Delta Eddington radiation schemes. It changes the answers in the default configuration slightly, and it is necessary for dEdd to run at all. Also in the Delta Eddington code, the "special case of night to day" limiting, left over from earlier incarnations, is no longer necessary and has been removed.

An "Interpretation of albedos" subsection has been added to the Troubleshooting section of the documentation.

Overview of file changes since r145 (initial tag)
some minor changes are not listed here

drivers/*/CICE_InitMod.F90

  • call init_transport after init_state

drivers/*/CICE_RunMod.F90

  • add albedo components (ice, snow, ponds) and counter for history output
  • use category thickness changes rather than merged quantities
  • remove melt pond temporary variables

drivers/cice4/CICE_RunMod.F90_debug

  • brought up to date

source/ice_transport_driver.F90

  • use correct dependencies for ice volume tracers (affects only ice age tracer)
  • moved diagnostic inside category loop

source/ice_transport_remap.F90

  • use c0 instead of puny for tracer calculations to improve conservation/monotonicity

source/ice_therm_vertical.F90

  • send category thickness changes in argument list rather than merging it
  • properly limit penetrating shortwave

source/ice_flux.F90

  • include thickness changes in merge_fluxes subroutine
  • add albedo components (ice, snow, ponds) and counter

source/ice_grid.F90

  • save individual variables rather than doing a catch-all save at the top of the module

source/ice_domain.F90

  • check land mask in the case of closed boundaries only along the grid edges

source/ice_shortwave.F90

  • added albedo components (ice, snow, ponds) for history output
  • use proper albedo values in constant_albedos
  • remove "special case of night to day" for dEdd
  • remove some unused variables
  • remove dx_exp everywhere that it appears

source/ice_step_mod.F90

  • add albedo components (ice, snow, ponds) for history output
  • remove "special case of night to day" for dEdd
  • change loops over max_blocks to nblocks

source/ice_history.F90 input_templates/gx1/ice_in input_templates/gx3/ice_in

  • add albedo components (ice, snow, ponds) and coszen

source/ice_dyn_evp.F90

  • use double precision special value for diagnostic principal stresses

source/ice_diagnostics.F90

  • change loops over max_blocks to nblocks
  • use latitude when locating print_points diagnostics

doc/cicedoc.pdf

  • added "Interpretation of albedos" subsection to Troubleshooting