First run

Like many Unix programs, PISM allows a lot of command-line options. In fact, because the variety of allowed ice sheet, shelf, and glacier configurations, and included sub-models, is so large, command-line options are covered in sections Initialization and bootstrapping through Practical usage of this manual.[1] In practice one often builds scripts to run PISM with the correct options, which is what we show here. The script we use is “” in the examples/std-greenland/ subdirectory of pism/.

Note that initializing ice sheets, usually called “spin-up”, can be done by computing approximate steady states with constant boundary data, or, in some cases, by integrating paleo-climatic and long-time-scale information, also applied at the ice sheet boundary, to build a model for the present state of the ice sheet. Both of these possibilities are illustrated in the script. The spin-up stage of using an ice sheet model may actually require more processor-hours than follow-on “experiment” or “forecast” stages.

To see what can be done with the script, read the usage message it produces:


The simplest spin-up approach is to use a “constant-climate” model. We take this approach first. To see a more detailed view of the PISM command for the first run, do:

PISM_DO=echo ./ 4 const 10000 20 sia

Setting the environment variable PISM_DO in this way tells just to print out the commands it is about to run instead of executing them. The “proposed” run looks like this:

mpiexec -n 4 pismr \
  -i -bootstrap -Mx 76 -My 141 \
  -Mz 101 -Mbz 11 -z_spacing equal -Lz 4000 -Lbz 2000 -skip -skip_max 10 \
  -grid.recompute_longitude_and_latitude false -periodicity none -ys -10000 -ye 0 \
  -surface given -surface_given_file \
  -calving ocean_kill -ocean_kill_file \
  -sia_e 3.0 \
  -ts_file -ts_times -10000:yearly:0 \
  -extra_file -extra_times -10000:100:0 \
  -extra_vars diffusivity,temppabase,tempicethk_basal,bmelt,tillwat,velsurf_mag,mask,thk,topg,usurf \

Let’s briefly deconstruct this run.

At the front is “mpiexec -n 4 pismr”. This means that the PISM executable pismr is run in parallel using four processes (usually one per CPU core) under the Message Passing Interface. Though we are assuming you have a workstation or laptop with at least 4 cores, this example will work with 1 to about 50 processors, with reasonably good scaling in speed. Scaling can be good with more processors if we run at higher spatial resolution [22], [117]. The executable name “pismr” stands for the standard “run” mode of PISM (in contrast to specialized modes described later in sections Verification and Simplified geometry experiments).

Next, the proposed run uses option -bootstrap to start the run by “bootstrapping.” This term describes the creation, by heuristics and highly-simplified models, of the mathematical initial conditions required for a deterministic, time-dependent ice dynamics model. Then the options describe a \(76 \times 141\) point grid in the horizontal, which gives 20 km grid spacing in both directions. Then there are choices about the vertical extent and resolution of the computational grid; more on those later. After that we see a description of the time axis, with a start and end time given: “-ys -10000 -ye 0”.

Then we get the instructions that tell PISM to read the upper surface boundary conditions (i.e. climate) from a file: “-surface given -surface_given_file”. For more on these choices, see subsection Climate inputs, and their interface with ice dynamics, and also the Climate Forcing Manual.

Then there are a couple of options related to ice dynamics. First is a minimal calving model which removes ice at the calving front location given by a thickness field in the input file (“-calving ocean_kill”); see section Calving for this and other calving options). Then there is a setting for enhanced ice softness (“-sia_e 3.0”). See section Ice rheology for more on this enhancement parameter, which we also return to later in section An ice dynamics parameter study.

Then there are longish options describing the fields we want as output, including scalar time series (“-ts_file -ts_times -10000:yearly:0”; see section Practical usage) and space-dependent fields (“-extra_file ...”; again see section Practical usage), and finally the named output file (“-o”).

Note that the modeling choices here are reasonable, but they are not the only way to do it! The user is encouraged to experiment; that is the point of a model.

Now let’s actually get the run going:

./ 4 const 10000 20 sia &> out.g20km_10ka &

The terminating “&”, which is optional, asks the system to run the command in the background so we can keep working in the current shell. Because we have re-directed the text output (“&> out.g20km_10ka”), PISM will show what it is doing in the text file out.g20km_10ka. Using less is a good way to watch such a growing text-output file. This run should take around 20 minutes.


[1]Moreover, every configuration parameter can be set using a command-line option with the same name.

Previous Up Next