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:
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:
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.
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:
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.
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:
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.
The first line should give the title of file.
Following that, all input is in namelist blocks, which may be in any order.
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.
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:
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).
NAMELIST /MODEL/ MODELGS, MODELJM, MODELRD, MODELRW,
MODELSS, ITERMAX
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.
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.
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.
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.
First line: title of file.
Following that, all input is in namelist blocks, which may be in any order.
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).
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.
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.
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.
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)
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.
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.
First line: title of str file.
Following that, all input is in namelist blocks. These may be in any order.
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.
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.
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.
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:
= (T - T0) (2 TMAX - T0 - T) / [(TREF - T0) (2 TMAX – T0 - TREF)] for T0 < T < 2 TMAX – T0
= 0 for T > 2 TMAX – 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:
j = 1: A linear response to the vapour pressure mole fraction deficit (VMFD) is used:
j = 2: A linear response to VPD is used:
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.
k = 1: A non-linear response to CO2 is used.
PAR response:
Thus far only one PAR response is implemented, the following non-linear response:
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.
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.
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:
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:
The same function can be used for the temperature response of Vcmax. Alternatively, if EDVC £ 0, the simpler function
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).
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:
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).
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.
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.
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).
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.
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).
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:
A typical output after a successful run of the program might look like this:
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:
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.