Understanding adaptive time-stepping

At each time step the PISM standard output includes “flags” and then a summary of the model state using a few numbers. A typical example is

v$Eh  diffusivity (dt=0.83945 in 2 substeps; av dt_sub_mass_cont=0.41972)
S -124791.571:  3.11640   2.25720      3.62041    18099.93737
y  SSA:     3 outer iterations, ~17.0 KSP iterations each

The characters “v$Eh” at the beginning of the flags line, the first line in the above example, give a very terse description of which physical processes were modeled in that time step. Here “v” means that a stress balance was solved to compute the velocity. Then the enthalpy was updated (“E”) and the ice thickness and surface elevation were updated (“h”). The rest of the flags line looks like

diffusivity (dt=0.83945 in 2 substeps; av dt_sub_mass_cont=0.41972)

Recall that the PISM time step is determined by an adaptive mechanism. Stable mass conservation and conservation of energy solutions require such an adaptive time-stepping scheme [26]. The first character we see here, namely “diffusivity”, is the adaptive-timestepping “reason” flag. See Table 37. We also see that there was a major time step of \(0.83945\) model years divided into \(2\) substeps of about \(0.42\) years. The -skip option enables this mechanism, while -skip_max sets the maximum number of such substeps. The adaptive mechanism may choose to take fewer substeps than -skip_max so as to satisfy certain numerical stability criteria, however.

The second line in the above, the line which starts with “S”, is the summary. Its format, and the units for these numbers, is simple and is given by a couple of lines printed near the beginning of the standard output for the run:

P       YEAR:       ivol      iarea  max_diffusivity  max_hor_vel
U      years   10^6_km^3  10^6_km^2         m^2 s^-1       m/year

That is, in each summary we have the total ice volume, total ice area, maximum diffusivity (of the SIA mass conservation equation), and maximum horizontal velocity (i.e. \(\max(\max(|u|), \max(|v|))\)).

The third line of the above example shows that the SSA stress balance was solved. Information on the number of nonlinear (outer) and linear (inner) iterations is provided [25].

Table 37 Meaning of the adaptive time-stepping “reason” flag in the standard output flag line.

PISM output

Active adaptive constraint or PISM sub-system that limited time-step size


three-dimensional CFL for temperature/age advection [26]


diffusivity for SIA mass conservation [26], [106]

end of the run

end of prescribed run time


maximum allowed \(\Delta t\) applies; set with -max_dt

internal (derived class)

maximum \(\Delta t\) was temporarily set by a derived class


2D CFL for mass conservation in SSA regions (upwinded; [25])

-ts_... reporting

the -ts_times option and the configuration flag time_stepping.hit_ts_times; see section Saving time series of scalar diagnostic quantities

-extra_... reporting

the -extra_times option; see section Saving time series of spatially-varying diagnostic quantities


a surface or an atmosphere model


an ocean model


a hydrology model stability criterion, see section Subglacial hydrology


time-the bedrock thermal layer model, see section Modeling conservation of energy


the eigen-calving model, see section Calving and front retreat

Table 38 Options controlling time-stepping




Adaptive time stepping ratio for the explicit scheme for the mass balance equation.

-max_dt (years)

The maximum time-step in years. The adaptive time-stepping scheme will make the time-step shorter than this as needed for stability, but not longer.


Enables time-step skipping, see below.


Number of mass-balance steps, including SIA diffusivity updates, to perform before temperature, age, and SSA stress balance computations are done. This is only effective if the time step is being limited by the diffusivity time step restriction associated to mass continuity using the SIA. The maximum recommended value for -skip_max is, unfortunately, dependent on the context. The temperature field should be updated when the surface changes significantly, and likewise the basal sliding velocity if it comes (as it should) from the SSA calculation.

-timestep_hit_multiples (years)

Hit multiples of the number of model years specified. For example, if stability criteria require a time-step of 11 years and the -timestep_hit_multiples 3 option is set, PISM will take a 9 model year long time step. This can be useful to enforce consistent sampling of periodic climate data.

Previous Up Next