Skip to content
Denise Worthen edited this page Sep 2, 2020 · 12 revisions

Resources:

The authoritative repository is located at the CICE Consortium

Documentation

Wiki

Namelist:

The CICE6 ice_in_template located in the ufs-s2s-model repository parm subdirectory should be used as the base namelist (note: until CICE6 is committed to UFS-S2S, the cice6 namelist can be found here). Note the CICE6 namelist includes a new icefields namelist for the floe-size distribution icefields_fsd_nml.

Values in the ice_in_template are set using values in default_vars or within the individual test (in tests/tests/test.IN file) if non-default values are desired. The values which have optional settings in the regression test scripts are:

year_init      = YEAR_INIT
istep0         = ISTEP0
dt             = DT_CICE
runtype        = 'RUNTYPE'
runid          = 'RUNID'
restart_ext    = RESTART_EXT
use_restart_time = USE_RESTART_TIME
dumpfreq       = 'DUMPFREQ'
dumpfreq_n     = DUMPFREQ_N
hist_avg       = CICE_HIST_AVG
grid_file    = 'CICEGRID'
kmt_file     = 'CICEMASK'
update_ocn_f    = FRAZIL_FWSALT

There is a new setting in forcing_nml used for specifying whether the coszen of the zenith angle is read from the restart file:

restart_coszen = .true.

and in dynamics_nml, there is a new setting:

ssh_stress      = 'coupled'

Decomposition:

In CICE6, model run-time resources can be set at run time. Dave Bailey at NCAR has provided the following useful information.

The main settings in the domain_nml used to set the run-time resources are:

block_size_x (number of grid cells per block in the x-direction)
block_size_y (number of grid cells per block in the y-direction)
max_blocks (number of blocks per processor maximum)
distribution_type (how the blocks are laid out on the processors)
processor_shape (what the approximate shape of each block looks like)

While CICE does not necessarily need to have the same number of blocks as processors, this is usually a good rule of thumb. When you get up into higher processor counts, the 'spacecurve' or 'sectrobin' distribution_type with smaller square shaped blocks can be used. Also, as you go up in processors it might also be useful to have OpenMP threading. In this case you would have more than one block per processor and max_blocks would need to be increased.

More information about decomposition choices and performance can be found in the CICE documentation.

For the regresson tests, the following settings in domain_nml are used:

processor_shape   = 'slenderX2'
nprocs            = NPROC_ICE
nx_global         = NX_GLB
ny_global         = NY_GLB
block_size_x      = BLCKX
block_size_y      = BLCKY
max_blocks        = -1

Where for NPROC_ICE (the number of TASKS assinged to ice),

BLCKX=NX_GLB/(NPROC_ICE/2)
BLCKY=NY_GLB/2

and NX_GLB and NY_GLB are the domain size in the x and y directions. These values are set in default_vars (or the individual tests/tests test.IN file) and substituted into the actual namelist during in edit_inputs.

Clone this wiki locally