Link to home

Simulation Modeling in Botanical Epidemiology and Crop Loss Analysis

Chapter 9: The RICEPEST and WHEATPEST Models


This chapter introduces two sibling simulation models that have been developed to simulate yield losses due to rice pests (RICEPEST) and yield losses due to wheat pests (WHEATPEST). Both models have many features in common:

  • Objectives of developing RICEPEST and WHEATPEST. Both models were developed in order to simulate yield losses caused by pests (diseases, insects, weeds), individually or in combination, under a range of production situations. This allows (1) a ranking of the pests according to their importance in terms of the yield losses they cause in various production situations and (2) a simulation of the yield gains associated with new technologies, including plant protection methods. The results can provide a formal basis for long term strategies in crop health management, e.g., priority setting for research.

  • Conceptual framework. Both models have been developed under the conceptual framework of GENECROP and GENEPEST described in the previous chapters, where relationships between production situations, yield levels, and damage mechanisms are formally captured into simulation models.

  • Generic structure of the models. Both RICEPEST and WHEATPEST are built according to the same GENECROP structure, which has been described in Chapter 7 for the simulation of crop growth, and which accounts for damage mechanisms as described under GENEPEST in Chapter 8. In both the rice and the wheat systems, the system considered is 1 m2 of crop in a field, with a time step of one day. Contrary to RICEPEST, WHEATPEST does not include a component for the dynamics of tillers, because the pests addressed in the wheat model do not entail injuries directly affecting tillers.

The purpose of this chapter is to introduce the reader to models that account for multiple injuries. The way these models behave with varying levels of differing injuries is shown later with the simulation models. The details of the models are not discussed, but the reader will find full listings of the programs in Appendices 9.1 and 9.2, as well as references.

Damage mechanisms for a set of pests in rice

The different rice pests addressed and the mechanisms are summarized in Table 9.1. The details of the inclusion of these damage mechanisms in RICEPEST can be found in Willocquet et al. (1998, 2000, 2002, 2004), and are implemented in the RICEPEST.STMX file.

TABLE 9.1

Damage mechanisms for a set of pests in wheat

The different wheat pests addressed and the mechanisms are summarized in Table 9.2. The details of the inclusion of these damage mechanisms in WHEATPEST can be found in Willocquet et al. (2008), and are implemented in the WHEATPEST.STMX file.

TABLE 9.2

Weather and injury drivers in RICEPEST and WHEATPEST

Weather

RICEPEST uses constant daily minimum temperature, maximum temperature and radiation of 24°C, 30°C, and 17 MJ/m2, respectively. These are within the range of weather values during the rainy season in tropical Asia.

For WHEATPEST, monthly averages of daily temperature and radiation, computed from weather in Wageningen (The Netherlands) during 1951-1980 (Spitters et al., 1989), are interpolated in order to generate daily temperature and radiation.

Injury drivers

Injuries were not entered in the models as random variables; rather, patterns of injuries are used, which correspond to specific production situations for both rice in tropical Asia (Savary et al., 2000; 2006), and wheat in Western Europe (Polley and Thomas, 1991; Daamen, 1990; Daamen and Stol, 1990, 1992, 1994; Daamen et al., 1989, 1991, 1992). This linkage between production situations and patterns of injuries has been shown to be both reliable and dynamic as production situations evolve (Savary et al. 2006). In turn, the intrinsic rate of (attainable) growth was made dependent on production situations. This was, again, made possible through careful field surveys where yields were measured, experiments, data published in the literature, and a combination of these sources. Thus, the injury drivers actually represent a linkage between production situations – attainable yield – intrinsic crop growth – injury patterns.

Simulations with RICEPEST and WHEATPEST

The STELLA models RICEPEST.STMX and WHEATPEST.STMX will allow you, for rice and wheat, respectively, to:

  • explore the model structure and equations,
  • explore the model inputs for attainable growth
  • explore the model inputs for actual growth, i.e. the driving functions of the different pests included
  • run the model with varying levels of pest inputs, which will allow you to explore:
    • the effects of individual injuries on crop growth and yield
    • the effects of combined injuries on crop growth and yield

Summary

This chapter describes:

  • A formal modeling structure which captures the linkages between production situations – attainable yield – intrinsic crop growth – injury patterns.
  • The framework and objectives under which RICEPEST and WHEATPEST have been developed.
  • The damage mechanisms associated with rice and wheat pests and how the corresponding (multiple) injuries are captured into RICEPEST and WHEATPEST.
  • Includes the STELLA files, which can be used to explore the models structures, and the effect of injuries, individually or in combination, on the simulated dynamics of rice and wheat crop growth.

References

Boote, K. J., Jones, J. W., Mishoe, J. W., and Berger, R. D. 1983. Coupling pests to crop growth simulators to predict yield reductions. Phytopathology 73:1581-1587.

Daamen, R. A. 1990. Surveys of cereal diseases and pests in the Netherlands. 1. Weather and winter wheat cropping during 1974–1986. Neth. J. Plant Pathol. 96:227–236.

Daamen, R. A., and Stol, W. 1990. Surveys of cereal diseases and pests in the Netherlands. 2. Stem-base diseases of winter wheat. Neth. J. Plant Pathol. 96:251–260.

Daamen, R. A., and Stol, W, 1992. Surveys of cereal diseases and pests in the Netherlands. 5. Occurrence of Septoria spp. in winter wheat. Neth. J. Plant Pathol. 98:369–376.

Daamen, R. A., and Stol, W., 1994. Surveys of cereal diseases and pests in the Netherlands. 6. Occurrence of insect pests in winter wheat. Neth. J. Plant Pathol. 99 (Suppl. 3):51–56.

Daamen, R. A.,Wijnands, F. G., and Vliet, G., van der. 1989. Epidemics of diseases and pests of winter wheat at different levels of agrochemical input. A study on the possibilities for designing an integrated cropping system. J. Phytopathol. 125:305–319.

Daamen, R. A., Langerak, C. J., and Stol, W. 1991. Surveys of cereal diseases and pests in the Netherlands. 3. Monographella nivalis and Fusarium spp. In winter wheat fields and seed lots. Neth. J. Plant Pathol. 97:105–114.

Daamen, R. A., Stubbs, R. W., and Stol, W. 1992. Surveys of cereal diseases and pests in the Netherlands. 4. Occurrence of powdery mildew and rusts in winter wheat. Neth. J. Plant Pathol. 98:301–312.

Johnson, K. B. 1992. Evaluation of a mechanistic model that describes potato crop losses caused by multiple pests. Phytopathology 82:363-369.

Polley, R. W., and Thomas, M. R. 1991. Surveys of diseases of winter wheat in England and Wales, 1976–1988. Ann. Appl. Biol. 119:1–20.

Rabbinge, R., and Rijsdijk, P. H. 1981. Disease and crop physiology: a modeler’s point of view. Pages 201-220 in: Effects of Disease on the Physiology of the Growing Plants. P. G. Ayres, ed.Cambridge Univ. Press, Cambridge, UK.

Rabbinge, R., and Vereyken, P. H. 1980. The effects of diseases or pests upon host. Z. Pflanzenk. Pflanzensch. 87:409-422.

Savary, S., Willocquet, L., Elazegui, F. A., Teng, P. S., Du, P. V., Zhu, D., Tang, Q., Lin, X., Singh, H. M., and Srivastava, R. K. 2000. Rice pest constraints in tropical Asia: characterization of injury profiles in relation to production situations. Plant Dis. 84:341–356.

Savary, S., Teng, P. S.,Willocquet, L., and Nutter, Jr., F. W. 2006. Quantification and modeling of crop losses: a review of purposes. Annu. Rev. Phytopathol. 44:89–112.

Spitters, C. J. T., van Keulen, H., and van Kraalingen, D. W. G. 1989. A simple and universal crop growth simulator: SUCROS87. Pages 147–181 in: Simulation and Systems Management in Crop Protection. R. Rabbinge, S. A. Ward and H. H. van Laar, eds. Pudoc, Wageningen, The Netherlands..

Willocquet, L., Savary, S., Fernandez, L., Elazegui, F. A., and Teng, P. S. 1998. Simulation of yield losses caused by rice diseases, insects, and weeds in tropical Asia. IRRI Discussion Paper Series no 34. IRRI, Los Baños, Philippines.

Willocquet, L., Savary, S., Fernandez, L., Elazegui, F. A., and Teng, P. S. 2000. Development and evaluation of a multiple-pest, production situation specific, simulation model of rice yield losses in tropical Asia. Ecol. Model. 131:133-159.

Willocquet, L., Savary, S., Fernandez, L., Elazegui, F. A., Castilla, N., Zhu, D., Tang, Q., Huang, S., Lin, X., Singh, H. M., and Srivastsava, R. K. 2002. Structure and validation of RICEPEST, a production situation-driven, crop growth model simulating rice yield response to multiple pest injuries for tropical Asia. Ecol. Model. 153:247-268.

Willocquet, L., Elazegui, F. A., Castilla, N., Fernandez, L., Fischer, K. S., Peng, S., Teng, P. S., Srivastava, R. K., Singh, H. M., Zhu, D., and Savary, S. 2004. Research priorities for rice pest management in tropical Asia: a simulation analysis of yield losses and management efficiencies. Phytopathology 94:672-682.

Willocquet, L., Aubertot, J. N., Lebard, S., Robert, C., Lannou, C., and Savary, S. 2008. Simulating multiple pest damage in varying winter wheat production situations. Field Crops Res. 107:12-28.

Appendix 9.1. Program listing of RICEPEST

LeafW(t) = LeafW(t - dt) + (PartL - RSenL) * dt
INIT LeafW = 10

INFLOWS:

PartL = CPL*(Pool-rdiv)

OUTFLOWS:

RSenL = ((rrsen+(SenSHB*SHB)+(SenLB*LB)+DEF)*LeafW)+RDHL+(senBPH*rdBPH)
maxst(t) = maxst(t - dt) + (partScopy) * dt
INIT maxst = 6

INFLOWS:

partScopy = PartS
PanW(t) = PanW(t - dt) + (PartP + RTransloc - inj_pan) * dt
INIT PanW = 0

INFLOWS:

PartP = CPP*(Pool-rdiv)
RTransloc = IF(DVS>1) then DDIST else 0

OUTFLOWS:

inj_pan = (PartP+RTransloc)*(NB+SHR+WH-(NB*SHR)-(NB*WH)-(SHR*WH)-(NB*SHR*WH))
Pool(t) = Pool(t - dt) + (RGrowth - PartS - PartL - PartP - PartR - rdiv) * dt
INIT Pool = 0

INFLOWS:

RGrowth = RAD*RUE*(1-EXP(-k*LAI))*(1-(1-exp(-0.003*WEED)))*(1-(0.7*Virdis))*pRUE
OUTFLOWS:
PartS = CPS*(Pool-rdiv)
PartL = CPL*(Pool-rdiv)
PartP = CPP*(Pool-rdiv)
PartR = CPR*(Pool-rdiv)
rdiv = (rsuck*BPH)+(LB*LAI*LBspoDW)
REPTIL(t) = REPTIL(t - dt) + (Rmat - Rmortr) * dt
INIT REPTIL = 0

INFLOWS:

Rmat = if DVS<0.8 or DVS>1 then 0 else if VTIL

OUTFLOWS:

Rmortr = rrmort*REPTIL
RootW(t) = RootW(t - dt) + (PartR) * dt
INIT RootW = 5

INFLOWS:

PartR = CPR*(Pool-rdiv)
SDEFn(t) = SDEFn(t - dt) + (RDEF) * dt
INIT SDEFn = 0

INFLOWS:

RDEF = DEFn
SDHn(t) = SDHn(t - dt) + (RDH) * dt
INIT SDHn = 0

INFLOWS:

RDH = DHn
STEMP(t) = STEMP(t - dt) + (Dtemp) * dt
INIT STEMP = 320

INFLOWS:

Dtemp = ((TMAX+TMIN)/2)-TBASE
StemW(t) = StemW(t - dt) + (PartS - RTransloc - RsenST) * dt
INIT StemW = 6

INFLOWS:

PartS = CPS*(Pool-rdiv)

OUTFLOWS:

RTransloc = IF(DVS>1) then DDIST else 0
RsenST = RDHST
VTIL(t) = VTIL(t - dt) + (Rtil - Rmat - Rmrtv) * dt
INIT VTIL = 250

INFLOWS:

Rtil = PartLS*STW*(1-(VTIL/Maxtil))*DVE

OUTFLOWS:

Rmat = if DVS<0.8 or DVS>1 then 0 else if VTIL
Rmrtv = (rrmort*VTIL)+DH
BetaBS = 6.3
BetaLB = 3
BLB = pBLB*BLBn
BLBn = GRAPH(TIME)
(0.00, 0.00), (24.0, 0.00), (48.0, 0.00), (72.0, 0.005), (96.0, 0.01), (120, 0.00)
BPH = pBPH*BPHn
BPHn = GRAPH(TIME)
(0.00, 0.00), (10.0, 0.00), (20.0, 0.00), (30.0, 0.00), (40.0, 60.0), (50.0, 125), (60.0, 190), (70.0, 250), (80.0, 250), (90.0, 145), (100, 65.0), (110, 0.00), (120, 0.00)
BS = pBS*BSn
BSn = GRAPH(TIME)
(0.00, 0.00), (24.0, 0.00), (48.0, 0.00), (72.0, 0.005), (96.0, 0.01), (120, 0.01)
CPL = CPPL*(1-CPR)
CPP = CPPP*(1-CPR)
CPPL = GRAPH(DVS)
(0.00, 0.55), (0.1, 0.536), (0.2, 0.521), (0.3, 0.507), (0.4, 0.493), (0.5, 0.479), (0.6, 0.464), (0.7, 0.45), (0.8, 0.3), (0.9, 0.15), (1, 0.00), (1.10, 0.00), (1.20, 0.00), (1.30, 0.00), (1.40, 0.00), (1.50, 0.00), (1.60, 0.00), (1.70, 0.00), (1.80, 0.00), (1.90, 0.00), (2.00, 0.00)
CPPP = GRAPH(DVS)
(0.00, 0.00), (0.05, 0.00), (0.1, 0.00), (0.15, 0.00), (0.2, 0.00), (0.25, 0.00), (0.3, 0.00), (0.35, 0.00), (0.4, 0.00), (0.45, 0.00), (0.5, 0.00), (0.55, 0.00), (0.6, 0.00), (0.65, 0.00), (0.7, 0.00), (0.75, 0.00), (0.8, 0.143), (0.85, 0.286), (0.9, 0.429), (0.95, 0.571), (1.00, 0.714), (1.05, 0.857), (1.10, 1.00), (1.15, 1.00), (1.20, 1.00), (1.25, 1.00), (1.30, 1.00), (1.35, 1.00), (1.40, 1.00), (1.45, 1.00), (1.50, 1.00), (1.55, 1.00), (1.60, 1.00), (1.65, 1.00), (1.70, 1.00), (1.75, 1.00), (1.80, 1.00), (1.85, 1.00), (1.90, 1.00), (1.95, 1.00), (2.00, 1.00)
CPR = GRAPH(DVS)
(0.00, 0.3), (0.1, 0.263), (0.2, 0.225), (0.3, 0.188), (0.4, 0.15), (0.5, 0.112), (0.6, 0.075), (0.7, 0.038), (0.8, 0.00), (0.9, 0.00), (1, 0.00), (1.10, 0.00), (1.20, 0.00), (1.30, 0.00), (1.40, 0.00), (1.50, 0.00), (1.60, 0.00), (1.70, 0.00), (1.80, 0.00), (1.90, 0.00), (2.00, 0.00)
CPS = (1-CPL-CPP)*(1-CPR)
cumul%DH = 100*SDHn/Totil
DACE = TIME+14
dBPHDWn = GRAPH(TIME)
(0.00, 0.00), (1.00, 0.00), (2.00, 0.00), (3.00, 0.00), (4.00, 0.00), (5.00, 0.00), (6.00, 0.00), (7.00, 0.00), (8.00, 0.00), (9.00, 0.00), (10.0, 0.00), (11.0, 0.00), (12.0, 0.00), (13.0, 0.00), (14.0, 0.00), (15.0, 0.00), (16.0, 0.00), (17.0, 0.00), (18.0, 0.00), (19.0, 0.00), (20.0, 0.00), (21.0, 0.00), (22.0, 0.00), (23.0, 0.00), (24.0, 0.00), (25.0, 0.00), (26.0, 0.00), (27.0, 0.00), (28.0, 0.00), (29.0, 0.00), (30.0, 0.0125), (31.0, 0.0125), (32.0, 0.0125), (33.0, 0.0125), (34.0, 0.0125), (35.0, 0.0125), (36.0, 0.0125), (37.0, 0.0125), (38.0, 0.0125), (39.0, 0.0125), (40.0, 0.0125), (41.0, 0.0125), (42.0, 0.0125), (43.0, 0.0125), (44.0, 0.0125), (45.0, 0.0125), (46.0, 0.0125), (47.0, 0.0125), (48.0, 0.0125), (49.0, 0.0125), (50.0, 0.0125), (51.0, 0.0125), (52.0, 0.0125), (53.0, 0.0125), (54.0, 0.0125), (55.0, 0.0125), (56.0, 0.0125), (57.0, 0.0125), (58.0, 0.0125), (59.0, 0.0125), (60.0, 0.0125), (61.0, 0.0125), (62.0, 0.0125), (63.0, 0.0125), (64.0, 0.0125), (65.0, 0.0125), (66.0, 0.0125), (67.0, 0.0125), (68.0, 0.0125), (69.0, 0.0125), (70.0, 0.0125), (71.0, 0.00), (72.0, 0.00), (73.0, 0.00), (74.0, 0.00), (75.0, 0.00), (76.0, 0.00), (77.0, 0.00), (78.0, 0.00), (79.0, 0.00), (80.0, 0.00), (81.0, 0.00), (82.0, 0.00), (83.0, 0.00), (84.0, 0.00), (85.0, 0.00), (86.0, 0.00), (87.0, 0.00), (88.0, 0.00), (89.0, 0.00), (90.0, 0.00), (91.0, 0.00), (92.0, 0.00), (93.0, 0.00), (94.0, 0.00), (95.0, 0.00), (96.0, 0.00), (97.0, 0.00), (98.0, 0.00), (99.0, 0.00), (100, 0.00), (101, 0.00), (102, 0.00), (103, 0.00), (104, 0.00), (105, 0.00), (106, 0.00), (107, 0.00), (108, 0.00), (109, 0.00), (110, 0.00), (111, 0.00), (112, 0.00), (113, 0.00), (114, 0.00), (115, 0.00), (116, 0.00), (117, 0.00), (118, 0.00), (119, 0.00), (120, 0.00)
ddist = 0.0067*maxst
DEF = pDEF*DEFn
DEFn = GRAPH(TIME)
(0.00, 0.00), (10.0, 0.00), (20.0, 0.00), (30.0, 0.0003), (40.0, 0.0005), (50.0, 0.0002), (60.0, 0.00), (70.0, 0.00), (80.0, 0.00), (90.0, 0.00), (100, 0.00), (110, 0.00), (120, 0.00)
DH = pDH*DHn
DHn = GRAPH(TIME)
(0.00, 0.00), (10.0, 0.00), (20.0, 0.00), (30.0, 0.00), (40.0, 0.5), (50.0, 0.00), (60.0, 0.00), (70.0, 0.00), (80.0, 0.00), (90.0, 0.00), (100, 0.00), (110, 0.00), (120, 0.00)
DVE = GRAPH(DVS)
(0.00, 1.00), (0.4, 1.00), (0.8, 0.00), (1.20, 0.00), (1.60, 0.00), (2.00, 0.00)
DVS = if stemp
DWBPH = 0.001
FST = 0.05
grain__yield = 0.85*PanW
k = 0.6
LAI = LeafW*SLA*(1-BLB)*((1-BS)^BetaBS)*(1-SHB)*((1-LB)^BetaLB)
LB = pLB*LBn
LBn = GRAPH(TIME)
(0.00, 0.00), (5.00, 0.00), (10.0, 0.00), (15.0, 0.002), (20.0, 0.004), (25.0, 0.007), (30.0, 0.01), (35.0, 0.005), (40.0, 0.00), (45.0, 0.00), (50.0, 0.00), (55.0, 0.00), (60.0, 0.00), (65.0, 0.00), (70.0, 0.00), (75.0, 0.00), (80.0, 0.00), (85.0, 0.00), (90.0, 0.00), (95.0, 0.00), (100, 0.00), (105, 0.00), (110, 0.00), (115, 0.00), (120, 0.00)
LBspoDW = GRAPH(TIME)
(0.00, 0.00), (1.00, 0.00), (2.00, 0.00), (3.00, 0.00), (4.00, 0.00), (5.00, 0.00), (6.00, 0.00), (7.00, 0.00), (8.00, 0.00), (9.00, 0.00), (10.0, 20.0), (11.0, 20.0), (12.0, 20.0), (13.0, 20.0), (14.0, 20.0), (15.0, 20.0), (16.0, 20.0), (17.0, 20.0), (18.0, 20.0), (19.0, 20.0), (20.0, 20.0), (21.0, 20.0), (22.0, 20.0), (23.0, 20.0), (24.0, 20.0), (25.0, 0.00), (26.0, 0.00), (27.0, 0.00), (28.0, 0.00), (29.0, 0.00), (30.0, 0.00), (31.0, 0.00), (32.0, 0.00), (33.0, 0.00), (34.0, 0.00), (35.0, 0.00), (36.0, 0.00), (37.0, 0.00), (38.0, 0.00), (39.0, 0.00), (40.0, 0.00), (41.0, 0.00), (42.0, 0.00), (43.0, 0.00), (44.0, 0.00), (45.0, 0.00), (46.0, 0.00), (47.0, 0.00), (48.0, 0.00), (49.0, 0.00), (50.0, 0.00), (51.0, 0.00), (52.0, 0.00), (53.0, 0.00), (54.0, 0.00), (55.0, 0.00), (56.0, 0.00), (57.0, 0.00), (58.0, 0.00), (59.0, 0.00), (60.0, 0.00), (61.0, 0.00), (62.0, 0.00), (63.0, 0.00), (64.0, 0.00), (65.0, 0.00), (66.0, 0.00), (67.0, 0.00), (68.0, 0.00), (69.0, 0.00), (70.0, 0.00), (71.0, 0.00), (72.0, 0.00), (73.0, 0.00), (74.0, 0.00), (75.0, 0.00), (76.0, 0.00), (77.0, 0.00), (78.0, 0.00), (79.0, 0.00), (80.0, 0.00), (81.0, 0.00), (82.0, 0.00), (83.0, 0.00), (84.0, 0.00), (85.0, 0.00), (86.0, 0.00), (87.0, 0.00), (88.0, 0.00), (89.0, 0.00), (90.0, 0.00), (91.0, 0.00), (92.0, 0.00), (93.0, 0.00), (94.0, 0.00), (95.0, 0.00), (96.0, 0.00), (97.0, 0.00), (98.0, 0.00), (99.0, 0.00), (100, 0.00), (101, 0.00), (102, 0.00), (103, 0.00), (104, 0.00), (105, 0.00), (106, 0.00), (107, 0.00), (108, 0.00), (109, 0.00), (110, 0.00), (111, 0.00), (112, 0.00), (113, 0.00), (114, 0.00), (115, 0.00), (116, 0.00), (117, 0.00), (118, 0.00), (119, 0.00), (120, 0.00)
LWT = LeafW/VTIL
Maxtil = 900
NB = pNB*NBn
NBn = GRAPH(TIME)
(0.00, 0.01), (120, 0.01)
PartLS = PartL+PartS
pBLB = 0
pBPH = 0
pBS = 0
pDEF = 0
pDH = 0
pLB = 0
pNB = 0
pRUE = 1
pSHB = 0
pSHR = 0
pVD = 0
pWEED = 0
pWH = 0
RAD = 17
rdBPH = if DVS<1 then 0 else pBPH*dBPHDWn
RDHL = LWT*DH
RDHST = STWT*DH
RRMAT = 0.3
rrmort = GRAPH(DVS)
(0.00, 0.00), (0.1, 0.00), (0.2, 0.00), (0.3, 0.00), (0.4, 0.00), (0.5, 0.02), (0.6, 0.02), (0.7, 0.02), (0.8, 0.02), (0.9, 0.02), (1, 0.00), (1.10, 0.00), (1.20, 0.00), (1.30, 0.00), (1.40, 0.00), (1.50, 0.00), (1.60, 0.00), (1.70, 0.00), (1.80, 0.00), (1.90, 0.00), (2.00, 0.00)
rrsen = GRAPH(DVS)
(0.00, 0.00), (0.1, 0.00), (0.2, 0.00), (0.3, 0.00), (0.4, 0.00), (0.5, 0.00), (0.6, 0.00), (0.7, 0.00), (0.8, 0.00), (0.9, 0.00), (1, 0.00), (1.10, 0.013), (1.20, 0.026), (1.30, 0.04), (1.40, 0.04), (1.50, 0.04), (1.60, 0.04), (1.70, 0.04), (1.80, 0.04), (1.90, 0.04), (2.00, 0.04)
rsuck = 0.002
RUE = GRAPH(DVS)
(0.00, 1.20), (0.1, 1.20), (0.2, 1.20), (0.3, 1.20), (0.4, 1.20), (0.5, 1.20), (0.6, 1.20), (0.7, 1.20), (0.8, 1.20), (0.9, 1.20), (1, 1.15), (1.10, 1.10), (1.20, 1.10), (1.30, 1.10), (1.40, 1.10), (1.50, 1.10), (1.60, 1.10), (1.70, 1.10), (1.80, 1.10), (1.90, 1.10), (2.00, 1.10)
senBPH = 6
SenLB = 0.0378
SenSHB = 0.076
SHB = pSHB*SHBn
SHBn = GRAPH(TIME)
(0.00, 0.00), (10.0, 0.00), (20.0, 0.00), (30.0, 0.00), (40.0, 0.0023), (50.0, 0.0033), (60.0, 0.0066), (70.0, 0.01), (80.0, 0.0088), (90.0, 0.0077), (100, 0.0066), (110, 0.0066), (120, 0.0066)
SHR = pSHR*SHRn
SHRn = GRAPH(TIME)
(0.00, 0.01), (120, 0.01)
SLA = GRAPH(DVS)
(0.00, 0.037), (1.00, 0.018), (2.00, 0.017)
STW = 20
STWT = StemW/VTIL
TBASE = 8
TFLOW = 1450
TMAT = 2030
TMAX = 30
TMIN = 24
Totil = VTIL+REPTIL
Virdis = pVD*Virdisn
Virdisn = GRAPH(TIME)
(0.00, 0.00), (10.5, 0.00), (21.0, 0.00), (31.5, 0.005), (42.0, 0.01), (52.5, 0.01), (63.0, 0.01), (73.5, 0.01), (84.0, 0.01), (94.5, 0.01), (105, 0.01)
WEED = pWEED*WEEDn
WEEDn = GRAPH(TIME)
(0.00, 0.00), (10.0, 1.00), (20.0, 2.00), (30.0, 3.00), (40.0, 4.00), (50.0, 5.00), (60.0, 6.00), (70.0, 7.00), (80.0, 8.00), (90.0, 9.00), (100, 10.0), (110, 10.0), (120, 10.0)
WH = pWH*WHn
WHn = GRAPH(TIME)
(0.00, 0.01), (120, 0.01)

Appendix 9.2. Program listing of WHEATPEST

EarB(t) = EarB(t - dt) + (PartE + RTransloc - inj_ear) * dt
INIT EarB = 0

INFLOWS:

PartE = CPE*(Pool-rasdiv)
RTransloc = IF(DVS>1) then ddist else 0

OUTFLOWS:

inj_ear = (PartE+RTransloc)*(1.1*FHB)
Honey(t) = Honey(t - dt) + (rhoney) * dt
INIT Honey = 0

INFLOWS:

rhoney = 0.35*rsap
LeafB(t) = LeafB(t - dt) + (PartL - RSenL) * dt
INIT LeafB = 10

INFLOWS:

PartL = CPL*(Pool-rasdiv)

OUTFLOWS:

RSenL = rrsen*LeafB
MaxStemb(t) = MaxStemb(t - dt) + (rmaxstemb) * dt
INIT MaxStemb = 6

INFLOWS:

rmaxstemb = PartS
Pool(t) = Pool(t - dt) + (RGrowth - PartS - PartL - PartE - PartR - rasdiv) * dt
INIT Pool = 0

INFLOWS:

RGrowth = RAD*RUE*(1-EXP(-k*LAI))*(1-(0.35*BYDV))*(1-TAK)*(1-(1-exp(-0.003*WEED)))*(MAX(0,(1-(0.63*SNB))))*(MAX(0,(1-(0.63*STB))))*(1-(0.35*EYS))*(1-(0.3*SHY))*(1-(0.45*FST))*rfaph

OUTFLOWS:

PartS = CPS*(Pool-rasdiv)
PartL = CPL*(Pool-rasdiv)
PartE = CPE*(Pool-rasdiv)
PartR = CPR*(Pool-rasdiv)
rasdiv = (min(Pool,(4.62*YR*LAI)+(4.62*BR*LAI)+rsap))
RootB(t) = RootB(t - dt) + (PartR) * dt
INIT RootB = 5

INFLOWS:

PartR = CPR*(Pool-rasdiv)
StemB(t) = StemB(t - dt) + (PartS - RTransloc) * dt
INIT StemB = 6

INFLOWS:
PartS = CPS*(Pool-rasdiv)

OUTFLOWS:

RTransloc = IF(DVS>1) then ddist else 0
STEMP(t) = STEMP(t - dt) + (Dtemp) * dt
INIT STEMP = 620

INFLOWS:

Dtemp = ((TMAX+TMIN)/2)-TBASE
aphfw = APHN*sfwaph*multact
APHN = APHNn*pAPHN
APHNn = GRAPH(TIME)
(145, 0.00), (155, 25.0), (165, 50.0), (175, 70.0), (185, 125), (195, 250), (205, 0.00), (215, 0.00), (225, 0.00)
BetaPM = 2.5
BetaSTB = 1.25
BetaYR = 1.5
BR = pBR*BRn
BRn = GRAPH(TIME)
(75.0, 0.00), (100, 0.0004), (125, 0.0008), (150, 0.001), (175, 0.006), (200, 0.01), (225, 0.01)
BYDV = pBYDV*BYDVn
BYDVn = GRAPH(TIME)
(75.0, 0.01), (90.0, 0.01), (105, 0.01), (120, 0.01), (135, 0.01), (150, 0.01), (165, 0.01), (180, 0.01), (195, 0.01), (210, 0.01), (225, 0.01)
CPE = (1-CPR)*(1-CpPL-CPpS)
CPL = CPPL*(1-CPR)
CPPL = GRAPH(DVS)
(0.00, 0.65), (0.05, 0.65), (0.1, 0.65), (0.15, 0.67), (0.2, 0.69), (0.25, 0.7), (0.3, 0.66), (0.35, 0.62), (0.4, 0.58), (0.45, 0.54), (0.5, 0.5), (0.55, 0.41), (0.6, 0.32), (0.65, 0.23), (0.7, 0.15), (0.75, 0.12), (0.8, 0.09), (0.85, 0.06), (0.9, 0.04), (0.95, 0.00), (1.00, 0.00), (1.05, 0.00), (1.10, 0.00), (1.15, 0.00), (1.20, 0.00), (1.25, 0.00), (1.30, 0.00), (1.35, 0.00), (1.40, 0.00), (1.45, 0.00), (1.50, 0.00), (1.55, 0.00), (1.60, 0.00), (1.65, 0.00), (1.70, 0.00), (1.75, 0.00), (1.80, 0.00), (1.85, 0.00), (1.90, 0.00), (1.95, 0.00), (2.00, 0.00)
CPPS = GRAPH(DVS)
(0.00, 0.35), (0.05, 0.35), (0.1, 0.35), (0.15, 0.33), (0.2, 0.31), (0.25, 0.3), (0.3, 0.34), (0.35, 0.38), (0.4, 0.42), (0.45, 0.46), (0.5, 0.5), (0.55, 0.59), (0.6, 0.68), (0.65, 0.77), (0.7, 0.85), (0.75, 0.88), (0.8, 0.91), (0.85, 0.94), (0.9, 0.96), (0.95, 1.00), (1.00, 0.5), (1.05, 0.00), (1.10, 0.00), (1.15, 0.00), (1.20, 0.00), (1.25, 0.00), (1.30, 0.00), (1.35, 0.00), (1.40, 0.00), (1.45, 0.00), (1.50, 0.00), (1.55, 0.00), (1.60, 0.00), (1.65, 0.00), (1.70, 0.00), (1.75, 0.00), (1.80, 0.00), (1.85, 0.00), (1.90, 0.00), (1.95, 0.00), (2.00, 0.00)
CPR = GRAPH(DVS)
(0.00, 0.5), (0.1, 0.5), (0.2, 0.4), (0.3, 0.3), (0.4, 0.17), (0.5, 0.13), (0.6, 0.1), (0.7, 0.07), (0.8, 0.05), (0.9, 0.03), (1, 0.02), (1.10, 0.01), (1.20, 0.00), (1.30, 0.00), (1.40, 0.00), (1.50, 0.00), (1.60, 0.00), (1.70, 0.00), (1.80, 0.00), (1.90, 0.00), (2.00, 0.00)
CPS = CPPS*(1-CPR)
ddist = 0.0025*MaxStemb
DVS = if stemp
EYS = pEYS*EYSn
EYSn = GRAPH(TIME)
(75.0, 0.00), (150, 0.00), (225, 0.01)
FHB = pFHB*FHBn
FHBn = GRAPH(TIME)
(75.0, 0.01), (225, 0.01)
FST = pFST*FSTn
FSTn = GRAPH(TIME)
(75.0, 0.00), (150, 0.00), (225, 0.01)
grain__yield = 0.85*EarB
k = 0.65
LAI = LeafB*SLA*((1-PM)^BetaPM)*(1-SNB)*((1-STB)^BetaSTB)*((1-YR)^BetaYR)*(1-BR)
multact = 0.001
pAPHN = 0
PartLS = PartL+PartS
pBR = 0
pBYDV = 0
pEYS = 0
pFHB = 0
pFST = 0
PM = pPM*PMn
PMn = GRAPH(TIME)
(75.0, 0.00), (100, 0.001), (125, 0.002), (150, 0.003), (175, 0.0065), (200, 0.01), (225, 0.01)
pPM = 0
pRUE = 1
pSHY = 0
pSNB = 0
pSTB = 0
pTAK = 0
pWEED = 0
pYR = 0
RAD = GRAPH(TIME)
(75.0, 7.80), (105, 13.0), (135, 16.3), (165, 17.5), (195, 15.6), (225, 13.8)
rfaph = max(1-(Honey*0.015),0.8)
rrsap = GRAPH(TIME)
(75.0, 0.45), (90.0, 0.45), (105, 0.45), (120, 0.45), (135, 0.45), (150, 0.45), (165, 0.45), (180, 0.45), (195, 0.32), (210, 0.2), (225, 0.24)
rrsen = GRAPH(DVS)
(0.00, 0.00), (0.2, 0.00), (0.4, 0.00), (0.6, 0.00), (0.8, 0.00), (1.00, 0.00), (1.20, 0.01), (1.40, 0.025), (1.60, 0.04), (1.80, 0.1), (2.00, 0.1)
rsap = rrsap*aphfw
RUE = GRAPH(DVS*pRUE)
(0.1, 1.20), (0.3, 1.20), (0.5, 1.20), (0.7, 1.20), (0.9, 1.20), (1.10, 1.10), (1.30, 1.10), (1.50, 1.10), (1.70, 1.10), (1.90, 1.10), (2.10, 1.10)
sfwaph = GRAPH(TIME)
(75.0, 0.00), (85.7, 0.00), (96.4, 0.00), (107, 0.05), (118, 0.1), (129, 0.15), (139, 0.2), (150, 0.25), (161, 0.316), (171, 0.316), (182, 0.283), (193, 0.25), (204, 0.33), (214, 0.415), (225, 0.415)
SHY = pSHY*SHYn
SHYn = GRAPH(TIME)
(75.0, 0.00), (150, 0.00), (225, 0.01)
SLA = GRAPH(DVS)
(0.00, 0.037), (1.00, 0.018), (2.00, 0.017)
SNB = pSNB*SNBn
SNBn = GRAPH(TIME)
(75.0, 0.00), (100, 0.0003), (125, 0.0006), (150, 0.001), (175, 0.0055), (200, 0.01), (225, 0.01)
STB = pSTB*STBn
STBn = GRAPH(TIME)
(75.0, 0.00), (100, 0.0003), (125, 0.0006), (150, 0.001), (175, 0.0055), (200, 0.01), (225, 0.01)
TAK = pTAK*TAKn
TAKn = GRAPH(TIME)
(75.0, 0.0005), (100, 0.001), (125, 0.0015), (150, 0.002), (175, 0.006), (200, 0.01), (225, 0.01)
TBASE = 0
TFLOW = 1600
TMAT = 2500
TMAX = GRAPH(TIME)
(75.0, 8.90), (105, 12.4), (135, 17.3), (165, 20.5), (195, 21.4), (225, 21.5)
TMIN = GRAPH(TIME)
(75.0, 1.20), (105, 3.30), (135, 7.30), (165, 10.3), (195, 12.2), (225, 12.0)
WEED = pWEED*WEEDn
WEEDn = GRAPH(TIME)
(75.0, 0.00), (100, 2.00), (125, 4.00), (150, 6.00), (175, 8.00), (200, 10.0), (225, 10.0)
YR = pYR*YRn
YRn = GRAPH(TIME)
(75.0, 0.00), (100, 0.0003), (125, 0.0006), (150, 0.002), (175, 0.0058), (200, 0.01), (225, 0.00)

​ ​