The time_manager_nml namelist controls the timestep, the length of the current run, the method used to suppress the leapfrog computational mode, and the date on which this run-sequence began. A run-sequence consists of one or more job submissions, each of which produces a restart file that is used to begin the next job in the sequence. A run-sequence is identified by a runid that is declared in the first job of the sequence and held fixed throughout the sequence; runid is used in generating default names for the model's output files. Similarly, the start date and time for the run sequence (iyear0...,isecond0), are set in the first job and held fixed throughout the sequence. An additional variable called date_separator can be used to govern the form of the date that is appended to various output files. The date_separator is a single character used to separate yyyy, mm, and dd in a date format. A blank character is the default and is translated to no separator (yyyymmdd); a value of '-' would result in the format yyyy-mm-dd.
The timestep is defined using a combination of dt_option and dt_count. If steps_per_(day,year) is chosen, the timestep is computed such that dt_count steps are taken each day or year. If hours or seconds is chosen, the timestep is dt_count in hours or seconds (note that dt_count is an integer). If auto_dt is chosen, the timestep is automatically computed based on the grid size. The time step may be adjusted from these values to accomodate averaging time steps.
&time_manager_nml | LANL default |
CESM1 default |
Valid values |
Management of time-related quantities |
runid | must be supplied | auto-filled by CESM1 POP2 scripts | string ≤ 256 characters | alphanumeric run-sequence identifier |
stop_option | 'nstep' | 'nyear' | 'nstep', 'nday', 'nyear', 'date' | units of time for 'stop_count' |
stop_count | 20 | 1000 | integer > 0 | how long in above units to run this segment (use yyyymmdd for date) |
time_mix_opt | 'avgfit' | 'avgfit' 'avgfit' is the only option supported in CESM1 |
'avgfit', 'avgbb', 'avg', 'matsuno' | method to suppress leapfrog computational mode. |
fit_freq | 1 | 1 | integer > 0 | when using 'avgfit', the intervals per day into which full and half steps must fit |
time_mix_freq | 17 | 17 | integer > 0 | requested frequency (in steps) for taking mixing steps |
dt_option | 'auto_dt' | 'steps_per_day' | 'auto_dt', 'steps_per_day', 'steps_per_year', 'seconds', 'hours' | units for determining timestep (combined with dt_count) |
dt_count | 1 | Automatically set with resolution-dependent value: gx3: 12 gx1: 23 tx0.1v2: 300 |
integer > 0 | number of timesteps in above units to compute timestep. |
impcor | .true. | .true. | .true., .false. | if .true., the Coriolis terms treated implicitly |
laccel | .false. | .false. | .true., .false. | if .true., tracer timesteps increase with depth |
accel_file | 'unknown_accel' | auto-filled with resolution-specific filename | string ≤ 256 characters | file containing vertical profile of timestep acceleration factor |
dtuxcel | 1.0 | 1.0 | factor to multiply momentum timestep for different momentum and tracer timesteps | |
allow_leapyear | .true. | .true. | .true., .false. | use leap years in calendar |
iyear0 | [0] | auto-filled by CESM1 POP2 scripts | integer > 0 | year (yyyy) at start of full run sequence |
imonth0 | 1 | auto-filled by CESM1 POP2 scripts | integer > 0 | month at start of sequence |
iday0 | 1 | auto-filled by CESM1 POP2 scripts | integer > 0 | day at start of sequence |
ihour0 | 0 | 0 | integer > 0 | hour at start of sequence |
iminute0 | 0 | 0 | integer > 0 | minute at start of sequence |
isecond0 | 0 | 0 | integer > 0 | seconds at start of sequence |
date_separator | ' ' | '-' | single character | character to separate yyyy mm dd in date (' ' means no separator) |
/ |
In order to control a computational mode resulting from the use of a leapfrog time stepping scheme, either a time-averaging method ('avg','avgbb','avgfit') or a Matsuno ('matsuno') time step must be specified through the time_mix_opt parameter. The frequency (in time steps) for applying one of these methods is defined by the time_mix_freq parameter. If 'avg' is selected for time_mix_opt, the averaging results in only a half timestep being taken every time_mix_freq steps. This may result in a non-integral number of steps per day and will result in irregular day boundaries. If an integral number of steps per day is required, two alternative options are provided. Choosing 'avgbb' will enable always taking two half steps back-to-back, thus giving a full time step, but with increased diffusion. The 'avgfit' option will compute a number of full and half steps that will fit into a particular time interval. The time interval to be fit is governed by the 'fit_freq' parameter which sets the number of time intervals per day (1=once per day) into which the time steps must fit exactly. The Matsuno scheme does not use half steps, but Matsuno is generally more diffusive than time averaging and has been shown to be unstable in many situations.
The timestep above can be increased for tracers in the deep ocean. If such acceleration is requested (laccel = .true.), a profile of the acceleration with depth must be read from the file accel_file, an ascii file with a single column of numbers giving the acceleration factor for each vertical level. Another form of acceleration is to take a longer tracer timestep than momentum timestep. This can be specified by changing dtuxcel to a factor smaller than 1.0.