Timestepping within the ACME v1 Atmosphere Model
There are lots of different timesteps and substepping going on in the ACME v1 model (much of which is inherited from v0). This page is an attempt to clarify what values we typically use for these substeps. Note that most of the substep values for dynamics are illustrated in this slide:
This awesome figure by Kate Evans (Unlicensed) demonstrates the timesteps used for each level of substepping in the SE dycore: | Here's a simpler/less complete version from Peter Caldwell: |
---|
This table provides the values we've been using and explanation of what each quantity means.
ne30 v0/v1 | ne30 alternative (was this ever used?) | ne30 small dtime option | ne120 before 8/10/16 | ne120 after 8/10/16 | ne120 small dtime option | Explanation | |
---|---|---|---|---|---|---|---|
dtime | 30 min | 30min | 15min | 15 min | 15 min | 450s | Timestep used for most physics processes and for coupling between physics and dynamics For se_ftype=1, physics tendencies are applied as a hard adjustment every dtime seconds. |
se_nsplit | 2 dt_remap=15m | 3 dt_remap=10m | 1 dt_remap=15m | 4 dt_remap=225s | 6* dt_remap=150 | 2 dt_remap=225s | dtime/se_nsplit = time between vertical remaps of the semi-Lagrangian vertical coordinate. For se_ftype=0, physics tendencies are "dribbled" into the dynamics every dt_remap seconds. |
se_rsplit | 3 dt_tracer=300s | 2 dt_tracer=300s | 3 dt_tracer=300s | 3 dt_tracer=75s | 2* dt_tracer=75s | 3 dt_tracer=75s | dtime/(se_nsplit*se_rsplit) = timestep used for tracer timestep For ne30, dt_tracers = 360s is probably stable, but we usually use 300s For ne120, dt_tracers = 90s is probably stable, but we usually use 75s. |
se_qsplit | 1 | 1 | 1 | 1 | 1 | 1 | dtime/(se_nsplit*se_qsplit*se_rsplit) = timestep used for dynamics calculations This should always be 1, so that dt_dyn = dt_tracers. |
hypervis_subcycle | 3 dt_vis=100s | 3 dt_vis=100s | 3 dt_vis=100s | 4 dt_vis=18.75s | 4 | 4 | dtime/(se_nsplit_se_qsplit*se_rsplit*hypervis_subcycle) = timestep used for hyperviscosity calculation |
hypervis_subcycle_q | 1 | 1 | 1 | 1 | 1 | 1 | dtime/(se_nsplit_se_qsplit*se_rsplit*hypervis_subcycle_q) = timestep used for hyperviscosity calculation in tracer advection (namelist_definition.xml indicates that only '1' is supported in CAM?) |
cld_macmic_num_steps | 6 | 6 | 3 | 3* | 3 | Number of times the code surrounding macrophysics + microphysics is subcycled. This means that dtime/cld_macmic_num_steps = timestep used for macrophysics and microphysics. | |
clubb_timestep | 300 sec | 300 sec | 300 sec | 300 sec | I'm not sure what this means or how it relates to cld_macmic_num_steps | ||
IRADSW | 2 steps | 1 hr | 4 steps (1 hr) | 4 steps (1 hr) | How frequently to compute SW radiation (in multiples of dtime). Radiation tendencies are taken from previous steps for steps when radiation is not recalculated. I think some scaling is made to account for zenith angle changes? | ||
IRADLW | 2 steps | 1 hr | 4 steps | 4 steps | How frequently to compute LW radiation (in multiples of dtime). Radiation tendencies are taken from previous steps for steps when radiation is not recalculated. | ||
*since AV1C-04 | *suggest to use |
Physics/Dynamics Coupling:
In the code as inherited from CESM there are 3 options for how physics/dynamics coupling is done:
- se_ftype=0 (default): the physics tendency is included ("dribbled in") as a constant source term in each remap timestep
- se_ftype=1: the impact of physics is applied entirely before dynamics is run (hard adjustment). In other words, dynamics sees the state after physics. This prevents conservation errors but can (if dtime is too large) pushes the model state too far away from where dynamics wants it, resulting in a shock and resulting gravity wave propagation every time dynamics is called.
- se_ftype=2: A blend of ftype=0 and ftype=1... The model state is updated to include the effect of physics on temperature and winds before dynamics is called, but the effect of other quantities is dribbled into dynamics every remap substep.
Discussions/Links Relevant to This Page:
- Discussion of the need to use more frequent vertical remap at high horizontal resolution when 72 vertical layers are used: Re: 2016-08-11 Meeting notes - general Meeting
- Discussion of the need to use ftype=0 or 2 to avoid gravity wave shocks when coupling physics and dynamics: Fixing the conservation problem in the dynamical core
- Controlling time steps in the HOMME dycore: EAM's HOMME dycore