Next: Grid and bottom-topography definition Up: Operational control Previous: Input/Output   Contents


Time management

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.


Table: Time manager namelist
&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.



Next: Grid and bottom-topography definition Up: Operational control Previous: Input/Output   Contents

2010-03-31