Savanna - Landscape and Regional Ecosystem Model User Guide

Savanna - Landscape and Regional Ecosystem Model
User Guide
Michael B. Coughenour
and
Daniel C. McNulty-Huffman
Natural Resource Ecology Laboratory
Colorado State University
Ft. Collins, Colorado 80523 USA
Table of Contents
List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iv
List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iv
Part I. Using the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Model Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Changing Parameter Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Changing the Time Frame of a Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Changing the Spatial Extent of a Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Controlling Model Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Changing the Weather Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Stochastic Weather . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Managing Ungulates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Imposing a Fire Regime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specifying Plant Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specifying Soil Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A Model Parameterization Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
1
1
1
2
3
3
3
5
5
7
7
Section II. Model Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Parameter and Data File Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Parameter Files - Functional Grouping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Run Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Climate Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Snow Submodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Soil Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Primary Production Submodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Plant Population Submodels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Plant Fire Responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Ungulate Submodels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Spatial Input Data (Maps) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Subarea Cover Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Elevation Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Soils Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Tree Canopy Cover Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Shrub Canopy Cover Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Tree Height Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Shrub Height Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Tree Species Composition Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Vegetation Type Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Herbaceous Root Biomass Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
ii
Fire Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Maps That Affect Ungulate Spatial Distributions . . . . . . . . . . . . . . . . . . . . 18
Monthly Precipitation Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Section III. Model Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Output Summarized by Output File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Biom1.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Biom2.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pptsnw.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tree1.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tree2.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Shrub1.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Shrub2.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Consum.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diag1.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diag2.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diag3.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diag4.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diag5.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pop.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bdrate.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diagpop.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wolf.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Report.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reportc.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Image.img . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Graphical Output Tools and Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Temporal Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Spatial Output via GIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Quick Spatial Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
19
19
19
19
20
20
20
21
21
21
22
22
22
23
23
23
24
24
24
24
25
25
26
26
26
26
Section IV. Procedural Organization of the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Section V. Subroutines and Their Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Subroutine Name and Function List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
iii
List of Figures
Figure 1. Program Procedure Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Figure 2. Tree diagram of the Savanna model code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Figure 3. Tree diagram for subroutine SVLAND. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
List of Tables
Table 1. Calling routines for parameter files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Table 2. Parameter file list. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
iv
Part I. Using the Model
Model Execution
The executable file will have a .exe file name extension. The model is run by entering
the name of the executable file at the prompt. All of the required parameter files, data files
and map files must be located in the current directory. As the simulation proceeds, the
month, year, and total number of elapsed months are displayed on the screen.
Changing Parameter Values
Parameters for the Savanna model are distributed among many input files. In general,
parameters files correspond to specific submodels or a specific instances of a submodel. For
example, the net primary production submodel has a parameter file for each plant species or
functional group. Parameter files are simply ascii text files and they may be edited using any
text editor. Parameter files have a .prm file name extension.
Changing the Time Frame of a Simulation
The parameter file simcon.prm contains the parameters which control the length of
the simulation. On the thirteenth line is the starting month, ending month and starting year.
The ending month is the total number of months that will be simulated, less the starting
month. The starting month must be in the range 1-12. The first year of a simulation should
correspond to the first year on the ascii weather file, and the first year on the ungulate
population file, if one is used.
Changing the Spatial Extent of a Simulation
The parameter file spacedat.prm contains the parameters which define the spatial
structure of a run. The number of rows and columns in the study area are specified on the
first line of the file. These must correspond to the dimensions of the input raster (grid-cell)
maps. On the second line, a block of contiguous grid cells can be specified by its starting and
ending rows and columns. To simulate a single grid-cell, set the starting and ending rows
both equal to the row number of the single cell, and likewise set the starting and ending
columns equal to the column number of the single cell. In the model, row 1 is the bottom
row, so the cell at row 0 column 0 is the lower left corner cell as in a cartesian coordinate
system.
The numbers of subareas and facets is also defined here, but these are not altered once
the model is configured for a particular location. The model is currently hard-coded so that
facet 1 is herbaceous, 2 is woody (trees), 3 is overstory shrubs.
1
Controlling Model Output
The file simcon.prm contains parameters for controlling the time interval between
writes to output files.
The .out output files provide monthly outputs if the value of dtpmon is set to 1.
Output is bimonthly if dtpmon is set to 2, outputs are annual if dtpmon is set to 12, and so
on.
The report.out file is a detailed summary of one to several grid cells (normally one).
The yearly interval for producing report.out output is given by dtprn, on the parameter file
simcon.prm. Within each of the years when there is output, there is output on months flagged
with 1's in the maccum parameter array (an array of twelve integers). Normally, report output
should be annual, on one month per year. Accumulators are also reset on the months flagged
on maccum. Thus, the accumulators (eg. total NPP) on the report.out file will be cumulative
since the last output. The number of locations (grid cells) and the row and column numbers
of each of the cells that is to be reported upon are specified on the last two lines on
simcom.prm.
Map output is also controlled by parameters on simcon.prm. The parameter imagsv
flags map output on (1) or off (0). Normally, output is a map of mean grid-cell variable
values rather than values for individual facets (ie. it is a space-weighted average of individual
facet values). To save grid-cell scale output, set nfout and nsout to zero. Otherwise, a specific
facet on a specific subarea can be specified by their corresponding indices in nfout and nsout,
respectively. Map (image) output can be saved monthly, or on intermittent months as flagged
on imagmon, an array of 12 integer values. For example to save values at peak summer
biomass and in the dead of winter, one would flag months one and seven.
Diagnostic output for primary production for a single plant type, and water budgets
on a single facet of a single grid cell are written to diag*.out files. The exact facet location is
specified by parameters on simcon.prm. The grid cell row and column, facet and subarea
indices are given by nrdiag,ncdiag,nfdiag,nsdiag. The corresponding names of the subareas
and facets should appear on the spacedat.prm file. The plant type or species index is
specified by nspdiag. This is not the index of the plant species as suggested by its order on
the plfile.prm file. It is the index of the plant species or type in a mixture of plants on a facet,
as specified on the sppmix.prm file. If in doubt, the diagnostic species name is written to the
screen at the end of the run.
Diagnostic output for a single ungulate species is written to diagpop.out. The species
is specified on the parameter file popprm.prm. The index of the species corresponds to its
order on the parameter file.
Changing the Weather Data
The names of weather data files used by the simulation are specified on simcon.prm.
The parameter iwthr on simcon.prm is an option flag that controls the source of precipitation
data. If iwthr is 1, then precipitation is read from a binary precipitation map file. If iwthr is 2,
then precipitation data are read from th main base station weather file, which contains
monthly precipitation and temperatures. Then precipitation is spatially uniform. If iwthr is 3,
2
then the main base precipitation data are used, but spatially patterned according to data on
the binary precipitation map file.
If iwthr is 4, then elevation corrected spatial interpolation is used to calculate
precipitation in each grid cell. Then a site precipitation file is used, which contains
precipitation data for two or more weather stations. The base station data file contains the
spatial coordinates and elevations of the weather stations.
Temperature data always come from the main base station weather file, however this
data is adjusted for elevation using the lapse rates on the weather.prm file. Mean monthly
humidity, daylength, solar radiation are also specified on the file weather.prm.
Using Stochastic Weather
Stochastic weather is generated by flagging the value of iranw to 1 on the simcon.prm
parameter file. When this flag is switched on (set to 1), weather years are randomly picked
from the main base station weather file, (and the binary precipitation map file if iwthr is set
to 1). If there is a single year on the file, presumably the mean year, this year will be used
repeatedly. Normal variation is added to the mean, as specified by the coefficients of
variation for rainfall and temperature on the parameter file weather.prm. The number of
years on the main base station weather file that is specified on simcon.prm file is used in the
randomization process.
Managing Ungulates
The ungulate population submodel may be switched on or off by the flag ihmodl (0off, 1-on) on the second line of the simcon.prm parameter file. If the population submodel is
on, then all the animal species specified on the popprm.prm, distc.prm and cons.prm
parameter files will be simulated. Initial population densities are given on the file
popprm.prm.
Note, there is a parameter called mstrtp on the simcon.prm file that specifies the first
month into the simulation to begin simulating ungulate populations. This is needed because
when the simulation is first started, live and dead leaf biomasses are initialized to zero.
Therefore, ungulates will respond unrealistically until the first forage is produced. Set the
mstrtp parameter to the first month when an acceptable forage standing crop is expected (eg.
month 5 in a temperate system). The model is initalized with zero forage mass due to the
difficulty of reading in maps of initial values for each and every forage variable (green, dead,
stems, CAG, for all species) on all of the facets.
If the ungulate population submodel is switched off, and the number of ungulate
species is greater than zero as specified by nspcon on the same line of simcon.prm, then the
model will use ungulate population dynamics data from a data file. The name of the file with
that data is specified on the second line of the parameter file distc.prm. The model will
simulate herbivory and ungulate energy balances, but total offtake will be dependent on the
number of animals on the population data file.
Additionally, if ihmodl is set to 2, the population model will run, but predicted results
for one or more species will be overridden. If the data override feature is on, then the data on
3
the population dynamics data file for selected species will override model predictions. The
parameter ipopfix on the simcon.prm file specifies which species predictions will be
overridden. This is useful, for example, when during model calibation, when working on one
species in an environment where the other species have not yet been calibrated, or for
perturbation experiments.
Ungulate population data files are structured as follows. Each line contains one year
of data, with values for each ungulate species read across. The format is not fixed so the
number of spaces is not important.
Culling can be invoked in one of two ways. The first method is to specify numbers of
animals removed each year. If the parameter icull is set to 1, annual cull data will be read
from a file called cullden.dat, which contains culling data in density units (animals/km2). If
icull is set to 2, the data will be read from a file called cullrt.dat, which is file of annual
culling rates (ie. proportions of the herd culled). Each line on these files gives a year and a
list of numbers of animals, culled for each species.
The second method is to use a culling rule specified on the file cull.prm. This method
is used if icull is set to 3. Every year, on month moncull, populations are reduced to the
specified densities cden (by species). In addition the model will attempt to manage herd
composition to achieve the proportions specified by the parameter prsz, for each species. The
prsz array contains desired proportions of newborns, immature females and males, and
mature females and males, in that order.
Forced ungulate distributions can be simulated using "force" maps. If the flag for
using force maps on the third line of the distc.prm parameter file is on, then file force.prm
will be opened. The file force.prm contains a list of force map file names for controlling
ungulate distributions. For each ungulate species, 1-3 force maps can be employed. Each
force map is in effect on the flagged months on the force.prm file. Each force map has its
own list of flagged months. For example, bison could be confined to a wintering paddock
during the month of January by flagging month 1 only. The corresponding force map will
have 0 values on grid cells outside the paddock and 1's elsewhere. Using this technique,
animals could also be rotated among paddocks on a fixed schedule, using a separate force
map for each paddock.
There is also an option on the force.prm file to use force maps having values ranging
from 0-100. Then, the values are used as weighting factors in determining habitat suitability.
For example, relatively more animals will be placed in cells having a value of 100, than 50.
Imposing a Fire Regime
Savanna does not simulate fire spread or behavior. Instead, fire severity maps
(generated from data or from a model) must be provided as model input. To impose fire, set
the flag ifiref on the sixth line of the simcon.prm parameter file equal to 1. Then, the data file
fires.dat is opened and the date and name of the first fire map is read. If the date of the first
fire precedes the first year and month of the simulation, the model will read down to the first
scheduled fire. When the simulated time reaches the scheduled fire date, fire maps will be
read for each subarea.
4
The file fires.dat is a list of all scheduled fires, their year and month of occurrence,
and the names of the corresponding fire severity maps. Fire maps must be provided for each
subarea, however, the same map can be used for many subareas. For example, fires might be
routinely more severe in runon areas than runoff areas. If fire severity does not differ among
subareas, then the same fire map is specified for each subarea.
The fire map is a map of fire severity codes. At present, three severity levels are
allowed (eg. none=0, light=1, severe=2). Each level elicits plant responses as parameterized
on the file fireresp.prm.
Specifying Plant Composition
There are two ways to prescribe which plant types occur on which facets/subareas.
First, if the parameter icinit is set to 1 on the sppmix.prm file, then specific species mixtures
of plants will be assigned to each facet type in all grid cells. Mixtures are simple species
lists, not proportions. For example, on the tree facet of upland subareas in every grid cell,
there could be a deciduous tree, an evergreen tree, an understory shrub and a shade-tolerant
herbaceous plant. These are the plants that potentially occur on that facet. Whether or not
they actually occur is a simulated outcome of the model. The second way is to use a
vegetation type map, if icinit is set to 2. Then, species mixtures will be assigned to each facet
according to the vegetation type of the grid cell. A lookup table ( file vegfacet.dat) specifies
the potential species mixtures for each facet of each vegetation type.
The plant types that are included in each species mixture are specified on the
parameter file sppmix.prm. Each mixture is described by the number of herb, shrub, and tree
species it contains. The indices of the plant type that compose the mixture are specified.
These plant type indices correspond to the order of plant types on the file plfile.prm, which is
a list of NPP model parameter file names.
In early versions of the model, the shrub population, tree population and NPP
submodels were more or less independent. To reduce memory requirements, the number of
shrub and tree types in the shrub and tree population models were limited to the maximum
number of shrubs and trees types in the ecosystem. As a result, the NPP, shrub population
and tree population models currently use different indices to point to the same plant species.
Although this will be rectified in future versions of the model, the current version requires
some means to align indices in the three models. The plant type indices of the NPP model
(all herbs, shrubs, trees) correspond to the ordering of plant types on the file plfile.prm. The
plant type indices of the shrub population model correspond to the ordering of plant types on
the file shbfile.prm. The plant type indices of the tree population model correspond to the
ordering of plant types on the file treecon.prm.
On the sixth and seventh lines of the sppmix.prm file, are parameter arrays that point
to the indices in the NPP model which correspond to indices in the shrub and tree population
models. Conversely, on the ninth line is a parameter array that points to the indices in the
shrub model which correspond to indices in the NPP model, and on the eleventh line is a
parameter array which points to the indices in the tree model which correspond to indices in
the NPP model.
5
So far, we have only specified which plant types occur on which facets. We have not
specified their proportions. The initial proportions of herbaceous species in each facet
mixture are specified on the file hrbfile.prm. This file either contains a list of file names for
herb root biomass on each facet, followed by proportional composition of that root biomass
into plant types, or it contains a list of total initial root biomass for each facet type, followed
by the proportional composition of the root biomass into plant types.
The initial proportions of shrub species are specified on the file shfile.prm. This file
either contains a list of file names for shrub height maps on each facet, followed by the
proportional composition of the corresponding root biomass into shrub types, or it contains a
list of shrub heights for each facet type, followed by the proportional composition of the
corresponding root biomass into shrub types.
The initial proportions of tree species are specified on map inputs. The file trspfil.prm
is a list of file names for the maps of percentage composition (percent of total tree canopy
cover) of each tree type on each subarea. There must be one map for every tree type on every
subarea. For example, if there is a runoff and runon subarea, and there are coniferous and
deciduous tree types in the system, then there must be four maps, for the percentage of each
tree type on each subarea. Trees must also be distributed among the six size classes. Rather
than reading in a map for each size class, the model uses mean tree height as an indicator of
the distribution of heights among size classes. The file trhtfil.prm contains the file names of
mean tree height maps for each class of subarea. In addition, trhtfil.prm contains a list of
parameter arrays that describe the proportional distribution of trees among size classes in
relationship to the mean tree height.
In summary, total herb and shrub biomass densities are either specified by typical
values for each class of facet, or they are specified on maps of root biomass or shrub heights
for each class of facet. Herb and shrub compositions are specified by facet type. Tree
composition is specified by percentage-of-canopy-cover composition maps for each tree
type. Tree biomass density is an outcome of total tree canopy cover, the composition of that
cover by tree type, the mean tree height, and the distribution of plants among size classes for
each of six mean tree heights.
Specifying Soil Properties
The parameter file soil.prm is essentially a lookup table specifying soil properties for
each soil type on the soils maps. Each line on the file is a list of parameters for a single soil
type. Across each row, are the following parameters: soil type index, depth of bottom layer
(cm), volumetric field capacity, volumetric wilting point, volumetric pore space, minimum
runoff curve number, maximum runoff curve number, bare soil evaporation parameter, bare
soil evaporation depth (mm), depth of bottom of top layer, depth of bottom of second layer
(cm), fraction of infiltration routed to layer two by crack flow, fraction of infiltration routed
to layer 3 from layer 2 by crack flow.
A Model Parameterization Strategy
6
The key to model parameterization and calibration is an incremental or iterative
approach. Ideally, process models should be parameterizable based on current knowledge.
However, this is an ideal. Modeling and model parameterization are processes in which gaps
in knowledge are identified. Model parameterization may, in fact, be a long-term process of
parameter refinement. Model parameterization for a site might follow these basic steps.
1. Prepare an ascii weather file and spatial precipitation map file if it is used.
2. Refine the weather parameters in the weather.prm file.
3. Define the spatial extent and grid-cell size of the system.
4. Define the subareas and facets in the system. Function differences among these
patch types should be significant at the ecosystem level of organization. (The model is
currently limited to herbaceous, woody and shrub facets in that order).
5. Identify plant functional groups or species that confer functionally significant
properties at the ecosystem level of organization.
6. Ascribe potential occurrence of plant functional types to particular landscape facets
classes (file sppmix.prm).
6. Prepare maps for model input - eg. subarea maps, soils maps, tree and shrub cover
maps, tree and shrub height maps, elevation map, tree composition maps.
7. Estimate initial parameter values based on best available information. Although
these values may seem like good estimates, any parameter estimate is subject to error. Thus,
an iterative process of parameter refinement is essential.
8. Use working copies of plant parameter (NPP and population models) files as initial
approximations or templates. While many of these parameters will be incorrect, they will at
least be useful as a template for identifying what parameters are needed, and typical values
for the parameters. They also provide reasonable values for parameters where there is little
information.
9. Turn off the ungulate and wolf models.
10. Try to simulate a single grid-cell.
11. Begin a detailed diagnostic examination of each plant species on each facet in the
model. Set the diagnostic facet and subarea, and the diagnostic plant species on the
simcon.prm file. Begin an iterative process; run the model, refine parameter estimates, rerun
the model and examine model predictions. Simulate a single year to begin with. Leave alone
parameter values which have a high degree of confidence. Concentrate on refining parameter
estimates with a low degree of confidence. Do this for each plant type on each facet until
each species on each facet behaves in a realistic manner.
12. Incrementally substitute parameter values. Fill in parameter values on the working
parameter files with best estimates. Change one or several parameter values at a time, rerun
the model to ensure that the new values are at least workable, then change several more
parameter values and repeat the process until an initial set of revised parameter files is
produced.
13. Simulate other single grid-cells to ensure that the model produces reasonable
predictions across a wider range of soil types and climatic variation.
14. Simulate larger systems, with more grid cells. Pay increased attention to system
level outputs.
7
15. Once the vegetation submodels are working, begin to calibrate the ungulate
submodels. Again, use working parameter files as templates.
16. Turn on and calibrate the wolf (predation) submodel.
17. Continue to compare model predictions to observations and refine parameter
estimates.
8
Section II. Model Inputs
Parameter and Data File Formats
Parameter files are structured to match the order of parameter read statements in the
model source code. The order of lines on a parameter file is therefore critical.
On each line of a parameter file, except for the soil.prm file, there is a parameter
value followed by a slash, the parameter name and a comment describing the parameter.
Everything to the right of the slash is ignored by the program - it is only to make the
parameter files more readable.
Parameter files may be edited by any word processor or text editor. However
precautions must be taken to ensure that carriage returns are not inserted onto the ends of
lines automatically. Many of the parameter file lines are quite long due to the comment. Set
a long line length or use a small font size when using such word processors.
Since most all of the parameter files are commented, there is little need to discuss
exact parameter file contents or structure here. The format of each parameter file can be
examined directly by looking at known working copies. If there is a doubt about the ordering
of parameters on a file, the code must be consulted. The ordering of "read" statements in the
model code can generally by followed even by non-programmers. However, it should be
noted that some parameter files are organized into blocks of parameter lines for each plant or
ungulate species. For example, there may be a block of parameters for plant species 1,
followed by a block of parameters for plant species 2 and so on. These blocks should be
discernable on working parameter files. A list of calling routines for each parameter file is
provided in Table 1.
Parameters may be composed of one to many numeric values, delimited by commas.
Parameter digits, decimals and commas can be in any column, ie. the model uses listdirected, unformatted reads. Some parameters are names, ie. ascii strings. In some cases the
name must be enclosed in single quotes (refer to a working file).
In the documentation, most of the functions are parameterized as a series of connected
straight line segments. Then parameters are arrays having several x-y pairs of elements to be
used in linear interpolation by the alint function. The alint function linearly interpolates
between points on a graph. The x,y coordinates for the points are the elements of the
parameter array. The ordering of the elements is: x(1),y(1),x(2),y(2),...x(n),y(n). The number
of x,y pairs is fixed. If there are n x,y pairs (four values) on a known working parameter file,
then this means that the model assumes that there will be n x,y pairs on the file. More or
fewer values will produce serious errors. A second rule is that the x values must be in
ascending order. Thirdly, the alint function does not extrapolate. The presumed value of y at
x values less than x(1) is y(1). The presumed value of y at x values greater than x(n) is y(n).
If fewer than n x,y coordinates are needed for a parameterization, the extra x,y
coordinates can be given identical values as the last needed pair. For example the list:
9
0.,1.,2.,2.5,3.,2.5; produces an identical result as the list 0.,1.,2.,2.5. If three x,y pairs are
expected by the model, the first list must be used even though the last value has no meaning.
In some cases, an alint parameter may be set to have no effect. For example, if the
function is a 0-1 multiplier, then a value of 1 has no effect. To make the parameter
inoperative, set y equal to 1.0 for all x. For example; 0.,1.,2.,1.,3.,1. will have no effect for a
multiplier function.
The main base station weather data file and the site precipitation file (if used) are the
only files that use a fixed format, ie. the digits and decimals must be in the correct columns.
The format for both files is (5x,4x,1x,12(1x,f6.1)). On the monthly weather file, each year is
composed of three lines. On the first line is an array of twelve monthly precipitation values
(mm). On the second and third lines are the minimum and maximum monthly temperatures,
respectively. Comments are placed in the first 9 columns of each row. On a base station
precipitation file, each line contains monthly values (mm) for a year for a single base station.
Missing values are not allowed on the main base station weather file. Missing values
are allowed on a site precipitation file, and must be encoded as -9.0.
10
Table 1. Calling routines for parameter files.
Parameter File Name
Calling Routine
Fixed Name Files
condtn.prm
cons.prm
consnow.prm
cull.prm
distc.prm
fireresp.prm
force.prm
hrbfile.prm
pabvinit.for
plfile.prm
popprm.prm
shbfile.prm
shfile.prm
simcon.prm
slfile.prm
snow.prm
soil.prm
spacedat.prm
sppmix.prm
subfile.prm
weather.prm
treecon.prm
trhtfil.prm
trspfil.prm
wolf.prm
wtable.prm
enbudgt.for
consume.for
consume.for
cullinit.for
distrib.for
firesp.for
distrib.for
pbinit.for
abvginit.for
plinit.for
popinit.for
shrinit.for
shrinit.for
init.for
init.for
init.for
init.for
init.for
sppinit.for
init.for
init.for
wdinit.for
wdinit.for
wdinit.for
wolf.for
init.for
Variably Named Files
primary producer model parameter files
shrub population parameter files
tree population parameter files
producer.for
shrinit.for
wdinit.for
Data Files
ascii weather data files
base station data
ungulate population dynamics file
init.for,monwethr.for
init.for
main.for
11
fires.dat
init.for
Parameter Files - Functional Grouping
Run Control
The file simcon.prm contains the parameters that control a simulation. On it are
various option flags and timing parameters (eg. starting and ending times). The location and
plant type for detailed diagnostic output are specified here. Parameters specifying soil
nitrogen processes are located here until a soil decomposition/nitrogen model is attached.
The file spacedat.prm contains parameters describing the spatial configuration of the
system, such as the number of rows and columns, subareas, facets and their names. If a block
of contiguous grid cells is simulated (a subset of the data on input maps), then this is where
the range of cells is specified.
Climate Data
The file weather.prm contains temperature lapse rates, monthly humidity, radiation,
precipitation, parameters for potential evapotranspiration, and paramters of the regression
equation that relates monthly storm number to monthly rainfall. The names of other weather
files are given on simcon.prm (see section on Changing Weather Data).
Snow Submodel
The file snow.prm contains parameters for snow melting.
Soil Parameters
The file soils.prm contains the soil parameters for each soil type in the system. The
file wtable.prm gives water table depths by soil type.
Primary Production Submodel
The file plfile.prm has the names of the parameter files for each plant type or species.
Primary production submodel parameters are for each plant type or species occur in
individual files, the names of which are specified in plfile.prm. Most of these files are
specified by the user on the file "plfile.prm".
A parameter file called pabvinit.prm initializes aboveground plant biomass variables,
by specifying shoot:root ratios and dead N:B ratio for each plant species type. Roots are
already initialized, so this is an easy way to initialize shoots.
Plant Population Submodels
Herbaceous population parameters are presently located on the primary production
submodel parameter files for the herbaceous species.
The file treecon.prm is a list of file names with parameters for each tree species or
functional group.
The tree population parameter files specified on the file treecon.prm contain the
parameters for tree establishment, mortality, and morphology for each tree species or
functional group.
12
The file shbfile.prm contains the list of filenames with shrub population parameters.
Shrub population parameter files contain parameters for shrub establishment, mortality and
morphology.
Plant Fire Responses
The parameters describing how plants respond to fire are located on the file
fireresp.prm.
Ungulate Submodels
The simcon.prm file has parameters that control whether the population model is on
or off. The number of ungulate species is also specied on this file.
The file condtn.prm contains parameters for the simple energy balance submodel. The
file enbal.prm contains parameters for the more detailed energy requirement calculation,
which is optional.
The file cons.prm contains parameters for the herbivory submodel, such as
digestibilities of plant tissues, dietary preferences, functional responses, maximum intake
rates, and unavailable forage.
The file distc.prm contains parameters for the ungulate spatial distribution submodel.
The file consnow.prm contains parameters for the effects of snow depth on forage
intake rate.
Ungulate population data input can be read from a file with herbivore population
sizes or densities for each species, one year of data per line. The name of this file is specified
on distc.prm. If ungulates distributions are affected by water, the file watrfil.prm must
contain lists of water map file names, and parameters describing how ungulates respond to
water.
Ungulate population parameters are located on the file popprm.prm, along with initial
population densities. The file cull.prm specifies if and how ungulate populations are to be
culled.
13
Table 2. Parameter file list.
Parameter Files with Fixed File Names
condtn.prm
cons.prm
consnow.prm
cull.prm
distc.prm
enbal.prm
fireresp.prm
fires.dat
force.prm
hrbfile.prm
pabvinit.prm
plfile.prm
shbfile.prm
shfile.prm
simcon.prm
slfile.prm
snow.prm
soil.prm
spacedat.prm
sppmix.prm
subfile.prm
weather.prm
treecon.prm
trhtfil.prm
trspfil.prm
wolf.prm
wtable.prm
Ungulate energy balance parameters.
Ungulate herbivory parameters.
Snow effects on ungulate herbivory parameters.
Ungulate culling parameters.
Ungulate spatial distribution submodel parameters.
Ungulate detailed energy requirement parameters.
Plant fire response parameters.
A list of fire map filenames.
Ungulate forced spatial distribution parameters.
Initial herbaceous root biomass and species composition
Initial aboveground biomass and N:C ratios.
Primary production submodel parameter file names.
Shrub population parameter file names.
Shrub height map file names and species composition.
Simulation control parameters.
Soils map file names.
Snow and snow crusting submodel parameters.
Soil parameters.
Spatial extent of study area, number of facets, subareas.
Defines which plant species occur on which subareas.
Subarea cover map, tree and shrub cover map file names.
Weather data.
List of tree population parameter file names.
List of tree height map file names.
List of tree species composition map file names.
Wolf submodel parameters.
Water table depths for each soil type.
Primary Production Model Parameter Files - Example File Names Specific to Elk Island
N.P.
aspen.prm
sedge.prm
hazel.prm
shdgrass.prm
spruce.prm
sungrass.prm
willow.prm
Aspen (deciduous trees)
Sedge (wetland herbaceous plants)
Hazel (upland shrubs)
Shade-adapted herbaceous plants (upland tree understory)
Spruce - (coniferous trees)
Sun-adapted herbaceous plants (upland)
Willow (wetland shrubs)
14
Table 2. continued.
Shrub and Tree Population Parameter Files - Example File Names Specific to Elk Island
N.P.
aspnpop.prm
hazpop.prm
spruce.prm
willpop.prm
Aspen (deciduous trees)
Hazel (upland shrubs)
Spruce (coniferous trees)
Willow (wetland shrubs)
Weather Data Files - Example File Names Specific to Elk Island N.P.
ei8190_m.wth
ei3890_m.wth
Monthly weather data 1981-1990.
Monthly weather data 1938-1990.
Ungulate Population Dynamics Data Files - Example File Names Specific to Elk Island N.P.
popm3590.dat
popi6090.dat
Elk, bison and moose populations the main park 1935-90.
Elk, bison and moose population in isolation area 1960-1990.
15
Spatial Input Data (Maps)
General
Spatial data take the form of raster (grid) maps. Data may be read in ARC GRID or
GRASS ascii formats or in IDRISI binary format. The option to read ARCINFO vs. GRASS
vs. IDRISI is specified by a flag on the file simcon.prm.
The ARC GRID ascii format is described in ESRI documentation. The first fourteen
lines contain header information. Thereafter each line of data corresponds to a single row on
a map. Row one, at the top of a map, is the first line in the file. The GRASS ascii format is
much like the ARC GRID format, with 14 rows of header information. The header is
formatted differently, but the data are formatted essentially the same as on ARC GRID files.
Ascii data can be real or integer, but non-categorical data will be converted to real on input,
The IDRISI binary format is discribed in their documentation. All IDRISI input files
that are non-categorical must be real (4 byte) numbers for Savanna. Categorical data (eg.
soils, vegetation, fire, force maps) must be integer (2 byte) numbers. The record length of the
files is either 4 or 2 bytes. Numbering starts with the top row of a map, with columns looping
within rows. Rather than open all the .doc files for each map, the program expects to find a
small file called llcoord.dat with the x and y coordinates of the lower left corner of all the
maps in the study area.
Subarea Cover Maps
These are maps of the percentage of each grid cell covered by a subarea. One map
must be provided for each subarea. The total cover of all types of subareas must be 100%.
The names of the subarea maps are specified on the file subfile.prm. The units are
percentages.
Elevation Map
An elevation map, giving mean elevation in each grid cell must be provided. The
name of this map is specified on simcon.prm. Units are meters.
Soils Maps
A soils map is needed for each subarea. The names of these maps are listed on the file
slfile.prm. Units are soil type indices (ordinal numbers).
The soils map for the first subarea is also used as a general mask for the study area. A
zero value indicates a masked grid cell. Data are categorical.
Tree Canopy Cover Maps
These are maps of the percentages of each subarea in a grid cell covered by tree
canopy. There must be one map for each subarea. The names of the files are specified on
subfile.prm. Units are percentages.
Shrub Canopy Cover Maps
16
These are maps of the percentages of each subarea in a grid cell covered by shrub
canopy. For each subarea, a map must be provided for both overstory and understory shrub
cover. The names of these files are specified on subfile.prm. Units are percentages.
Since understory shrub cover is presumed to occur beneath tree canopies, understory
shrub cover on a subarea of a grid cell should not exceed tree cover. Similarly, overstory
shrub cover plus tree cover cannot exceed 100%.
Tree Height Maps
Tree height maps are used to initialize the tree population size class distributions. A
mean tree height map for each subarea is required (ie. one for upland and one for wetland
trees). The names of the map files are specified on the trhtfil.prm parameter file. Units are
meters.
Shrub Height Maps
Shrub height maps are optionally used as specified by a flag on the file shfile.prm.
Otherwise, characteristic shrub heights are specified for overstory and understory shrubs on
each subarea. Shrub heights are used to initialize plant sizes (roots/plant). File names are
given on shfile.prm. Units are meters.
Tree Species Composition Maps
Total tree canopy cover is divided among tree species according to values on these
maps. There must be a single map for each tree species/group on each subarea. For example,
if there are two tree groups and two subareas, four maps are needed. The names of these
maps are specified on the file trspfil.prm. The units are percentages.
Vegetation Type Map
Plant mixtures can be assigned to each facet of each grid cell depending on the
vegetation type that dominates the grid cell (icinit=2 on the sppmix.prm file). Vegetation
types are read in from a vegetation map. In turn, a lookup table (file vegfacet.dat) related
mixtures on facets to the vegetation types on the map. Data are categorical.
Herbaceous Root Biomass Maps
Herbaceous root biomass maps are used if the flag on the hrbfile.prm parameter file is
set to one. Otherwise, a typical root mass for each facet type is given. If maps are used, a
map for each facet type is needed. Units are g/m2 roots.
Fire Maps
If fires are simulated, the distribution of each fire must be recorded on a fire map. The
names of the fire map files are specified on the file fires.dat. Fire maps are maps of fire
severity codes. There must be at least one fire severity class in addition to the unburned class
(eg. 0=unburned, 1=burned). Up to three classes may be used (eg. 1=light, 2=moderate,
3=intense fire damage). Data are categorical.
Maps That Affect Ungulate Spatial Distributions
17
These maps are only required when the factor in question is being used to calculate
habitat suitability. These options are invoked by flags on the distrib.prm parameter file.
Slope Map. A slope map is only needed if ungulate habitat suitability is affected by
slope. The units on the map are percent slope. The name of the slope map is specified on the
distrib.prm parameter file.
Preferred Area Map. This is simply a map of 0s and 1s indicating whether the cell is a
preferred area or not. The name of this file is specified on the distrib.prm file if this option is
used. Data are categorical.
Force Maps. These are maps rating the suitability of each grid cell by some degree of
external "force". For example this may be used to describe fenced out areas, danger due to
proximity to predators. The force suitability index ranges in value from 0-1. Force map file
names are specified on the force.prm parameter file. Data are categorical.
Water Maps. The names of the water map files are specified on the file watrfil.prm.
For each type of water (eg. seasonal freshwater wells), a map of minimum distance to water
(km) and a map of effective discharge (m 3/d) must be supplied.
Monthly Precipitation Maps
Dynamic rainfall maps are optional, as set by a flag on the simcon.prm parameter file.
The file name is specified in the simcon.prm parameter file. The data are encoded as mm*10.
The maps for each month are stored sequentially on a single binary (random access)
file. The first record for each month corresponds to the bottom map row, and each record is a
string of two byte integers corresponding to map columns. Thus, the first record number of a
given date may be computed as the number of rows per map times the number of months to
skip, plus one.
18
Section III. Model Output
Preface
Model outputs are written to numerous output files, all of which have a *.out file
name extension. Most output files are organized to be usable by plotting or presentation
graphics software, to plot variable values against simulated time. These are referred to as
temporal plot files. They are comma-delimited, with the month/year in the first column.
Temporal plot file output is usually saved at monthly intervals, however the output interval
can be changed by a parameter on simcon.prm. Most of the output files contain ecosystemlevel output, that is they are area-weighted values over all of the facets and grid cells in the
ecosystem. Diagnostic output files (diag*.out) are temporal plot files for a single species on a
single facet of a single grid-cell. Tabular output files (report.out and reportc.out) are not
formatted for plotting, but are used to examine model details. Finally, the image file
image.img is a compressed, binary formatted file of dynamic output maps.
Output Summarized by Output File
Biom1.out
This file contains system-level rainfall, plant production, and consumption by
herbivores, broken down into herbaceous and shrub functional groups. Tree NPP and
consumption is on file tree2.out. The routine with the write statement is svland.for
Variables 1. yppt- Accumulated Precipitation (mm)
2. yranpp(1) - Accumulated aboveground production of herbs (g/m2)
3. yranpp(2) - Accumulated aboveground production of shrubs (g/m2)
4. yrbnpp(1) - Accumulated belowground production of herbs (g/m2)
5. yrbnpp(2) - Accumulated belowground production of shrubs (g/m2)
6. yrcon(1) - Accumulated herbivore offtake of herbs (g/m2)
7. yrcon(2) - Accumulated herbivore offtake of shrubs (g/m2)
Biom2.out
This file contains system-level standing stocks of leaf, wood/stem, roots by functional
group (herb, shrub, tree). The routine with the write statement is svland.for
Variables 1. sysppt - Monthly precipitation (mm)
2. sysgb(1) - Green leaf mass of herbs (g/m2)
3. sysgb(2) - Green leaf mass of shrubs (g/m2)
4. sysgb(3) - Green leaf mass of trees (g/m2)
5. syswd(1) - Stem mass of herbs (g/m2)
6. syswd(2) - Stem mass of shrubs (g/m2)
7. totgrn - Total green leaf mass plus herb stems (g/m2)
8. sysrt(1) - Root mass of herbs (g/m2)
19
9. sysrt(2) - Root mass of shrubs (g/m2)
10. sysrt(3) - Root mass of trees (g/m2)
Pptsnw.out
This file contains system-level data for precipitation and snow water content, depth
and crusting.
Variables 1. yppt - Accumulated precipitation (mm)
2. sysppt - Monthly precipitation (mm)
3. syspet - Monthly potential evapotranspiration (mm)
4. ppt3m - Running mean precipitation in last 3 months (mm)
5. ppt12m - Running mean precipitation in last 12 months (mm)
6. snodep - Snow depth (cm)
7. avgcrst - Proportion of grid cells crusted over during month
Tree1.out
This file contains system-level tree cover. Woody cover and population densities by
subarea and tree type. The writing routine is trsysout.for. Note that what is written depends
on the particular assignment of tree species to subareas in the application. Here, Elk Island
N.P. variables are shown.
Variables 1. sysppt - Annual precipitation (mm)
2. syscvr - Total tree cover (fraction)
3. subc(1) - Tree cover on uplands (fraction)
4. subc(2) - Tree cover on wetlands (fraction)
5. sbtot(1,1) - Density of deciduous upland trees (#/km2 subarea)
6. sbtot(2,1) - Density of coniferous upland trees (#/km2 subarea)
7. sbtot(1,2) - Density of deciduous wetland trees (#/km2 subarea)
8. sbtot(2,2) - Density of coniferous wetland trees (#/km2 subarea)
Tree2.out
This file contains system-level annual production accumulators for all trees analogous to biom1.out. The routine with the write statement is trsysout.for
Variables 1. sysppt - Annual precipitation (mm)
2. syswdg - Wood production (g/m2)
3. sysrtg - Root production (g/m2)
4. syslfg - Leaf production (g/m2)
5. syshbv - Herbivore offtake (g/m2)
20
Shrub1.out
This file contains system-level shrub cover on each subarea and current annual stem
biomass in g/m2 of subarea. The routine with the write statement is shsysout.for. It might be
useful to divide items 2 and 4 by tree cover (wdcvr(nsub,narea) to get understory cover per
unit of tree cover. Note that what is written depends on the particular assignment of shrub
species to subareas in the application.
Variables -
1. subco(2,1) - Understory upland shrub cover (on subarea)
2. subco(3,1) - Overstory upland shrub cover (on subarea)
3. subco(2,2) - Understory wetland shrub cover (on subarea)
4. subco(3,2) - Overstory wetland shrub cover (on subarea)
5. subcg(2,1) - Understory upland current annual stem growth (g/m2)
6. subcg(3,1) - Overstory upland current annual stem growth (g/m2)
7. subcg(2,2) - Understory wetland current annual stem growth (g/m2)
8. subcg(3,2) - Overstory wetland current annual stem growth (g/m2)
Shrub2.out
This file contains system-level shrub population densities on each subarea and wood
biomass in g/m2 of subarea. The routine with the write statement is shsysout.for. It may be
useful to divide all understory items by the overstory tree cover on the subarea to express
results in terms of per ha of tree cover (see note for shrub1.out). Note that what is written
depends on the particular assignment of shrub species to subareas in the application.
Variables - 1. subp(2,1) - Understory upland population density (#/ha subarea)
2. subp(3,1) - Overstory upland population density (#/ha subarea)
3. subp(2,2) - Understory wetland population density (#/ha subarea)
4. subp(3,2) - Overstory wetland population density (#/ha subarea)
5. subb(2,1) - Understory upland current annual stem growth (g/m2)
6. subb(3,1) - Overstory upland current annual stem growth (g/m2)
7. subb(2,2) - Understory wetland current annual stem growth (g/m2)
8. subb(3,2) - Overstory wetland current annual stem growth (g/m2)
Consum.out
This file contains herbivore condition indices, mean available graze to grazers, mean
available browse to browser, mean digestibilities of diets. The routine with the write
statement is svland.for. The species referred to are particular to the application (Elk Island
N.P.).
Variables - 1. cond(1) - Condition index of elk.
2. cond(2) - Condition index of bison.
3. cond(3) - Condition index of moose.
4. sysgrz(1) - Mean available graze for elk (g/m2)
5. sysgrz(2) - Mean available graze for bison (g/m2)
6. sysbrs(3) - Mean available browse for moose (g/m2)
8. digest(1) - Digestibility of elk diet
21
9. digest(2) - Digestibility of bison diet
10. digest(3) - Digestibility of moose diet
Diag1.out
This file contains diagnostic output for a single plant species on a single location (a
facet on a grid cell). The plant type and location are specied on simcon.prm. The routine with
the write statement is producer.for.
Variables 1. ppt(narea) - Monthly precipitation for the grid cell.
2. gbiom(nsp,nloc) - Green leaf biomass (g/m2 facet)
3. wood(nsp,nloc) - Stem (wood) biomass (g/m2 facet)
4. cagw(nsp,nloc) - Current annual stem biomass (g/m2 facet)
5. root(nsp,nloc) - Root biomass (g/m2 facet)
6. dedb(nsp,nloc) - Dead leaf (and stem for herbs) (g/m2 facet)
7. glai(nsp) - green leaf area index
8. dlai(nsp) - dead leaf area index
Diag2.out
This file contains diagnostic output for a single plant species on a single location (a
facet on a grid cell). Phenology, plant nitrogen, snow and soil water.
The routine with the write statement is producer.for.
Variables 1. phen(nsp,nloc) - Phenophase (0-4)
2. phendd(nsp,nloc) - Total degree days in growth cycle
3. pnc(nsp,nloc) - Plant N:B ratio (gN/g biomass)
4. pnclf(nsp,nloc) - Green leaf N:B ratio (gN/g biomass)
5. wc(nsp) - Available water:PET ratio, (Avlwt:PET), (no dimensions)
6. swatr(1,nloc) - Soil water content, top layer (mm)
7. swatr(1,nloc) - Soil water content, middle layer (mm)
8. swatr(3,nloc) - Soil water content, bottom layer (mm)
9. snowat(nloc) - Snow water content (mm)
10. ncrust(nloc) - Snow crusting flag
Diag3.out
This file contains diagnostic output for a single plant species on a single location (a
facet on a grid cell). Effects on stomatal conductance and photosynthesis, potential and
realized stomatal conductance, Ps rate. The routine with the write statement is producer.for
Variables 1. efnp(nsp,nloc) - Effect of leaf nitrogen on Cs, Ps (0-1)
2. eftp(nsp,nloc) - Effect of temperature on Cs, Ps (0-1)
3. efwp(nsp,nloc) - Effect of Avlwt:PET on Cs, Ps
4. eflp(nsp,nloc) - Effect of light on Cs, Ps
5. cs(nsp) - Potential stomatal conductance before being limited by
competition (cm 3/mg leaf/d)
6. cs1a(nsp) - Realized stomatal conductance after limitation by
competition (cm 3/mg leaf/d)
7. psrt(nsp) - Potential photosynthesis rate before competition
22
limitation (g/g/d)
8. psrta(nsp) - Realized Ps rate after competition (g/g/d)
Diag4.out
This file contains diagnostic output for a single plant species on a single location (a
facet on a grid cell). Production accumulators, soil nitrogen. The routine with write statement
is the producer.for
Variables 1. totabp - Total aboveground production (g/m2 facet). If the diagnostic
species is a tree, this is leaf production only.
2. totbnp - Total belowground production (g/m2 facet). This is blank if the
diagnostic species is a tree.
3. totnpp - Total above plus belowground production (g/m2 facet)
4. totcon - Total herbivore offtake (g/m2 facet)
5. totnup - Total plant nitrogen uptake (g/m2 facet)
6. totnfl - Total nitrogen return to soil (gN/m2 facet)
7. smint - Soil mineral nitrogen (gN/m2 facet)
8. som1(nloc) - Active pool organic soil nitrogen (gN/m2 facet)
9. tsdcon - Total herbivore offtake of seeds (g/m2 facet). This is blank if the
diagnostic species is a tree.
Diag5.out
This file contains diagnostic output for a single plant species on a single location (a
facet on a grid cell). Seed biomass and herbaceous, shrub plant populations. The routine with
writes is producer.for
Variables 1. wc(nloc) - Available water:PET ratio
2. seedp(nsp,nloc) - Seed mass on plant (g/m2 facet)
3. seeds(nsp,nloc) - Seed mass in soil (g/m2 facet)
4. tsdcon - Herbivore offtake of seeds (g/m2 facet)
5. rsz - Plant size (g root/plant)
6. pnum - Plant density (#/m2 - herbs, #/ha - shrubs)
7. temper - Mean daily temperature (oC)
Pop.out
This file contains ungulate population sizes, culling offtakes. The routine with writes
is popd.for. Species referred to are specific to the application (Elk Island N.P.).
Variables 1. hpopt(1) - Elk number (total # in system)
2. hpopt(2) - Bison number (total #)
3. hpopt(3) - Moose number (total #)
4. hpopt(4) - reserved
5. Cull(1) - Total elk culled (total #/month)
6. Cull(2) - Total bison culled (#/month)
7. Cull(3) - Total moose culled (#/month)
8. cull(4) - reserved
23
Bdrate.out
This file contains ungulate birth and death rates. The routine with the write statement
is popd.out. Species are specific to the application.
Variables 1. birtht(1) - Elk born (#/month)
2. birtht(2) - Bison born (#/month)
3. birtht(3) - Moose born (#/month)
4. death(1) - Elk mortality (#/month)
5. death(2) - Bison mortality (#/month)
6. death(3) - Moose mortality (#/month)
7-9. hpopt(1-4) - Ungulate population sizes, as in pop.out
Diagpop.out
This file contains diagnostic ungulate population output, for a single species specified
on the popprm.prm file.
The routine with the write statement is popd.out.
Variables 1. brr - birth rate (#/#/month)
2. drr(1) - death rate of newborn (#/#/month)
3. drr(2) - death rate of immature females (#/#/month)
4. drr(3) - death rate of immature males (#/#/month)
5. drr(4) - death rate of mature females (#/#/month)
6. drr(5) - death rate of mature males (#/#/month)
7. cond - condition index of the species
8. conges - mean condition index during gestation period
Wolf.out
This file contains the wolf model output. The routine with the write statement is
wolf.for
Variables 1. wolfn - Wolf population size (total # in system)
2. r - intrinsic rate of increase (yr-1)
3. fresp -functional response (same units as r, yr-1)
4. twdisp - total wolfs left system (#/yr)
5. prkill1 - elk killed (animals/yr)
6. prkill2 - bison killed (animals/yr)
7. prkill3 - moose killed (animals/yr)
Report.out
This is a tabular output file that provides a detailed report of the model for one to
several grid-cells. This report is useful during the model calibration process, but can be used
anytime to verify model performance. The output grid-cell(s) is specified in the simcon.prm
parameter file. The report is generally written once per year, but the interval can be changed
by parameters on simcon.prm. For example, reports can be produced every other year,
bimonthly in the alternating year (refer to simcon.prm parameter file description). Outputs
are summarized by plant species or type, at the facet level and at the grid cell level. Here,
one can examine how all the facets on a grid cell are behaving. The grid-cell level output is a
24
cover-weighted average of facet level results. This file also contains a detailed breakdown of
the water budget of each facet.
Reportc.out
This file contains ungulate diet compositions, total forage intakes and components of
their energy balance. Output is at the ecosystem level. Here, ungulate diets are summarized
by plant type and tissue type. This information is useful when calibrating dietary preference
indices. Total ungulate forage intake is useful since it can be compared to forage availability
to analyze how near stocking rates are to carrying capacity, or how food limited the
populations are. Components of the energy balance are given, including costs of traveling
and distance to water.
Image.img
This is a compressed, binary (random access) file of map output from the model. The
record length of the file is determined as the number of columns on a map times two. Each
record contains a row of grid cell data. At present, 14 variables are saved as 2 byte integers.
An ascii header file, image.hdr, accompanies image.img. The first ten lines of the
header file contain: 1) number variables saved, 2) number of rows, 3) number of columns, 4)
number of dates saved, 5) grid cell width (m), 6) xll- lower left hand corner longitude, 7) ylllower left hand corner latitude, 8) first month saved, 9) first year saved, 10) monthly flags
indicating which months were saved. Lines 11-24 contain character names of each of the 14
variables. Lines 25 and 26 are minimum and maximum values of each variable, respectively.
Each record of the image.img file holds the values for a single row of grid cells for a
single date for a single variable. The record number can be computed from the grid-cell
number and the date (image) number as
where nr is the row number on a map (bottom is one). nimgsv is the index of the image (date)
on the map, and nrows is the total number of rows on a map.
The variables saved are 1) monthly precipitation (mm), 2) woody cover, 3) shrub
cover, 4) total green biomass (g/m2), 5) herbaceous green biomass, 6) shrub green biomass,
7) tree green biomass, 8) snow water content (mm), 9) available forage for the selected
ungulate and forage type (see simcon.prm), 10) not used, 11-14) densities of ungulates
(#/km 2) species 1-4.
Graphical Output Tools and Techniques
Temporal Plots
Temporal plot files should be readily imported into commercially available plotting
and graphics programs. Some such programs, however, may not be able to handle the date
25
format which is: month/year. The month/year may need to be converted to a single number
using a user-supplied program.
Some software packages allow the creation of "templates" which are blank preformatted plots, often with hard-coded links to data files. Once the templates are created for
each of the .out temporal plot files, only the templates need be called to view results.
Spatial Output Using a GIS
The img2gis.for (fortran) program is used to convert from the image file format of
image.img to .asc ascii file formats that can be read into ARC GRID or GRASS, or to the
binary real .img files and associated .doc files that can be read by IDRISI. The program gets
information about the image.img file from the associated header file image.hdr. This has the
number of rows and columns, the number of months and which months were stored, the
variable names etc.
The input parameters for a run of imagasc are read from a file called
imget.dat, which species the format to write to, the variables to retrieve and
the dates to retrieve. The first and last year are give, and flags for each
of the 12 months. Flags retrieve each of the 14 variables currently saved
on the image.img file.
The output maps are written into file names with a nameing convention
as follows. Characters 1-2 are the first 2 characters of the variable name.
Characters 3-4 is the month in two digits (ie. 01 not 1). Characters 5-8 is
the 4 digit year. Thus pr011990.asc is the name of the file for precipitation
in January of 1990. The IDRISI map would be pr011990.img.
It is suggested that this program be run in a separate directory from
where the .asc or .img input files to the model are stored, so that the
created output maps be deleted using a wildcard like "del *.img" without
also erasing the input data.
Quick Spatial Output
The imagedis.bas (quick basic) program displays time series of images from maps
that are stored on the image.img output file. The advantages of using this program rather
than going through a GIS are that it accesses the image.img file directly, multiple months of
output can be viewed on the same screen, and one can rapidly advance forward or backward
among months of output.
When the program asks to enter the filename with image data, state 'image.img'. The
program shows the time range of the data on the file and asks if you would like to skip ahead
some dates for the first image viewed. The program shows the variables that were saved as
dynamic output maps. You select the variable to be displayed. The maximum and minimum
values of the variable encountered during the simulation are displayed. The color code of the
images will be scaled into classes that span the range between the minimum and maximum
values. You can specify a range. A character string can be placed on the plot as a title. The
code used to signify masked cells on the output maps on image.img is -999, which must be
26
specified. Images can be displayed a number of ways, from 1 to 12 images on a single
screen. It is possible to display a paired comparison of two different variables side by side on
the screen. When a paired comparison is chosen then you can compare two variables from
the current file or with a variable on another same-length image.img file.
When all the questions are entered the image(s) are displayed.
You can toggle forward to another set of dates by pressing the + key (forward) or the - key
(backward). The color scheme used ranges from warm tones (red) for lowest values, to cool
tones (blue) for highest values (ie. red, orange, yellow, light-yellow, light green, green, light
blue, blue, purple, white).
27
Section IV. Procedural Organization of the Model
Introduction
The code for the model, which is written in ANSI Standard Fortran-77, is organized
into modular subroutines. The overall flow of procedures in the model is displayed in Fig. 1.
The main program has a monthly time loop. The ungulate population model and the wolf
model are called monthly. Portions of the tree population submodel are called annually. The
main program calls the subroutine svland every month. Svland contains the weekly time step
loop, and it calls most of the other submodels. Note that the ungulate distribution model is
called monthly. Importantly, the weekly time step loop is within the grid-cell loop. The
facet/subarea loop is within the weekly loop. A tree diagram of main program subroutine
calls is provided in Fig. 2. A tree diagram of svland subroutine calls is shown in Fig. 3.
Descriptions of subroutine functions are provided in Section VI.
28
Figure 1. Program Procedure Flow.
Main Program
Initialize
Loop Over Months
Fire Maps Read
Call Svland Program
Call Pastoralism Submodel (not used for Elk Island)
Call Ungulate Population Submodels
Call Wolf Model
Call Tree Death, Sizes, Cover on Month 12
End
Svland Program
Read Weather Data
Calculate Ungulate Spatial Distribution
Loop Over Grid Cells
Fire Effects on Plants
Calculate Grid Cell Micromet Variables (Vdef, PET, T)
Determine Grid Cell Precip
Loop Over Weeks
Calculate Runoff, Partitioning of Precipitation
Snow Crust
Distribute Herbivory Among Patches, Forage
Loop Over Subareas and Facets
Snow Submodel
Bare Soil Evap Submodel
Wood Biomass Allocation Pattern
Ungulate Forage Intake
Shrub Population Submodels
Tree Germination
Net Primary Production Submodel
Soil Water Update
Soil N Update
Update Accumulators
End
End
Update Accumulators
Call Report Output Routine
Call Image Output Routine
Recalculate Animal Condition Index
End
29
Figure 2. Tree diagram of the Savanna model code. P._ - program, S._ - subroutines, F._ function subprograms. The subtrees of the svland.f subroutine are shown in Figure 3.
.)P.MAIN
/)S.INIT
* /)F.RAND
* /)S.SPATLPPT
* * /)F.XNORM
* * * .)F.RAND
* * .)S.MAPREADD
* .)S.MAPREAD
/)S.SPPINIT
* .)S.MAPREAD
/)S.PLINIT
/)S.WDINIT
* /)S.TREETHIN
* /)S.MAPREAD
* /)S.WDALLOC
* .)S.TREECVR
/)S.PBINIT
* /)S.MAPREAD
* /)S.TRWDENS
* /)S.TRRDENS
* .)F.ALINT
/)S.SHRINIT
* .)S.MAPREAD
/)S.FIRERESP
* /)S.HERBFIRE
* /)S.TREEFIRE
* * .)S.TRSUCKER
* /)S.TRWDENS
* /)S.TRRDENS
* /)S.TREECVR
* /)S.SHRBFIRE
* .)F.ALINT
/)S.DISTRIB
* /)S.MAPREAD
* .)F.ALINT
/)S.CONSUME
* /)F.CVRLOC
* /)S.AVLFOR
* * /)S.WDFORAV
* * /)F.ALINT
30
Fig. 2. continued
* * .)S.SHRBSIZ
* /)F.ALINT
* /)S.TREEBRWS
* /)S.TRWDENS
* .)S.TRRDENS
/)S.ENBUDGT
* .)F.ALINT
* .)F.ENREQR
/)S.POPINIT
* .)F.ALINT
/)S.CULLINIT
/)S.WOLF
/)S.MONWETHR
/)S.MAPREAD
/)F.RAND
/)S.SVLAND (See separate diagram for subtrees)
/)S.CULLPOP
/)S.POPD
* .)F.ALINT
/)S.DELWTDTH
.)S.TREECALL
/)S.TREEPOP
* /)S.WBSUB
* /)S.TREEBIOG
* * /)S.TRSHADE
* * * /)S.AREAINDX
* * * /)S.SHADING
* * * /)F.ALINT
* * * .)F.PMRAD
* * .)F.CVRLOC
* /)S.TREEDTH
* * .)F.ALINT
* /)S.TRWDENS
* /)S.TRRDENS
* .)S.TREECVR
/)S.TREEREP
.)S.TRSYSOUT
31
Figure 3. Tree diagram for subroutine SVLAND.
.)S.SVNLAND
/)F.RAND
/)S.MAPREADD
/)S.PPTINTER
* . F.REGRESS
/)S.SPATLPPT
* /)F.XNORM
* * .)F.RAND
* .)S.MAPREADD
/)F.XNORM
* .)F.RAND
/)S.MAVGPPT
/)S.DISTRIB
* /)S.MAPREAD
* .)F.ALINT
/)S.CRUST
* /)F.ALINT
* .)F.RAND
/)S.FIRERESP
* /)S.HERBFIRE
* /)S.TREEFIRE
* * .)S.TRSUCKER
* /)S.TRWDENS
* /)S.TRRDENS
* /)S.TREECVR
* /)S.SHRBFIRE
* .)F.ALINT
/)S.PRSTLR
/)S.SURFRAD
* .)S.AREAINDX
/)S.STRMNUM
/)S.STRMSIZ
* .)F.RAND
/)F.ALINT
/)S.RUNSTRM
* /)S.AREAINDX
* .)S.SCSRUN
/)S.ROUTE
/)F.CVRLOC
/)S.DIETPATCH
* /)F.CVRLOC
* .)S.AVLFOR
32
Figure 3. continued
* /)S.WDFORAV
* /)F.ALINT
* .)S.SHRBSIZ
/)S.SNOWPAK
* .)F.ALINT
/)S.BEVAP
* .)S.EVAPR
/)S.WDALLOC
/)S.CONSUME
* /)F.CVRLOC
* /)S.AVLFOR
* * /)S.WDFORAV
* * /)F.ALINT
* * .)S.SHRBSIZ
* /)F.ALINT
* /)S.TREEBRWS
* /)S.TRWDENS
* .)S.TRRDENS
/)S.SHRBCVR
/)S.SHRBSIZ
/)S.SHRBDTH
* .)F.ALINT
/)S.TREEGRM
* .)F.ALINT
/)S.SHRBGRM
* .)F.ALINT
/)S.BIOMGRM
* .)F.ALINT
/)S.HRBDTH
* .)F.ALINT
/)S.PRODUCER
* /)S.AREAINDX
* /)F.ALINT
* /)S.SHADING
* /)F.PMRAD
* /)S.TRSHADE
* * /)S.AREAINDX
* * /)S.SHADING
* * /)F.ALINT
* * .)F.PMRAD
* .)S.POTNPP
* /)F.ALINT
33
Figure 3. continued.
* .)F.OPTTEMP
/)S.DRAIN
/)S.ACCUM
/)S.ENBUDGT
* .)F.ALINT
/)S.REPORT
* .)F.CVRLOC
/)S.IMAGESV
* .)F.CVRLOC
/)S.CONDINDX
/)S.SHSYSOUT
.)S.CONSREP
34
Section V. Subroutines and Their Functions
Introduction
An alphabetized list of model subroutines is provided here. The model source code is
heavily commented, and it may be instructive, even for non-programmers, to refer to the
source code to understand exactly what the model is doing. It is often useful to use the UNIX
grep utility to find where in the source code certain variables and parameters are used, where
they are read in, and where they are written out.
Subroutine Name and Function List
abvginit.for - Initial aboveground biomass and nitrogen state variables for the plant
production submodel.
accum.for - Accumulates total net primary production (NPP) and water flows for each facet.
Results are reported in the "report.out" output file.
alint.for - Linearly interpolates between values supplied in table form.
areaindx.for - Computes leaf and stem area indices for a plant type.
avlfor.for - Calculates available forage mass in grams per square meter of patch or facet area,
accounting for snow, ungrazable biomass and shrub size.
bevap.for - Compute bare soil evaporation loss by looping over a rain day an subsequent norain days, calling evapsmp.
biomgrm.for - The biomass-based seed germination/establishment and seed bank sub-model.
condindx.for - Computes ungulate condition index due to weight changes and changes in
age/sex ratios due to population dynamics.
consrep.for - Writes summary output for ungulate forage consumption, such as forage intake
and diet composition. Results are written to the "reportc.out" output file.
consume.for - Initializes ungulate herbivory submodel. Calculates forage intake rate per
animal of each forage type based on maximum intake rates, the results of the
functional response, forage quality and snow cover. Based on the distribution of
animal foraging days among forage types, it then calculates total forage offtake.
35
crust.for - Stochastically determines if there is a snow crusting event.
cull.for - Culls ungulate herds based on data in the cull.dat input file or implements a rulebased cull.
cvrloc.for - Computes the fraction of a grid cell covered by any facet.
delwtdth.for - Calculates change in population animal condition index due to mortality,
assuming animals in worst condition are the ones that die.
dietpatc.for - Determine how herbivory is distributed among patches (facets) within a grid
cell based on forage abundance and dietary preferences. Output can be viewed as the
distribution of animal foraging days among forage types.
distrib.for - Distributes herbivore populations among grid cells according to calculated
habitat preference indices.
drain.for - Drain water in excess of field capacity from each layer, into the next lowest layer
according to a tipping bucket model. Also if the water table is within the soil profile,
ensure water in the corresponding depth zone is saturating.
enbudgt.for - Calculates ungulate energy budgets based on energy intake and costs of
maintenance, travel, lactation. Uses energy budget to derive mean animal body
weight.
enreqr.for - The more detailed ungulate energy requirement calculation which accounts for
temperature and thermoregulation.
evapsmp.for - Compute bare soil evaporation using Ritchie's two stage model.
fireresp.for - The fire response submodel. It calls routines that find plant responses to fire due
to mortality and size reversals. Biomass losses are calculated here.
herbfire.for - Finds herbaceous plant responses to fire.
hrbdth.for - Calculates mortality of herbaceous plants.
imagesv.for - Output image (map) data to a compressed binary file.
init.for - The main initializing routine for the model.
main.for - The main routine, with the monthly time loop.
36
mapread.for - Reads in an input map in either binary format or ARCINFO grid ascii file
format.
mapreadd.for - Reads in a monthly rainfall map in binary compressed format.
mavgppt.for - Compute moving average rainfall or rainfall in last three and twelve months.
monwethr.for - Read in data from a monthly weather file.
norm.for - Sample from a normal distribution.
opttemp.for - Calculate the effect of temperature on stomatal opening or photosynthesis
using a bell shaped curve.
pbinit.for - Initialize the state variables in the primary production submodel.
plinit.for - Initialize the primary production submodel parameters.
pmrad.for - Calculate the effect of light (photosynthetically active radiation) on stomatal
opening and photosynthesis rate.
popd.for - The ungulate population submodel.
popinit.for - Initializes the ungulate population submodel.
potnpp.for - Calculate the potential net primary production rate (before competition) based
on stomatal conductance responses to water, light, temperature and nitrogen.
pptinter.for - Does a spatial interpolation for precipitation, accounting for elevation effects if
they are significant.
producer.for - The primary routine of the primary production submodel. Calls potnpp.for,
accounts for competitive interactions among plant species based on light, water and
nitrogen, allocates production, tracks phenology, implements plant nitrogen uptake,
transfers tissues to litter. The diagnostic output for plants and soil water is written
from this routine, to diag1.out - diag5.out.
prstlr.for - Computes potential evapotranspiration using the Priestly-Taylor equation.
rand.for - Select a uniform random number.
regress.for - Performs a regression of precipitation on elevation.
37
report.for - Write summary output to file "report.out" for a single or a limited number of grid
cells. Output is reported for each facet and summarized for an entire grid cell.
route.for - Calculates the fraction of precipitation that drains to various soil layers or is
leached from the soil based on current soil water status, runoff, crack flow.
runstrm.for - Calculates the fraction of rainfall that runs off by calling the routine scsrun.for.
scsrun.for - Calculate runoff based on the SCS curve number method.
shading.for - Determine the mean light intensity in a plant canopy.
shrbcvr.for - Finds the fraction of a grid-cell subarea covered by shrubs based on total root
biomass. It then corrects shrub biomass densities per meter square of facet based on
the calculated change in cover on the subarea.
shrbdth.for - Determines shrub mortality.
shrbfire.for - Calculates shrub responses to fire.
shrbgrm.for - Calculates shrub establishment rate in simple demographic terms.
shrbsiz.for - Calculate shrub size in grams of root and stem per plant.
shrinit.for - Initializes the shrub population model.
shrsysout.for - Writes shrub population outputs to shrub1.out and shrub2.out.
snow.for - Calculates snow accumulation and melting.
spatlppt.for - Computes a spatial rainfall distribution for the whole system when only reading
in single-valued monthly rainfall for a base station. Uses the spatial distributions on a
monthly rainfall map file.
sppinit.for - Initializes plant species indices defining what species occur on what facets and
subareas. Reads in from the file sppmix.prm.
strmnum.for - Determines the mean number of storms per month and mean storm size based
on monthly rainfall.
strmsiz.for - Randomly determine a storm size based on a gamma distribution, and mean
storm size.
38
surfrad.for - Calculates the effect of leaf area and mulch shading on potential
evapotranspiration rate at the soil surface.
svland.for - This is called monthly from main.for and it in turn calls most of the other model
modules, passing information from one module to another. It contains the micrometeorological equations as well as a highly simplified soil nitrogen submodel. The
weekly loop within months is located in this routine. Some output functions are
located here, primarily output written to the files biom1.out - biom4.out.
treebiog.for - Calculates individual tree root and stem biomass growth based on the total
production predicted by the net primary production submodel. It then calculates the
fraction of trees promoted to the next size class.
treebrws.for - Calculates responses of tree populations to browsing, including reversals of
trees to smaller size classes and tree mortalities, and associated biomass transferred to
litter due to tree mortality.
treecall.for - Calls treepop.for and treesysout.for on an annual basis for each grid cell.
treecvr.for - Compute fraction of a grid cell subarea covered by trees based on rooted area per
tree and numbers of trees.
treedth.for - Determine annual tree mortality rate.
treefire.for - Assess how trees respond to fire.
treegrm.for - Calculate tree establishment rate in simple demographic terms.
treepop.for - The annual portions of the tree population submodel are called. These include
tree death, tree size class promotions, and changes in tree cover.
treerep.for - Output of shrub and tree population models for a selected grid cell to report.out.
treethn.for - Implements a tree thinning curve relating tree density to tree size. It is used
optionally to compute rooted area per tree in the wdinit.for routine.
trrdens.for - Calculate mean root biomass densities on tree covered areas based on tree size
class distributions and root biomass densities for each tree size class.
trshade.for - Computes light incident on each size class and each type of tree on a subarea.
Treats competition for light among different tree types.
trsucker.for - Compute number of suckers produced by trees when the main stem is killed by
fire.
39
trsysout.for - Output tree population information integrated over the entire study area, ie. tree
numbers and cover, to tree1.out and tree2.out.
trwdens.for - Compute wood and stem biomass density on tree covered areas based on tree
size class distribution. Like trrdens.for.
wbsub.for - Calculates total wood biomass per m2 of subarea based on tree numbers and
sizes on the subarea.
wdalloc.for - Calculates the morphometric wood/(wood+root) and leaf/wood ratios for a tree
type based on the current size class distribution.
wdforav.for - Computes amount of forage available to a herbivore based on the height of the
tree and the herbivore.
wdinit.for - Initializes the tree population model.
wolf.for - The wolf predation and population dynamics submodel.
40