Plant Growth Model Oop Project
Plant Growth Model Oop Project
2. Problem Description
Integration
Output
4. Method LAIS() to calculate increase in leaf area
index dLAI. Daily output is written to the PLANT.OUT file.
The plant cycle is divided into vegetative and
reproductive phases. The vegetative phase continues Close
until the plant reaches a genetically determined
maximum leaf number (Lfmax). During the vegetative
The PLANT.OUT output file is closed.
phase, leaf number increase (dN) is calculated based on
a maximum rate (rm) and a temperature based limiting
factor (PT). During reproductive phase, di, the 3.2 Soil Water Class
difference between daily mean temperature and a base
temperature (tb), is used to calculate the rate of plant A single, homogeneous soil layer underlain by a relatively
development. Total rate of development towards impervious layer is assumed for the model. A simple water
balance is used to update the soil water content on a daily Cumulative values of rainfall (TRAIN), irrigation
basis using computed values of infiltration, evaporation, (TIRR), soil evaporation (TESA), plant transpiration
transpiration and drainage. (TEPA), runoff (TROF), vertical drainage (TDRN), and
The soil characteristics defined are soil water content infiltration (TINF) are set to zero for the beginning of the
at wilting point (WPp), field capacity (FCp) and saturation simulation.
(STp) all in units of cm3/cm3; soil profile depth (DP in cm),
daily drainage fraction (DRNp), curve number (CN) and Rate calculations
initial soil water content (SWC_INIT in mm).
The soil water class calculates two parameters Irrigation rates are read from file IRRIG.INP.
(SWFAC1 and SWFAC2) which express the effects of Potential infiltration (POTINF) is calculated as the sum
drought and excess soil water respectively on crop growth of rainfall (RAIN) and irrigation (IRR). Cumulative
rate. These factors vary from 1.0 (minimum stress) to 0.0 irrigation and rainfall depths are summed to TIRR and
(maximum stress). TRAIN, respectively.
In addition to soil characteristics and weather data, this Method DRAINE() is called to compute vertical
class requires the value of leaf area index (LAI), which is drainage of soil water (DRN in mm) based on a daily
computed in the plant class, to calculate potential fraction of the soil water content above field capacity:
evapotranspiration. DRN = (SWC - FC) * DRNp
Details of functionality of the class are as under: If potential infiltration (POTINF) is greater than zero,
method RUNOFF() is called to compute daily surface water
Initialization runoff rates (ROF) using the SCS curve number method:
In the ‘initialization’ portion of the code, input files IF (POTINF > 0.2 * S) THEN
SOIL.INP and IRRIG.INP and output file SW.OUT are ROF = ((POTINF - 0.2 * S)**2)/(POTINF + 0.8 * S)
opened. The required soil input data is read from file ELSE
SOIL.INP and the file is closed. These input variables ROF = 0
are listed in Table 2. Headers are written to output file ENDIF
SW.OUT.
Units for the soil parameters are converted from Infiltration (INF) is calculated as the difference
volumetric fractions to mm of water as: between potential infiltration and runoff, i.e.
WP = DP * WPp * 10.0 INF=POTINF-ROF
FC = DP * FCp * 10.0 Method ETpS() calculates the daily
ST = DP * STp * 10.0 where WP, FC and ST are the potential evapotranspiration rate (ETp) based on the
wilting point, field capacity and saturation content in mm Priestly-Taylor method. The surface albedo (ALB) is
of water, respectively. Other variables are as defined in estimated as a weighted average (based on LAI) of the
Table 2. albedo of the soil (0.1) and crop (0.2).
ALB = 0.1 * EXP(-0.7 * LAI) + 0.2 * (1 - EXP(-0.7 * LAI))
The average temperature during the day (Tmed) and the
equilibrium evaporation (EEQ) are calculated as: Tmed =
0.6 * TMAX + 0.4 * TMIN
EEQ = SRAD * (4.88E-03 - 4.37E-03 * ALB) * (Tmed +
29)
The equilibrium evaporation rate is adjusted by a coefficient
(f) resulting in the final value of ETp.
Next, the potential soil evaporation (ESp) and plant
transpiration (EPp) rates are calculated using the same
weighting coefficient used for albedo: ESp = ETp * EXP(-
For initialization, method RUNOFF() is called to 0.7 * LAI)
compute soil storage capacity (S) based on the Soil EPp = ETp * (1 - EXP(-0.7 * LAI))
Conservation Service runoff curve number method: Method ESaS() calculates the actual daily soil evaporation
S = 254 * (100/CN - 1) rate (ESa) based on current soil water availability. No
Then, method STRESS() is called to calculate the evaporation occurs if the soil water content is less than the
threshold soil water content below which drought stress wilting point, and the potential evaporation is met if soil
will occur (THE). This is approximated as: THE = WP water content is greater than field capacity. Between the
+ 0.75 * (FC - WP) Initial stress factors (SWFAC1 and wilting point and field capacity, the
SWFAC2) are then calculated based on initial soil water actual evapotranspiration varies linearly between 0.0 and
content. This is discussed in more detail later. the potential evapotranspiration rate:
IF (SWC < WP) THEN a capacity is met. The depth to the water table (DWT in mm)
=0 is then computed.
ELSEIF (SWC > FC) THEN WTABLE = (SWC - FC) / (ST - FC) * DP * 10.
a=1 DWT = DP * 10. - WTABLE
ELSE Minimum excess soil water stress (SWFAC2 =
a = (SWC - WP)/(FC - WP) 1.0) occurs when the water table thickness is zero.
ENDIF Maximum stress (SWFAC2 = 0.0) occurs when the depth
ESa = ESp * a to the water table (DWT) is greater than 250 mm
The potential plant transpiration rate (EPp) is reduced by (STRESS_DEPTH = 250 mm). The excess water stress
the minimum soil water stress factor (SWFAC1 or factor is linearly interpolated between these water table
SWFAC2) to obtain the actual plant transpiration rate conditions.
(EPa) IF (DWT > STRESS_DEPTH) THEN
SWFAC2 = 1.0
Integration ELSE
SWFAC2 = DWT / STRESS_DEPTH
The integration portion of the soil water class updates the ENDIF
value of the soil water content based on the computed
values of infiltration (INF), soil evaporation (ESa), plant Output
transpiration (EPa), and vertical drainage (DRN): SWC =
SWC + (INF - ESa - EPa - DRN) Daily values are written to output file SW.OUT.
The computed value is limited to a maximum of the
saturation content (ST) and a minimum of zero. If the
computed soil water content exceeds saturation, runoff Close
rates and soil water content are adjusted.
IF (SWC>ST) ROF=ROF+(SWC- At the end of simulation, method WBAL()is called to check
ST) that the seasonal water balance is zero, i.e., that changes in
SWC=ST soil water content are equal to cumulative inflows and
END IF outflows. A water balance report is written (WBAL.OUT).
An additional adjustment factor Files SW.OUT and IRRIG.INP are closed.
(SWC_ADJ) is introduced if the computed soil water
content is less than zero.
3.3 Weather class
IF (SWC<0)
SWC_ADJ=SWC_ADJ-SWC
SWC=0 Upon initialization, the weather file (WEATHER.INP) is
END IF opened. In the rate calculations section, weather values are
Cumulative infiltration (TINF), read into the model on a daily basis from WEATHER.INP.
evaporation (TESA), transpiration (TEPA), drainage Table 3 lists the weather input data read.
(TDRN) and runoff (TROF) are then updated. The close section is invoked to close the weather input file.
Method STRESS() is then called to compute soil
water stress factors based on the updated soil water content
values. The drought stress factor (SWFAC1) is 1.0
(minimum stress) if the soil water content (SWC) is greater
than the threshold value computed in the ‘initialization’
section (THE). Below the wilting point, maximum stress
occurs (SWFAC1 = 0.0). Between these ranges, the stress
factor is linearly distributed.
IF (SWC < WP) THEN
SWFAC1 = 0.0
ELSEIF (SWC > THE) THEN
SWFAC1 = 1.0
ELSE
SWFAC1 = (SWC - WP) / (THE - WP)
SWFAC1 = MAX(MIN(SWFAC1, 1.0), 0.0)
ENDIF
The thickness of the water table measured from
the bottom of the soil profile (WTABLE in mm) is
calculated using the excess water available after field