ORYZA2000 v2.11 (June 2004)

This section describes the changes in this model with respect to ORYZA2000 version 2.1 as released in 2004 (January).

 

1. Nitrogen dynamics

 In ORYZA2000 vs. 2.0, an error was detected in the simulation of leaf N contents after leaves starting dying. The calculation of N loss rate through loss of leaves (NLDLV, kg N ha-1 d-1) was calculated as the biomass of falling leaves (LLV due to regular senescence plus DLDR due to drought; kg dry matter ha-1 d-1) times the residual N content of dead leaves RFNLV (kg N kg-1 dry matter). This calculation, however, ignores the fact that when leaves start dying/yellowing, their N content is usually higher than RFNLV. Thus, the loss of N through dying leaves was underestimated and the total remaining N in leaves overestimated, so that N contents could become higher than their maximum value as set by NMAXL.  This problem is now fixed by adding any N that would have resulted in leaf N contents to be higher than the maximum value NMAXL, to the amount of N in the dying leaves. In the subroutine CROP2:

NLDLV = (LLV+DLDR)*RFNLV

! With senescence and dying of leaves, the total leaf N

! can go down. Yellow leaves initially have higher N content than RFNLV

NLDLV  = MAX (NLDLV, ANLV-NMAXL*(WLVG+GLV-LLV-DLDR))

 In ORYZA2000 vs. 2.0, there could be quite some differences in the simulated growth in the potential production mode and in the nitrogen-balance mode with ample of nitrogen available. The reason was that in potential-production mode, the leaf N content on area basis (which is used to calculate leaf photosynthesis rates) NFLV was read from crop data file through the table NFLVTB, whereas in the nitrogen-balance mode, NFLV was calculated from the maximum leaf N content on weight basis (which was also read from crop data file through NMAXLT) and from the specific leaf area SLA. In the data sets used for developing ORYZA2000, the relationships between NFLV, NMAXL and SLA were sound, i.e., the NFLV values in the example crop data files for IR72 were practically the same as those of NMAXL (in the data file) divided by those of SLA (in the data file). But when recalibration is done for a specific variety on SLA, and NMAXL and NFLV remain unchanged, then the relationship breaks down and differences in simulation are obtained between potential and nitrogen-limited production modes, even with an unlimited supply of nitrogen. When SLA values are changed in a crop data file, then the NFLVT table need to be recalculated from the NMAXL and the new SLA tables. In ORYZA2000 version 2.1, we addressed this problem by not using the table NFLVTB in the crop data file anymore. Instead, in potential-production mode, we calculate NFLVT from NMAXL values divided by the SLA values. In the subroutine NNOSTRESS2:

! Read NFLV as function of development state

! NFLV1 = LINT2('NFLVTB',NFLVTB,ILNFLV,DVS)

NMAXL  = LINT2('NMAXLT',NMAXLT,ILNMAX,DVS)

NFLV1 = NMAXL/(10.*SLA)

NFLV   = INTGR2(0., NFLV1, DELT, FILEIT, 'NFLV')

 Remember that we used a “programming trick” in the calculation of NFLV to allow us to use measured NVFL as forcing function (Book ORYZA2000 by Bouman et al., 2001, page 113)

 

2. Irrigation subroutine

In the irrigation subroutine IRRIG, we can read actually applied irrigation amounts into the array variable RIRRIT from the management data file. RIRRIT was declared with a length of 200 only. Since each day of irrigation application needs to be preceded and followed by a day with zero irrigation application, this means that the number of irrigations was limited to 200/3 is about 66. For some applications this proved to be too little, so we augmented the maximum size of RIRRIT to 500, allowing about 166 irrigation applications:

REAL      RIRRIT(500)

 

3. LAI subroutine

Slight modifications were made in the subroutine SUBLAI to improve the transition from the exponential to the linear phase of growth. These involve an improved weighing of leaf growth rates as calculated in the exponential and in the linear phase. In ORYZA2000 version 2.0, the equations in SUBLAI2 were:

! There is a transition from RGRL to SLA determined growth

! when difference between simulated and imposed SLA is less than 10%

TEST = ABS((LAI/NOTNUL(WLVG))-SLA)/SLA

IF (.NOT. TESTL) THEN

IF (TEST .LT. TESTSET) TESTL = .TRUE.

END IF 

IF (TESTL) THEN

GLAI = ((WLVG+RWLVG-DLDR)*SLA)-LAI

ELSE

GLAI1 = ((WLVG+RWLVG-DLDR-WLVGEXP)*SLA+LAIEXP)-LAI

GLAI2 = ((WLVG+RWLVG-DLDR)*SLA)-LAI

GLAI  = (GLAI1+X*GLAI2)/(X+1.)

X  = X+1.

END IF 

In ORYZA2000 version 2.1, the equations in SUBLAI3 are:

! There is a transition from RGRL to SLA determined growth

! when difference between simulated and imposed SLA is less than 10%

IF (.NOT. TESTL) THEN

TEST = ABS((LAI/NOTNUL(WLVG))-SLA)/SLA

IF (TEST .LT. TESTSET) TESTL = .TRUE.

END IF 

IF (TESTL) THEN

GLAI = ((WLVG+RWLVG-DLDR)*SLA)-LAI

ELSE

GLAI1 = ((WLVG+RWLVG-DLDR-WLVGEXP)*SLA+LAIEXP)-LAI

GLAI2 = ((WLVG+RWLVG-DLDR)*SLA)-LAI

IF (GLAI2 .LT. 0. .AND. GLAI1 .GT. 0.) THEN

GLAI = GLAI1/(X+1)

ELSE

GLAI  = (GLAI1+X*GLAI2)/(X+1.)

END IF

X = X+1. 

END IF

 

4. PADDY water balance

In PADDY, two options existed for the input of percolation rate in the soil data file: a fixed percolation rate (FIXPERC) or a percolation rate as function of groundwater table depth (PERTB). A third option consisted of not giving values for percolation rate at all but having the PADDY water balance model calculate them from hydrological properties. In our research, we have observed quite often that percolation rates change over time (Wopereis et al., 1994). Just after land preparation, percolation rates may be small. But after walking in the field for manual weeding or some other crop management operation, the plow sole may get trampled and percolation rates may increase. Under conditions of alternate wetting and drying, paddy soils fall temporarily dry and cracks may develop that increase the percolation rate. Therefore, we introduced a third option for inputting values for percolation rate in the soil data file, namely as function of time: 

SWITVP = 2  ! Fixed percolation rate as function of time

* If SWITVP = 2, give percolation rate (mm/d) as function of day

PTABLE =

1.,  1.0,   !First number is calendar day, second is percolation rate)

50., 1.0,

100., 20.0,

366., 20.0  

Note that in PTABLE, the day number should continue counting after a year has passed. In the above example, if we keep irrigation 10 more days into the new year, the last row of the table should read 376., 20.0 

The array PTABLE is declared and read in PADDY in the initialization section: 

INTEGER IMX, IPTABLE

PARAMETER (IMX=20)

REAL PTABLE(IMX)

ELSE IF (SWITVP.EQ.2) THEN

CALL RDAREA('PTABLE',PTABLE,IMX,IPTABLE)

In the rate calculation section, the daily value of percolation rate PERCOL (mm d-1) is obtained by linear interpolation with TIME: 

ELSE IF (SWITVP.EQ.2) THEN

PERCOL = LINT2('PTABLE',PTABLE,IPTABLE,TIME)

 

Reference

Wopereis, M.C.S., B.A.M. Bouman, M.J. Kropff, H.F.M. ten Berge & A.R. Maligaya, 1994. Water use efficiency of flooded rice fields. I. Validation of the soil-water balance model SAWAH. Agricultural Water Management, 26: 277-289.