-
Notifications
You must be signed in to change notification settings - Fork 13
Home
Resources:
The authoritative repository is located at the CICE Consortium
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
.