Ocean Initial Condition

There are four options for defining initial ocean/ice conditions for startup runs. The choices include, mean, zonal-mean, startup (default), and internal. Details on how to invoke each choice are discussed in the model build scripts section.

startup (default configuration)

Initialize with a full spatially distributed temperature/salinity dataset

If the modeler has latitude, longitude, and depth information on temperature and salinity, the ocean model can be initialized in the default configuration with a binary file at startup. This is recommended only if the modeler has this information on an appropriate grid or a grid that is close enough for interpolation. We provide a sample NCL script that will interpolate initial T/S information between two similar grids. This option will be more appropriate for near-modern cases

Zonal-mean

Initialize with a global, zonally averaged temperature/salinity distribution.

POP allows a zonally averaged temperature/salinity file to be used for initialization. This file is binary and the format can be found in the CCSM3/POP source code, subroutine initial.F

Mean

Initialize with a global, horizontally averaged temperature/salinity depth profileInitializing with a global volume averaged temperature profile is the recommended method for deep time paleo simulations. Often, very little information on deep ocean temperatures is known, so initializing with a simple depth profile is the easiest method.

POP requires this initial file to be a simple ASCII file with a temperature and salinity value for each vertical level.  See the example ASCII file in setup_tools and shown in Figure X.

Internal

Initialize with the default Levitus temperature/salinity profile.

Present day temperature and salinity profiles can be computed internally at runtime based on 1992 Levitus data. 

NOTE:  IAGE bug

  (confirmed by Keith Lindsay and Nancy Norton)

The non-standard initialization of TEMP & SALT is not compatible with CESM's restart script mechanisms. Despite CONTINUE_RUN being TRUE in env_run.xml, the model tries to initialize TEMP & SALT with the same IC as was used in the first submission. On restart, the IAGE initialization is trying to read from the same file that TEMP & SALT are being read from, but IAGE is not in that file. This leads to the problem that you are seeing.

The iage error appears to be a symptom of using 'internal' or 'mean' for init_ts_option on restarts.

The default for init_ts_option is 'ccsm_$runtype'. This gets evaluated to 'ccsm_continue' on a restart. But if init_ts_option = 'internal' or init_ts_option = 'mean', pop2 tries to continue using 'internal' or 'mean' for every submission (i.e., restart) instead of the POP2 restart files. On restart, the iage module  complains that it can't find a restart file because the model hasn't read the rpointer file, because the physics is still using internal. 

Solution A:  The workaround is to manually set init_ts_option to 'ccsm_continue' in user_nl_pop2 for continuation runs, and comment out init_ts_option = 'mean'.

    Initial submission : user_nl_pop2 setting

! Use vertical column for first submission
init_ts_option = 'mean'
init_ts_file = '/glade/p/cesm/palwg/paleo_setup/ocn/ic/ts_init_b20.681_1100-01_s_35.60level.dat'

! manually turn this on for all restarts after first submission
! init_ts_option = 'ccsm_continue'

    Restart submission : user_nl_pop2 setting

! Use vertical column for first submission
! init_ts_option = 'mean'
! init_ts_file = '/glade/p/cesm/palwg/paleo_setup/ocn/ic/ts_init_b20.681_1100-01_s_35.60level.dat'

! manually turn this on for all restarts after first submission
init_ts_option = 'ccsm_continue'

Solution B:  An  UNTESTED solution could be to add some variant of this code to the top of Buildconf/pop2.buildnml.csh: 

set init_ts_option = internal 
if ($CONTINUE_RUN == 'TRUE') set init_ts_option = continue 

Then change the init_ts_option line in the namelist to 

   init_ts_option      = '$init_ts_option'