MAESTRA Manual

Belinda Medlyn, 11/09/01

Welcome to the on-line version of the Maestra manual. It's similar to the text version but has an interactive index which should make it easier to use. Also it is updated regularly!

An RTF version of this Manual can be downloaded here. Also you can read about the most recent changes to the program here.

CONTENTS:

ALPHABETICAL INPUT INDEX
 
Absorptance 

Aerodynamics of Canopy

Age classes of foliage

Allometric relationships for biomass 

Boundary Layer Conductance

Branch respiration

Climate change scenarios

Clumping of foliage

Compiling MAESTRA

Constant met data

Crown radius

Crown shape

Dates of simulation

Diameter 

Edge effects

Format of Met Data

Height of trees

Jmax 

Latitude & Longitude

Leaf area 

Leaf area density distribution

Leaf energy balance

Leaf incidence angle

Leaf nitrogen content

Leaf respiration

Maximum array sizes

Met Data

Millenium bug

Missing met data

Number of layers in crown

Number of zenith and azimuth angles to integrate over 

Open Top Chamber -Effect on Met Data

Output files - which desired

PAR histogram

Phenology of leaf area development

Photosynthetic parameters

Plot Details 

Reflectance 

Respiration

Root respiration

Roughness Length

Slope

Specific leaf area

Stocking

Stomatal conductance model 

Stomatal conductance parameters

Sun / shade division

Target Trees

Transmittance

Tree Dimensions - Specified for All Trees

Tree Dimensions - Specified for Individual Trees

Vcmax

Wind speed: decline with depth in the canopy 

Woody respiration

X & Y Co-ordinates


Maestra Programs & Files

Parameter values and driver variables are currently input through the use of a number of text files. The names of the input text files are:

The names of the output text files are: There is an alternative main program, called maeshr.exe, which simulates only one hour and outputs fluxes for that hour at individual grid points. The program (MAESHR) asks which hour of the day to simulate at the start of the run. The output file is: The following additional programs are also available:

resp.exe: takes the same input files as MAESTRA but calculates the respiration fluxes only (output: resp.dat)

maestest.exe: Calculates radiation incident at specified points in the canopy - useful for comparison against PAR sensor data. In addition to the standard input files, there is an additional input file points.dat containing two namelists, one giving the number of points, the second giving the x, y, and z co-ordinates of each point.

The output from this program is a file testflx.dat, which gives beam, diffuse, and total transmission of PAR to each point for each half-hour.

sumtrees.exe: reads the standard output files, in which outputs are all expressed per tree, and converts the outputs to per hectare figures. The input files required are dayflx.dat, hrflux.dat, and sumcon.dat. The output files are daytot.dat and hrtot.dat. The input file sumcon.dat should contain a namelist indicating which target trees to include:

where ITARGETS are the numbers of the trees you want summed, and weights are the weights to assign to each target tree. If this file is not available, all trees are summed and given equal weights.

Compiling Maestra: Here are some very brief notes on how to re-compile Maestra if necessary. For more details on the program itself please refer to the programmer's manual.

Changes to any of these files (particularly maestcom) will require the program to be re-compiled. The dependencies of each program are as follows: Note that to compile resp.exe, in maestcom you must set MAXTT and MAXT to the same value.


Input File Format

The input files for MAESTRA now use the FORTRAN NAMELIST format. This makes input considerably more flexible. I use the notation

NAMELIST /NAME/ VAR1, VAR2

in this manual to indicate a namelist. In the actual input file, the above namelist should be written, using example numbers:

Arrays of numbers can be specified either element-by-element, or as a whole, e.g. In the above example, VAR1 & VAR2 end up the same.

It does not matter what order these blocks are in. Within a block, it does not matter what order the variables are in, EXCEPT that all arrays of strings (such as lists of dates) should come last. It does not matter if some variables are missing, but you will, however, get an error if there are additional variables in any block. If some data is missing which is essential for the program to run, the program writes an error message to the error output file maeserr.dat, and terminates. If data is missing for which a default value can be used, a warning notice will be written to maeserr.dat, but the program will continue, using the default value.

A word on dates: all dates are specified in the format 'DD/MM/YY'. If 50 <= YY <= 99, the years 1950 - 1999 are assumed; if 00 <= YY <= 49 the years 2000 - 2049 are assumed. This will need to be fixed come the 2040's - hopefully by someone else!

Maximum array sizes: all the maximum array sizes are defined in the file MAESTCOM. These maxima can be changed by altering MAESTCOM and re-compiling the program.

confile.dat

The first line should give the title of file.

Following that, all input is in namelist blocks, which may be in any order.

Control of output files

NAMELIST /CONTROL/ IOHRLY, IOTUTD, IOHIST, IORESP

IOHRLY is a flag to indicate how detailed the outputs should be. If IOHRLY = 0, there is no hourly output; if IOHRLY = 1, hourly values are output to hrflux.dat; if IOHRLY = 2, values for each layer are output to layflx.dat. Default: 0.

IOTUTD is a flag to indicate how often the diffuse transmittances should be calculated. This calculation takes a significant amount of time, and does not really need to be done more than once a week unless the leaf area is changing rapidly (the diffuse transmittances do not change greatly from day to day). If IOTUTD = 0, the transmittances are read in from the file tutd.dat (automatically written at the end of each simulation). If IOTUTD > 0, the transmittances are calculated every TUTD’th day. Default: 1.

IOHIST is a flag to indicate that you want the PAR histogram printed out. The histogram is only printed if IOHIST = 1. Default: IOHIST = 0.

IORESP is a flag to indicate whether you want the respiration fluxes to be printed out. If IORESP = 1, the file resp.dat is created. Default: IORESP = 0.

Dates

NAMELIST /DATES/ START, END, NSTEP

START is the starting date for the simulation, in format ‘DD/MM/YY’.END is the end date for the simulation, in format ‘DD/MM/YY’. Default: if both dates are missing or both = ‘01/01/50’, then all of the met data in the met data file is used.

If NSTEP is > 1, then the program only does the calculations for every NSTEP’th day. Default: 1.

Number of Trees in Calculations

NAMELIST /TREESCON/ NOTREES, NOTARGET, ITARGETS, NORANDOM, EDGEDIST

NOTREES is the number of surrounding trees considered when calculating the shading of the target tree (the closest trees to the target tree are used).

You can specify the target tree(s) in a number of ways:

Note that for the program maeshr.exe, only the first target tree specified will be used.

If you have more than one target tree, and want to sum the outputs per tree to obtain per hectare figures, you can use the program sumtrees.exe.

Number of layers and angles to integrate over

NAMELIST /DIFFANG/ NOLAY, NZEN, NAZ

NOLAY is the number of layers in the crown assumed when calculating radiation interception. There are 12 grid points in each layer. The maximum number of layers is given in MAESTCOM as MAXLAY. Default: 6.

NZEN is the number of zenith angles for which diffuse transmittances are calculated; NAZ is the number of azimuth angles for which the calculation is done.

Defaults: NZEN = 5 (maximum MAXANG); NAZ = 11 (no maximum enforced).

Choice of submodel

NAMELIST /MODEL/ MODELGS, MODELJM, MODELRD, MODELRW, MODELSS, ITERMAX
 

MODELGS indicates which model should be used to calculate stomatal conductance.
If MODELGS = 2: Ball-Berry model (response to RH)
If MODELGS = 3: Ball-Berry-Leuning model (response to VPD).
Otherwise: the Jarvis model is used. The Jarvis model incorporates multiplicative functions of several environmental variables. These are also indicated using MODELGS, as follows. MODELGS can be up to three digits long, e.g. ijk. If:
i = 0: quadratic T-response
i = 1: power function T-response
(NB if Tmax <= 0 no T-response is used in either case)
j = 0: non-linear VPD response (Lohammer function)
j = 1: linear response to vapour pressure model fraction deficit
j = 2: linear VPD response
j = 3: non-linear VPD response
k = 0: linear response to CO2

k = 1: non-linear response to CO2

Please see the section on stomatal conductance for more details about the choice of stomatal models.

MODELJM indicates how the JMAX and VCMAX parameters should be read in. IF MODELJM = 0, they are read in directly from file. If MODELJM = 1, they are calculated from the leaf N content. Default: 0.

MODELRD indicates how the RD0 parameters should be read in. IF MODELRD = 0, they are read in directly from file. If MODELRD = 1, they are calculated from the leaf N content. Default: 0.

MODELRW indicates how the wood respiration parameters should be read in. If MODELRW = 0, the respiration rate is assumed to depend on stem biomass or surface area. If MODELRW = 1, it depends on diameter according to the relationship used at Collelongo. Default: 0.

MODELSS indicates whether the photosynthesis calculations are done for sun and shade leaves separately (MODELSS = 0), whether the absorbed radiation is averaged over the foliage in the grid point when calculating photosynthesis (MODELSS = 1). If MODELSS = 2, calculations are done for each leaf angle class separately. Default: 0.

ITERMAX controls iterations in the combined photosynthesis-transpiration model.

If ITERMAX = 0, leaf temperature is assumed = air temperature, and the iteration procedure is not carried out. If ITERMAX > 0, an iterative method is used to find leaf temperature, photosynthesis, and transpiration. ITERMAX gives the maximum number of iterations (ensuring convergence). Default: 0.

Climate change scenarios

The program can add a fixed amount to CO2 concentration and temperature from the met file. The following namelist is only needed if you want a scenario implemented:

NAMELIST /CCSCEN/ CO2INC, TINC

where CO2INC is the amount of increase in the CO2 concentration (in mmol mol-1) and TINC is the amount of increase in the air temperature (° C). Both soil and air temperature are increased. The absolute humidity (in g m-3) is maintained constant; RH and VPD are adjusted accordingly.

Effect of OTC on Met Data

If you are simulating growth within an OTC and met data was measured outside the chamber you may want to correct for the effects of the chamber. This can be done using the namelist:

NAMELIST /OTC/ TOTC, WINDOTC, PAROTC, FBEAMOTC

Where TOTC is the increase in air temperature (° C), WINDOTC is the absolute wind speed inside the chamber (m s-1), PAROTC is the fractional reduction in incident PAR (fraction) and FBEAMOTC is the fractional reduction in beam fraction of PAR (fraction). Note that all of these should be mean values.

PAR histogram

The program can print out a histogram of PAR absorbed over the course of the simulation. It is printed to histo.dat if IOHIST = 1 (in the CONTROL namelist, above). The following namelist is needed only if you want the histogram:

NAMELIST /HISTO/ BINSIZE

where BINSIZE is the size of the classes in the histogram (in mmol m-2 s-1). The maximum number of classes is given by MAXHISTO in MAESTCOM.

3.2 trees.dat

First line: title of file.

Following that, all input is in namelist blocks, which may be in any order.

Plot Details

NAMELIST /PLOT/ XMAX,YMAX,NOTREES,XSLOPE,YSLOPE,BEARING,SHADEHT

XMAX and YMAX are the lengths of the plot in x- and y-directions, respectively (m) - essential. NOTREES is the total number of trees in the plot - essential. XSLOPE and YSLOPE are the slopes of the plot in x- and y- directions (degrees) - default zero. BEARING is the bearing of the x-axis from SOUTH (degrees) - essential. The stocking is given by NOTREES / (XMAX * YMAX).

SHADEHT is a parameter to describe external shading of the plot, e.g. for shadecloth placed over a greenhouse. The greenhouse is assumed to be rectangular with corners at co-ordinates (0,0), (0,YMAX), (XMAX,0), (XMAX,YMAX). The shadecloth is assumed to be SHADEHT m high. It is assumed that no radiation passes through the shadecloth. Default: SHADEHT = 0.0 (i.e. no shading).

Plot Aerodynamics

NAMELIST /AERODYN/ ZHT, ZPD, Z0HT

Transpiration rate is also calculated from the conductance of the whole canopy. This is printed out in hrflux.dat to compare with the transpiration rate calculated by applying the P-M equation to each grid point. The canopy stomatal conductance is calculated as the sum of the individual leaf conductances. The canopy boundary layer conductance is calculated from

gb = K2 * U / (LN((ZHT - ZPD)/Z0HT))2 (T1)

(Jones 1992 eqn. 3.42). U is the above-canopy wind speed, K is von Karman's constant (in MAESTCOM), and the parameters required are ZHT (measurement height, m), ZPD (zero-plane displacement, m) and Z0HT (roughness length, m). If these parameters aren't specified, this calculation is not done.

X & Y Co-ordinates

NAMELIST /XY/ XYCOORDS

The X and Y co-ordinates of each tree can be specified explicitly in this namelist, in order x1, y1, x2, y2, .. etc. Alternatively, if this namelist is missing, then the trees will be assumed to be spaced evenly at a distance of SQRT (XMAX*YMAX / NOALLTREES).

Tree Dimensions - Specified for Individual Trees

NAMELIST /INDIVRADX/ NODATES, VALUES, DATES
NAMELIST /INDIVRADY/ NODATES, VALUES, DATES
NAMELIST /INDIVHTCROWN/ NODATES, VALUES, DATES
NAMELIST /INDIVHTTRUNK/ NODATES, VALUES, DATES
NAMELIST /INDIVDIAM/ NODATES, VALUES, DATES
NAMELIST /INDIVLAREA/ NODATES, VALUES, DATES

The tree dimensions (the radii of the crowns in both X and Y directions (in m), the height of the crown and the trunk space (both in m), the stem diameter (in m) and the leaf area (in m2 tree-1)) can be specified for each tree individually, using these namelists. They can be specified on a series of dates - linear interpolation is used between those dates.

If they are to be constant throughout the simulation, then NODATES should be 1. DATES can be omitted. VALUES should be given in order of tree number.

If they are specified for a series of dates, then both NODATES and DATES should be given - the dates in format ‘DD/MM/YY’. The values should be given in a table with a row for each tree and a column for each date.

The stem diameter is only used for calculating the woody respiration. If it is missing, woody respiration is not calculated. If any of the other dimensions are missing, an error will occur. The stem diameter should be specified at the height required for the allometric relationship between height, diameter, and woody biomass.

Tree Dimensions - Specified for All Trees

NAMELIST /ALLRADX/ NODATES, VALUES, DATES
NAMELIST /ALLRADY/ NODATES, VALUES, DATES
NAMELIST /ALLHTCROWN/ NODATES, VALUES, DATES
NAMELIST /ALLHTTRUNK/ NODATES, VALUES, DATES
NAMELIST /ALLDIAM/ NODATES, VALUES, DATES
NAMELIST /ALLLAREA/ NODATES, VALUES, DATES

Alternatively, the tree dimensions (the radii of the crowns in both X and Y directions, the height of the crown and the trunk space, stem diameter and the leaf area (in m2 tree-1)) can be assumed to be the same for all trees, and the common values input using these namelists. As for the dimensions for individual trees, the dimensions of all trees can be specified on a series of dates, with linear interpolation being used between those dates.

If the values are to be constant throughout the simulation, then NODATES should be 1, DATES can be omitted, and VALUES should just consist of the single number.

If the values are specified for a series of a dates, then both NODATES and DATES should be given - the dates in format ‘DD/MM/YY’. The values should be given in date order.

It is not necessary to use the same format for all dimensions - for example, the height of all trees may be assumed the same, whereas leaf area may be specified for each tree. Similarly, different dates may be given for each dimension - height may be constant throughout the simulation, with leaf area changing.

Phenology of leaf area development

The development of leaf area may be modelled by specifying leaf area on different dates, or by using the phenology model described by Wang, Rey & Jarvis (1998, GCB). To use this phenology model, replace the INDIVLAREA or ALLLAREA namelist by the following:

NAMELIST /PHENOLOGY/ FLUSHDATE, DT1, DT2, DT3, DT4, EXPTIME, MAXLEAVES, SIZELEAF

where FLUSHDATE is the date of flushing (‘DD/MM/YY’); DT1, DT2, DT3, and DT4 are the number of days from the flush date to the end of the first flush, end of the second flush, start of leaf senescence, and end of leaf senescence, respectively; EXPTIME is the time taken for a single leaf to fully expand (days); MAXLEAVES is the maximum number of leaves, and SIZELEAF is the mean leaf size (m2). The maximum leaf area is thus given by MAXLEAVES*SIZELEAF. It is currently assumed, using this model, that all trees have the same leaf area.

3.3 met.dat

The first line of the file is the file title.

This is followed by several namelists, the essential ones being one which gives met values which do not change, one for the latitude and longitude, and one which specifies the format of the file.

Then there is the line
DATA STARTS
followed by the actual data. Note that the line DATA STARTS must be in exactly that format, ie caps, and no tabs or following blank spaces.

Constant met data

NAMELIST /ENVIRON/ CA, PRESS, DIFSKY, SWMIN, SWMAX

CA is the atmospheric CO2 concentration, in mmol mol-1, which is assumed not to vary with time. This value is only used if the ‘CA’ column is missing from the met file. If there is no value of CA in either met or phy files, an error will occur.

PRESS is the atmospheric pressure, in Pa, also assumed not to vary with time. This value is only used if the ‘PRESS’ column is missing from the met file. The default value for PRESS is 1.0125 * 105.

DIFSKY controls the distribution of diffuse radiation incident from the sky. The distribution function is given by

G(q) = (1 + DIFSKY*cos(q)) / (1 + 2/p DIFSKY) (M1)

For a uniform overcast sky, DIFSKY = 0.0 (default). See Wang & Jarvis (1990) Silva Carelica 15:167-180 and Steven & Unsworth (1980) Quart. J. Roy. Meteorol. Soc. 105: 593-602 for more information about DIFSKY.

SWMIN and SWMAX are the minimum and maximum soil water contents. They should be in the same units as soil water values (specified in main met data). Soil moisture deficit is calculated as:
SMD = (SWMAX – SW) / (SWMAX – SWMIN)   (M2)

Latitude & Longitude

NAMELIST /LATLONG/ LATHEM,LAT,LONHEM,LONG,TZLONG

LATHEM is either ‘N’ or ‘S’, indicating the hemisphere. Similarly, LONHEM is either ‘W’ or ‘E’. LAT and LONG are the latitude and longitude, respectively. Both are arrays of three numbers, indicating the degrees, minutes, and seconds. TZLONG is the longitude of the meridian of the time zone, specified in degrees. (NB all times should be standard time, not daylight savings time).

Daily temperature amplitude

NAMELIST /BRISTO/ DELTAT

If incident radiation values are missing, the program can use the formula of Bristow & Campbell (1984) Ag For Met 31: 159-166 to calculate incident PAR from air temperature. To use this option the above namelist must be specified. DELTAT should have 12 values representing the mean monthly daily temperature amplitude for each month of the year.

Format

NAMELIST /FORMAT/ DAYORHR, NOCOLUMNS, COLUMNS, START, END

DAYORHR is a flag indicating whether the met file is daily (DAYORHR = 0) or ‘hourly’ (DAYORHR = 1) data. The period of the met data should be specified by changing the constant KHRS in the header file maestcom; this specifies the number of periods a day is divided into. For example, for half-hourly data, KHRS would be set to 48; for hourly data, KHRS = 24. The program needs to be recompiled on changes to maestcom.

START and END are the start and end dates of the met data, respectively, which should be in format ‘DD/MM/YY’.

NOCOLUMNS gives the number of columns of meteorological data, and COLUMNS is a list of names describing the content of each column. The following names are recognised:

Name Units Definition If not specified
‘WIND’ m s-1 wind speed above the canopy Assumed = DEFWIND (defined in maestcom)
‘TAIR’ ºC air temperature Error. 
‘TSOIL’ ºC soil temperature Assumed = TAIR 
‘RH’ fraction relative humidity Calculated from VPD, VMFD or TAIR
‘RH%’ percent relative humidity (different units) "
‘VPD’ Pa vapour pressure deficit Calculated from RH, VMFD or TAIR
‘VMFD’ mmol mol-1 vapour pressure mole fraction deficit Calculated from RH or VPD, and PRESS
‘CA’ ppm atmospheric CO2 concentration Constant value from ENVIRON namelist used.
‘PAR’ mmol m-2 s-1 hourly incident photosynthetically active radiation Calculated from ‘RAD’. If RAD absent, calculated from TAIR (DELTAT needed). 
'RAD' W m-2 hourly incident total short-wave radiation Calculated from ‘PAR’. If PAR absent, calculated from TAIR (DELTAT needed). 
‘FBEAM’ fraction fraction of incident PAR which is direct-beam Calculated from PAR (Spitters et al 1986)
‘PRESS’ Pa atmospheric pressure Constant value from ENVIRON namelist used.
‘TDEW’ ºC Dewpoint temperature RH or VPD used.
'SW' Same as SWMAX  Soil water content.  Not used. 

- for daily data:
 
Name Units Definition If not specified
‘WIND’ m s-1 wind speed above the canopy Assumed to be zero.
‘TMIN’ ºC minimum daily temperature Error. 
‘TMAX’ ºC maximum daily temperature Error. 
‘CA’ ppm atmospheric CO2 concentration Constant value from ENVIRON namelist used.
‘PAR’ or 'SI' MJ d-1 daily incident radiation (PAR = photosynthetically active radiation, 400 - 700 nm; SI = total shortwave radiation) Error. 
‘FBEAM’ fraction fraction of incident PAR which is direct-beam Calculated from PAR (Spitters et al 1986)
'SW' Same as SWMAX  Soil water content.  Not used. 

It doesn’t matter what order these columns are in, so long as the columns of data correspond to the titles in the namelist. The available options are fairly readily extended through the functions OPENMETF, GETMETHR and GETMETDAY. Additional (unused) columns should be identified by some other name to those above; they will then be ignored by the program.

The program does not handle missing met data at all; all data must be specified.

3.4 str.dat

First line: title of str file.

Following that, all input is in namelist blocks. These may be in any order.

Crown shape

NAMELIST /CANOPY/ CSHAPE

CSHAPE is a string indicating the shape of the crown: ‘CONE’ indicates a conical crown, ‘ELIP’ a half-ellipsoidal crown, ‘PARA’ a paraboloidal crown, ‘ROUND’ a full ellipsoid, ‘CYL’ an upright cylinder, ‘BOX’ a box shape (suitable for the mini-ecosystems, for example). Default: half-ellipsoidal.

Leaf incidence angle

NAMELIST /LIA/ ELP,NALPHA,FALPHA,AVGANG

Alternatives:

(a) AVGANG > 0
The mean leaf inclination angle is specified by AVGANG. If NALPHA = 1, there is just on leaf angle class with angle AVGANG. If NALPHA > 1, AVGANG is used to generate the LIA distribution assuming an elliptical distribution.

(b) ELP > 0.0
ELP is the parameter of an ellipsoidal leaf angle distribution: it represents the ratio of the horizontal and vertical axes of an ellipsoid. If ELP = 1, the distribution is spherical; if ELP = 0.5, the distribution is erectophile; and if ELP = 2, the distribution is planophile. If NALPHA = 1: there is just one leaf angle class, and the average leaf angle is given by AVGANG or AVGANG(ELP). If NALPHA > 1 (max 9): there are NALPHA leaf angle classes, and the distribution of angles is elliptical with parameter ELP.

(c) ELP < 0.0
The proportion of leaf area in each angle class is read in from array FALPHA. The number of angle classes is given by NALPHA (max 9).

Default values: NALPHA = 1, ELP = 1.0 (i.e. one leaf angle class, spherical distribution).

Beta distributions for leaf area density

NAMELIST /LADD/ JLEAF,NOAGEC,BPT,RANDOM

If JLEAF = 0, the leaf area density is assumed to be uniform. If JLEAF = 1, it is assumed to follow a beta distribution in the vertical direction only. If JLEAF = 2, then it is assumed to follow beta distributions in both vertical and horizontal directions. Default: 0.

NOAGEC is the number of age classes for which beta-distributions are specified. If NOAGEP (the number of age classes for physiology parameters, specified in phy.dat) is not equal to 1, then NOAGEC must equal 1 or NOAGEP.

BPT contains the coefficients of the beta distributions for NOAGEC age classes. The beta distribution for each age class has six parameters, a, b, c, d, e, f:

f(r,h) = a hb (1-h)c d re (1 - r)f    (G1)

where f(r,h) is the normalised leaf area density (see below) at relative height h (0, crown base; 1, crown top) and relative radius r (0, next to trunk; 1, exterior of canopy). The parameters should be given in the order a, b, c, d, e, f, for each age class. If JLEAF = 1, the parameters of the horizontal distribution (d,e,f) should still be given but will not be used; they can be set to zero.

Important note: the parameters a and d must be determined from the following constraints:

(a) the integral of a hb (1-h)c from h = 0 to h = 1 must = 1

(a) the integral of d re+1 (1 - r)f from r = 0 to r = 1 must = 1/2p

For more information about the beta distributions see Wang et al (1990) Forest Ecology & Management 32: 217-237.

RANDOM describes the level of clumping of foliage into shoots: it is given by the ratio of projected shoot area to projected needle area. Default: 1.0.

Decline in wind speed with depth in the canopy

NAMELIST /AERO/ EXTWIND

The wind speed declines exponentially with depth in the canopy, where EXTWIND is the exponential coefficient. The windspeed at canopy depth D, W(D) is given by

W(D) = W(0)*exp(-EXTWIND*D)

(Default: EXTWIND = 0).

Allometric relationships for biomass

NAMELIST /ALLOM/ COEFFT, EXPONT, WINTERC
NAMELIST /ALLOMB/ BCOEFFT, BEXPONT, BINTERC
NAMELIST /ALLOMR/ RCOEFFT, REXPONT, RINTERC, FRFRAC

The woody biomass is calculated using the following allometric relationship:

WBIOM = COEFFT * HEIGHT * DIAMEXPONT + WINTERC (S1)

where: WBIOM is the woody biomass (in kg DW tree-1), HEIGHT is the total height of the tree in m (green height + trunk length), DIAM is the stem diameter in m, and COEFFT, EXPONT and WINTERC are parameters. The diameter should be specified (in trees.dat) at the height for which they were used to develop this allometric relationship. The woody biomass is only used to calculate the woody respiration rate.

Branch biomass and total root biomass are calculated using the same equations, again from stem height and diameter, but using different parameters. Fine root biomass is assumed to be a constant fraction (FRFRAC) of total root biomass. Again, these biomass estimates are only used to calculate respiration rates.
 

3.5 phy.dat

First line: title of physiology file.

Following that, all input is in namelist blocks. These may be in any order.

Number of age classes of foliage

NAMELIST /NOAGES/ NOAGEP

NOAGEP is the number of age classes for which physiological parameters are specified. If NOAGEC (the number of age classes for which leaf area density distributions are specified, given in str.dat) is not equal to 1, then NOAGEP must equal 1 or NOAGEC. The parameters NFOL, JMAX, VCMAX and RD can be specified for different age classes of foliage. However they do not all need to be specified for all age classes - but they must either be specified for all foliage or for NOAGEP age classes. Neither NOAGEP nor NOAGEC should exceed MAXC, specified in maestcom. If NOAGEP = 1, then this namelist can be omitted.

Proportions of leaf area in each age class

NAMELIST /PHENOL/ PROP

PROP is an array containing the proportion of leaf area in each age class. This is only read in if either NOAGEP > 1 or NOAGEC > 1. NOAGEP or NOAGEC indicate how many entries there should be in this array (maximum MAXC, in maestcom). Also, the entries in the array should sum to one.

Reflectance and transmittance

NAMELIST /ABSORP/ NOLAYERS,RHOSOL,ATAU,ARHO

NOLAYERS is the number of crown layers for which reflectance and transmittance are specified.

RHOSOL is the soil reflectance, in three wavebands (PAR, NIR, thermal).

ATAU is the leaf transmittance, also in three wavebands, and for NOLAYERS crown layers. It should be specified with the values for different layers in columns and the values for different wavelengths in rows.

ARHO is the leaf reflectance, which should be specified similarly to ATAU.

Stomatal conductance parameters

NAMELIST /JARGS/ GSREF, GSMIN, PAR0, D0, VPD1, VPD2, VK1, VK2, VMFD0, GSJA, GSJB, T0, TREF, TMAX, WLEAF, NSIDES, SMD1, SMD2
NAMELIST /BBGS/ G0,G1,GAMMA,WLEAF,NSIDES, SMD1, SMD2
NAMELIST /BBLGS/ G0,G1,D0L,GAMMA,WLEAF,NSIDES, SMD1, SMD2

The flag MODELGS (read in namelist CONTROL) indicates which stomatal conductance model is to be used, and hence, which set of parameters to read. If MODELGS = 2, BBGS is read; if MODELGS = 3, BBLGS is read; otherwise, JARGS is read.

In all cases, the stomatal conductance referred to is the conductance to CO2. This is converted in the program to conductance to water vapour by multiplying by the constant GSVGSC = 1.57 (in maestcom).

For all models, WLEAF is the width of the leaf in m, used in calculating the boundary layer conductance (Leuning et al 1995 PC&E 18:1183-1200). NSIDES is the number of sides of the leaf with stomata; default 1.

For all models, the effect of soil moisture deficit (q) is calculated by multiplying gs by

f(q) = 1 – SMD1 * exp( SMD2 * q)

where q is the soil moisture deficit, calculated from the soil moisture content SW given in file met.dat (if present).

In the Ball-Berry model (BBGS), stomatal conductance is given by

gs = G0 + G1 * A * RH / (CA – GAMMA) (P1)

where gs (mol m-2 s-1) is the stomatal conductance to CO2, A (mmol m-2 s-1) is the assimilation rate, RH is the relative humidity, CA (mmol mol-1) is the atmospheric CO2 concentration and G0 (mol m-2 s-1), G1 (dimensionless), and GAMMA (mmol mol-1) are input parameters.

In the Ball-Berry-Leuning model (BBLGS), stomatal conductance is given by

gs = G0 + G1 * A / (CA – GAMMA) / (1 + VPD/D0L) (P2)

where gs (mol m-2 s-1) is the stomatal conductance to CO2, A (mmol m-2 s-1) is the assimilation rate, VPD (Pa) is the vapour pressure deficit, CA (mmol mol-1) is the atmospheric CO2 concentration and G0 (mol m-2 s-1), G1 (dimensionless), D0L (Pa) and GAMMA (mmol mol-1) are input parameters.

In the Jarvis model, stomatal conductance is given by

gs = GSREF * f(T) * f(VPD) * f(CO2) * f(PAR) + GSMIN (P3)

where GSREF and GSMIN are the maximum and minimum stomatal conductances to CO2 (mol m-2 s-1), respectively, and the f’s are functions of environmental variables. The functions to be used are specified by the flag MODELGS (in confile.dat). MODELGS (in confile.dat) can be up to three digits long, e.g. ijk. The first digit i indicates which T-response to use; j indicates the VPD response; and k indicates the CO2 response.

Temperature response:

i = 0: The following quadratic temperature response is used:

 i = 1: A power function is used: where P = (TMAX – TREF) / (TREF – T0).

For both T-responses, the three parameters to be specified are T0 (minimum temperature), TREF, and TMAX (maximum temperature), all in ° C. Note that if TMAX <= 0, f(T) = 1 in both cases, i.e. there is no temperature response.

VPD response:

j = 0: A non-linear response to VPD is used:

where the input parameter required is D0 (Pa).

j = 1: A linear response to the vapour pressure mole fraction deficit (VMFD) is used:

where the input parameter is VMFD0 (mmol mol-1).

j = 2: A linear response to VPD is used:

Here the input parameters are VPD1 and VPD2 (Pa).

j = 3:Non-linear response to VPD:

f(VPD) = min(1,1/(VK1*VPD^VK2))    (P8a)

with parameters VK1 (Pa-1) and VK2 (dimensionless).

Note that in all cases these functions must lie between 0 and 1.

k = 0: A linear response to CO2 is used.

The parameter required is the slope GSJA (mol mmol-1).

k = 1: A non-linear response to CO2 is used.

The parameter required is GSJB (mmol mol-1).

PAR response:

Thus far only one PAR response is implemented, the following non-linear response:

The parameter required is PAR0 (mmol m-2 s-1).

Note that if all the above functions must lie between 0 and 1; either 0 or 1 is taken as the function value if these bounds are exceeded.

The particular functions given by equations P4, P6, P9, P10 & P11 are the ECOCRAFT-standard formulations; parameters for these equations are stored in the ECOCRAFT parameter database.

Leaf N content

NAMELIST /NFOLCON/ NODATES, NOLAYERS, NOAGES
NAMELIST /NFOL/ DATES, VALUES

If MODELJM = 1, or MODELRD = 1, indicating leaf N is required to calculate some of the parameters, then leaf N contents are read in. These can be specified for different dates, canopy layers, and foliage age classes.

NODATES gives the number of dates (maximum MAXPDATE), NOLAYERS the number of layers (maximum MAXLAY), and NOAGES the number of ages (maximum MAXC), for which leaf N is specified. An error occurs if the total number of values < NODATES * NOLAYERS * NOAGES.

DATES gives the dates at which N contents were specified, in the format ‘DD/MM/YY’. NODATES must be at least 1, but if it is only 1, then that value is used throughout the simulation.

VALUES gives the leaf N contents (in g m-2). They must be specified with the values for different layers in columns. The values for each date should be grouped together, with one row for each age class.

Photosynthetic parameters

The tables of Jmax and Vcmax (JMAXTABLE and VCMAXTABLE) may be either read in, or calculated from leaf N content. If they are read in (MODELJM = 0), the following namelists should be used:

NAMELIST /JMAXCON/ NODATES,NOLAYERS,NOAGES
NAMELIST /JMAX/ VALUES, DATES
NAMELIST /VCMAXCON/ NODATES,NOLAYERS,NOAGES
NAMELIST /VCMAX/ VALUES, DATES

In each case, NODATES gives the number of dates (maximum MAXPDATE), NOLAYERS the number of layers (maximum MAXLAY), and NOAGES the number of ages (maximum MAXC), for which leaf N is specified. An error occurs if the total number of values < NODATES * NOLAYERS * NOAGES.

DATES gives the dates at which JMAX & VCMAX were specified, in the format ‘DD/MM/YY’. NODATES must be at least 1, but if it is only 1, then those values are used throughout the simulation.

VALUES gives the parameter values (in mmol m-2 s-1). They must be specified with the values for different layers in columns. The values for each date should be grouped together, with one row for each age class. The values should be corrected to 25° C.

If the parameters are calculated from leaf N content, then the following namelist should be used:

NAMELIST /JMAXN/ JMAXA,JMAXB,VCMAXA,VCMAXB

Jmax is then calculated from leaf N content by Jmax = JMAXA * LEAFN + JMAXB. Similarly, Vcmax = VCMAXA * LEAFN + VCMAXB.

The other parameters required for photosynthesis are read in using the following namelists:

NAMELIST /JMAXPARS/ THETA, EAVJ, EDVJ, DELSJ, AJQ, IECO
NAMELIST /VCMAXPARS/ EAVC, EDVC, DELSC, TVJUP, TVJDN

where THETA is the curvature of the light-response curve of electron transport, AJQ is the quantum yield of electron transport, and the other parameters describe the temperature responses of Jmax and Vcmax. The light response of electron transport, J, is given by a non-rectangular hyperbola:

where I is the leaf absorbed PAR, and JMAX, AJQ and THETA are the parameters. The default value of AJQ is ALPHAQ = 0.425 (defined in maestcom). AJQ may also be specified by date, layer and age – see below.

IECO determines whether the temperature dependences of Km and G* are those of ECOCRAFT (IECO = 1 - default) or Bernacchi et al. (2001) Plant Cell Environ. 24:253-260 (IECO = 0).

The temperature response of JMAX is given by:

where T is the temperature in K, R is the gas constant, and EAVJ, EDVJ and DELSJ are the parameters.

The same function can be used for the temperature response of Vcmax. Alternatively, if EDVC £ 0, the simpler function

is used. The parameters TVJUP, TVJDN can be used to describe a linear decline to zero of Jmax and Vcmax at low temperature. They begin to decline linearly to zero at T = TVJUP °C and reach zero at T = TVJDN °C. Default value = -100°C.

Quantum yield of electron transport

If there is just a single value for the quantum yield of electron transport, it can be specified as AJQ in the namelist JMAXPARS as described above. It is also possible to specify values by age class, height and date, using the namelists:

NAMELIST /AJQCON/ NODATES,NOLAYERS,NOAGES
NAMELIST /AJQ/ VALUES,DATES

in the same way as parameters JMAX and VCMAX are specified (see above).

Leaf respiration parameters

The table of leaf respiration rates RD (RDTABLE) may be either read in, or calculated from leaf N content. If it is read in ( MODELRD = 0), the following namelists should be used:

NAMELIST /RDCON/ NODATES,NOLAYERS,NOAGES
NAMELIST /RD/ VALUES, DATES

In each case, NODATES gives the number of dates (maximum MAXPDATE), NOLAYERS the number of layers (maximum MAXLAY), and NOAGES the number of ages (maximum MAXC), for which leaf N is specified. An error occurs if the total number of values < NODATES * NOLAYERS * NOAGES.

DATES gives the dates at which RD was specified, in the format ‘DD/MM/YY’. NODATES must be at least 1, but if it is only 1, then those values are used throughout the simulation.

VALUES gives the leaf dark respiration rate (in mmol m-2 s-1). They must be specified with the values for different layers in columns. The values for each date should be grouped together, with one row for each age class.

If RD is to be calculated from leaf N content, then the following namelist should be used:

NAMELIST /RDN/ RDA, RDB

RD is then calculated from leaf N content by RD = RDA * LEAFN + RDB.

The other parameters required for leaf respiration are read in using the following namelist:

NAMELIST /RDPARS/ EFFYRF, Q10F, RTEMP, DAYRESP, TBELOW

Q10F is the exponential coefficient of the temperature response of foliage respiration, and RTEMP (° C) is the temperature at which the values of RD are specified:

TBELOW is the minimum temperature at which respiration occurs; below this, Rd(T) is set to zero. This applies to respiration of all plant components. Default: -100°C.

DAYRESP is the fraction by which dark respiration is reduced in the light. The daily foliage growth respiration is calculated by multiplying EFFYRF (g g-1 C) by the increment in leaf biomass (obtained from the increment in leaf area and the SLA).

Specific leaf area

The specific leaf area is required only for calculating the foliage growth respiration, for which foliage biomass is needed. SLA can be specified using the following namelists:

NAMELIST /SLACON/ NODATES,NOLAYERS,NOAGES
NAMELIST /SLA/ VALUES, DATES

In each case, NODATES gives the number of dates (maximum MAXPDATE), NOLAYERS the number of layers (maximum MAXLAY), and NOAGES the number of ages (maximum MAXC), for which SLA is specified. An error occurs if the total number of values < NODATES * NOLAYERS * NOAGES.

DATES gives the dates at which SLA was specified, in the format ‘DD/MM/YY’. NODATES must be at least 1, but if it is only 1, then those values are used throughout the simulation.

VALUES gives the specific leaf area (in m2 kg-1). The values must be specified with the values for different layers in columns. The values for each date should be grouped together, with one row for each age class.

Woody respiration rates

NAMELIST /WRESP/ EFFY, RM, RMA, RTEMP, Q10W, STEMFORM
NAMELIST /COLLWRESP/ COLLA, COLLK, STEMSDW

The parameters in these namelists are used in calculating woody respiration as follows. Stem maintenance respiration is calculated on an hourly basis according to:

 R = RMW * exp(Q10W * (TAIR - RTEMP)) * WBIOM   (P16)

where RMW is the maintenance respiration rate per unit mass (in umol kg-1 DW s-1 or nmol g-1 DW s-1) at temperature RTEMP, Q10W is the temperature response factor, and WBIOM is the woody biomass (in kg DW) which is calculated from height and diameter according to the allometric relation given under str.dat.

There are three methods by which RMW can be specified, using the control parameter RDMODEL in confile.dat.
(1) If RDMODEL = 0 and RM > 0, then RMW = RM, the maintenance respiration rate per unit mass.

(2) If RDMODEL = 0 and RM = 0, the program will look for RMA, which is the rate of maintenance respiration per unit stem surface area (in umol m-2 s-1). This is converted to a value for RMW according to
   STEMAREA = STEMFORM*PI*(DIAM**2)*HT
   RMW = RMA*STEMAREA/WBIOM
where STEMFORM is a parameter.

(3) If RDMODEL = 1, then the base rate of woody maintenance respiration (RMW) is calculated from the stem diameter according to
RMW = CA * exp(CK * DIAM) * STEMSDW (P17)
where CA and CK are parameters and STEMSDW is the stem surface area: dry weight ratio in m2 kg-1. For more information on this model, see Valentini et al (1996) Global Change Biol. 2: 199-207.

The daily woody growth respiration is calculated from the increment in woody biomass on that day according to

RESPWG = WBINC * EFFY (P18)

where EFFY is the efficiency of woody biomass growth (g g-1 C) and WBINC is the daily increment in woody biomass (g DW d-1) which is calculated from the changes in height and diameter, using the allometric relation given in str.dat.

Branch and root respiration rates

NAMELIST /BRESP/ RMB, RTEMPB, Q10B
NAMELIST /RRESP/ RMFR, RMCR, RTEMPR, Q10R

Branch respiration rates are calculated as:

R = RMB * exp(Q10B * (TAIR - RTEMPB)) * BBIOM (P19)

where the parameters required are: the maintenance respiration rate RMB (umol kg-1 DW s-1 at temperature RTEMPB and the temperature response parameter Q10B. BBIOM is the branch biomass which is calculated from tree height and diameter (see str.dat). Fine and coarse root respiration rates are calculated similarly. RMFR is the maintenance respiration rate for fine roots; RMCR that for coarse roots. Fine and coarse roots are assumed to have the same temperature response parameter RTEMPR.


OUTPUT FILES

3.6 dayflx.dat

The file containing daily output values of radiation absorbed, photosynthesis and transpiration. The format is
(1) five lines giving the titles of the input files
(2) several lines describing the content of the columns of output (with units)
(3) the actual output.
Notes:
- Both gross photosynthesis, and photosynthesis net of foliage maintenance respiration, are given. Other respiration components are not subtracted.
- Two estimates of transpiration are given (both in mol H2O tree-1 d-1). The first is calculated by applying the Penman-Monteith equation at every grid point. The second is calculated by applying the Penman-Monteith equation to the canopy as a whole.

- The sensible heat flux will only be calculated if the leaf energy balance is calculated (see under confile.dat).

3.7 hrflux.dat

This file is only created if IOHRLY > 0 (in confile.dat). It contains hourly output values. The format is essentially the same as that of the daily output file, except that values are given on an hourly basis. The additional values reported are the hourly woody maintenance respiration (the sum of stem and branch respiration) and the canopy stomatal conductance (calculated by summing gs over the canopy).

3.8 layflx.dat

This file is only created if IOHRLY > 1. It lists the leaf area and values of Jmax and Vcmax in each layer of the canopy. (Leaf area is obtained by summing over the gridpoints in that layer).

For each hour it gives three rows of output. The top row is the absorbed PAR in each layer (mmol m-2 leaf s-1), the second row is the photosynthesis (mmol m-2 leaf s-1), and the third row is the transpiration (mmol m-2 leaf s-1).

The values for the topmost layer are always on the left.

resp.dat

This file is created if IORESP > 1, or if the program resp.exe is run. It gives daily growth and maintenance respiration estimates for all organs (foliage, stem, branch, coarse root, and fine root).

ptflx.dat

This file is only created when you run MAESHR instead of MAESTRA. This program is created by compiling together the usual Fortran files with maeshr.for instead of maestra.for. When it runs, the program will ask:

ENTER HOUR NUMBER (1 - X):

where X is the number of periods in the day (24 for hourly, 48 for half-hourly input data). Simulations are only done for that hour. The output file created, ptflx.dat, contains outputs for each grid point, sorted by canopy layer. This program is useful for examining the MAESTRA output in closer detail. The outputs for each point are:

PT: point number
X: x co-ordinate of point (m)
Y: y co-ordinate of point (m)
Z: height of point (m)
VOL: volume assoc. with point (cm3)
LA: leaf area assoc. with point (cm2)
SLA: fraction of leaf area which is sunlit
RBM: absorbed direct-beam PAR (mmol m-2 s-1)
RDF: absorbed sky diffuse PAR (mmol m-2 s-1)
RSC: absorbed scattered PAR (mmol m-2 s-1)
ABM: photosyn of sunlit LA (mmol m-2 s-1)
GBM: stom cond of sunlit LA (mmol m-2 s-1)
ADF: photosyn of shaded LA (mmol m-2 s-1)
GDF: stom cond of shaded LA (mmol m-2 s-1)
TBM: leaf temperature of sunlit foliage (oC)
TDF: leaf temperature of shaded foliage (oC)
WIND: wind speed at level of grid point (m s-1)
ETBM: transpiration of sunlit foliage (umol m-2 s-1)
ETDF: transpiration of shade foliage (umol m-2 s-1)
RNB: net radiation absorbed by sunlit foliage (J m-2 s-1)
RND: net radiation absorbed by shaded foliage (J m-2 s-1)
GBBM: the boundary layer conductance for sunlit foliage (mol m-2 s-1)

GBDF: the boundary layer conductance for shaded foliage (mol m-2 s-1)

3.11 Maeserr.dat

A typical output after a successful run of the program might look like this:

WARNING: DEFAULT VALUE: NOAGEP=1
FORTRAN ERROR CODE NO: -1
LEAF N ARRAY:
JMAX ARRAY:
VCMAX ARRAY:
WARNING: WOODY GROWTH RESP NOT CALCULATED
FORTRAN ERROR CODE NO: -1
WARNING: WOODY MAINT RESP NOT CALCULATED
FORTRAN ERROR CODE NO: -1
X RADII ARRAY:
Y RADII ARRAY:
CROWN HEIGHT ARRAY:
TRUNK HEIGHT ARRAY:
LEAF AREA ARRAY:

DIAMETER ARRAY:

The lines concerning arrays indicate that the arrays were read in correctly. The WARNING: lines indicate parameter values which were missing, e.g. if you wanted to use a default value of a parameter. Check these lines to make sure that the defaults were what you intended.

 An example of a fatal error:
 

ERROR READING PLOT DETAILS

FORTRAN ERROR CODE NO: -1

This indicates that the plot details were incorrectly specified.

The most common error codes are -1 (which indicates the entire namelist was missing) and 6511 (which indicates that an unknown name was found in a namelist). . If no error code is given, then there is a logical error in the values, which should be indicated by the error message.