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:


Substeps Used within the ACME model:

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/16ne120 after 8/10/16

ne120

small dtime option

Explanation
dtime30 min30min15min15 min15 min450s

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_nsplit2 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

11

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

44dtime/(se_nsplit_se_qsplit*se_rsplit*hypervis_subcycle) = timestep used for hyperviscosity calculation
hypervis_subcycle_q111111dtime/(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_steps66

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_timestep300 sec
300 sec300 sec300 sec
I'm not sure what this means or how it relates to cld_macmic_num_steps
IRADSW2 steps
1 hr4 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?
IRADLW2 steps
1 hr4 steps4 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: