Program AEZCCS03 processes the records of the land inventory and computes for each location (cell) the production potential by single crop as well as crop combinations according to the following rules :
Application of these rules yields a productivity factor relating average yield to the maximum attainable yield of a particular crop. In each location every admissible crop combination is also evaluated in terms of implied soil loss from erosion (so far water erosion only is considered).
(1) Crop growth cycle suitability
(2) Thermal zone rating
(3) Soil unit rating
(4) Slope gradient cultivation factor
(5a) Coarse material rating
(5b) Texture rule
(6) Phase rule
(7) Fallow land requirements rule
(8) Pattern distribution
After reading the control information (subroutine CTRLIN), the required input files are opened and the data buffers, where required, are cleared (subroutine CLRALL). Then, several ‘in-core’ tables related to productivity assessment are read from random access files (subroutine TBGETO). These include crop cycle requirements, pattern distribution parameters, pattern LGP codes, and the master index containing the record addresses of the respective primary crop yield table entries.
At this stage the program enters its major processing loop. The next record from the land inventory file is read (subroutine READIN) and the data buffers specific to the processing of the current cell are cleared (subroutine CLRLNV). Cell specific information is fetched from random access (subroutine TBGET1) and primary production for each crop is calculated under the specific agro-climatic conditions.
FIGURE 4.1
Information flow in program AEZCCS03
Crop productivity assessment takes into account water stress situations (function INTZNF), soil related productivity discount factors (subroutine SLYSET), inter-cropping increment multipliers (function RICR), and rest period requirement factors (function FALLOW).
If at least one feasible crop, i.e. a crop that is sufficiently productive in the given environment, is identified in the current cell, then relevant cell information is saved (subroutine PUTBIN) and data processing continues.
As a next step, the crop combination independent multipliers of the USLE (universal soil loss equation) are calculated: the rain erositivity factor (function RUSLE), the rain erositivity distribution during the growing period (subroutine REDIST), the soil erodibility multiplier (function KUSLE), the slope length factor (function LSUSLE), the protection factor (function PUSLF), and a general management factor table (function MUSTAB) relevant under the given agro-ecological conditions and the chosen input level.
A major task in the land productivity assessment is the construction of sequential crop combinations (subroutine COMBI). Amongst all possible combinations admissible cropping patterns are filtered out (function LCOMBI), evaluated (subroutine CMBVAL) and, subject to certain criteria (function VALUE), saved for later processing (subroutine PUTCMB).
The crop combinations are also assessed in terms of degradation hazards. Crop combination specific multipliers in the USLE are calculated, a combined crop cover and management sub-factor, by matching the sequential cropping pattern to the component LGPs implied by the current pattern and LGP codes (function CUSLE). Estimated annual soil loss is then translated into estimated productivity loss (function PYLOSS).
At this point, the program has completed data processing for the current cell and returns to reading the next land inventory record. The described computations continue until EOF is reached, i.e. the last cell has been processed.
The structure and information flow in program AEZCCS03 is shown in Figure 4.1 and Figure 4.2, the latter containing aspects related to computations dealing with sequential crop combinations.
FIGURE 4.2
Information flow in crop combination sub-component of program AEZCCS03
Unit Nr | File name | Fileb) type | Record length (bytes) | Number of recordsa) | File size (bytes) | I/Oc) mode |
5 | CTRL03 | FS | 80 | 87 | 6960 | R |
6 | PRINTER | FS | 132 | V | - | W |
10 | LINV.$$$e) | FS | 41 | <76664 | <3143224 | R |
11 | RND01 | UR | 192 | 1800 | 345600 | R |
12 | RND02d) | UR | 98 | 63404 | 6213592 | R |
13 | RND03 | UR | 160 | 135 | 21600 | R |
18 | SCR01 | US | <125 | V | <64 Kb | RW |
19 | BIN.$$$e) | US | < 56 | V | < 10 Mb | W |
a) ‘V’ indicates a variable, district or country specific number of records.
b) FS = formatted sequential, UR = unformatted random access, US = unformatted sequent.
Name : | AEZCCS03 |
Type: | Main program |
Arguments : | none |
Purpose : | Land productivity assessment by cell, primary crop and crop combination. |
Calledby: | none |
Calls to : | CLRALL, CLRLNV, COMBI, CTRLIN, ERROR, FALLOW, INTZNF, KUSLE, LSUSLE, MUSTAB, PUSLF, PUTBIN, READIN, REDIST, RICR, RUSLE, SLYSET, TBGET0, TBGET1 |
Box Ref. : | 1.3 |
Name : | CLRALL |
Type: | subroutine |
Arguments : | none |
Purpose : | At start-up of program clear variables where necessary. |
Calledby: | MAIN |
Calls to : | CLR2BI, CLR4BR |
Box Ref. : | 3.2 |
Name : | CLRCH1 (but, n, val) |
Type: | subroutine |
Arguments : | character*10, integer, character* 1 |
buf : data buffer to be initialized | |
n : number of elements to be initialized | |
val:value to be assigned to data buffer elements | |
Purpose : | Initialize a specified number of elements of a one byte character array to a given value. |
Called by : | CLRLNV, LCOMBI, TBGET1 |
Calls to : | none |
Box Ref. : | none |
Name : | CLRLNV |
Type: | subroutine |
Arguments : | none |
Purpose : | Clear data buffers before processing next land inventory record. |
Called by : | MAIN |
Calls to : | CLRCH1, CLR4BR |
Box Ref. : | 3.5 |
Name : | CLR2BI (buf, n, val) |
Type: | subroutine |
Arguments : | integer*20, integer, integer |
buf:data buffer to be initialized | |
n : number of elements to be initialized | |
val:value to be assigned to data buffer elements | |
Purpose : | Initialize a specified number of elements of a two byte integer array to a given value. |
Called by : | CLRALL, COMBI, TBGET1 |
Calls to : | none |
Box Ref. : | none |
Name : | CLR4BR (buf, n, val) |
Type: | subroutine |
Arguments : | real*4(), integer, real*4 |
buf:data buffer to be initialized | |
n. : number of elements to be initialized | |
val:value to be assigned to data buffer elements | |
Purpose : | Initialize a specified number of elements of a four byte real array to a given value. |
Called by : | CLRALL, CLRLNV, CMBVAL, COMBI, LCOMBI, REDIST, TBGET1, TXTURE |
Calls to : | none |
Box Ref. : | none |
Name : | CMBVAL |
Type: | subroutine |
Arguments : | none |
Purpose : | Evaluate a crop combination in terms of a given number of criteria. |
Called by : | COMBI |
Calls to : | CLR4BR, VALUE |
Box Ref. : | 3.42 |
Name : | COMBI |
Type: | subroutine |
Arguments : | none |
Purpose : | Determine all admissible sequential crop combinations for a given Pattern/LGP combination. |
Called by : | MAIN |
Calls to : | CLR2BI, CLR4BR, CMBVAL, FWBEST, ISFLVS, ISTREE, LCOMBI, PUTCMB |
Box Ref. : | 3.18 |
Name : | CTRLIN |
Type: | subroutine |
Arguments : | none |
Purpose : | Read program control information and open files for I/O. |
Called by : | MAIN |
Calls to : | ERROR |
Box Ref. : | 3.1 |
Name : | CUSLE (iptn, ilgp, idxadj) |
Type: | real*4 function |
Arguments : | integer*2, integer*2, integer |
iptn : pattern code | |
ilgp : LGP code | |
idxadj. : adjustment type indicator | |
Purpose : | Determine crop cover factor for a given sequential crop combination in a particular land inventory cell. |
Called by : | PUTCMB |
Calls to : | DPTN, DCST, ISTREE, RPDF, VCF.VCP |
Box Ref. : | 3.48 |
Name : | DCST (stage, icrp, dleft, idx) |
Type: | real*4 function |
Arguments : | integer, integer, real*4, integer |
stage : crop stage (SB, Cl, C2, C3, R) | |
icrp : sequential crop number | |
dleft : days left in growing period | |
idx : crop type index | |
Purpose : | Return length (in days) of a particular crop stage. |
Called by : | CUSLE |
Calls to : | none |
Box Ref. : | 3.50 |
Name : | DPTN (iptn) |
Type: | integer*2 function |
Arguments : | integer*2 |
iptn : pattern code | |
Purpose : | Find dominant pattern group. |
Called by : | CUSLE, LCOMBI, REDIST |
Calls to : | none |
Box Ref. : | 3.37* |
Name : | ERROR (ityp, ifatal) |
Type : | subroutine |
Arguments : | integer, integer |
ityp : error code | |
ifatal : error level | |
Purpose : | Display an error message. |
Called by : | MAIN, TBGETO, TBGETl |
Calls to : | none |
Box Ref. : | 3.19* |
Name : | FALLOW (icrp, rflr) |
Type: | real*4 function |
Arguments : | integer, integer*20 |
icrp : sequential crop number | |
rflr : relevant row in rest period factor table | |
Purpose : | Determine fallow period requirement for particular crop and input level. |
Calledby: | MAIN |
Calls to : | ISFLVS, ISGLYS, ISTREE, ISWLR |
Box Ref. : | 3.10 |
Name : | FWBEST |
Type: | subroutine |
Arguments : | none |
Purpose : | Find most productive fuel wood species by class. |
Called by : | COMBI |
Calls to : | ISTREE |
Box Ref. : | 3.40 |
Name : | INTZNF (ilgp, islu) |
Type: | real*4 function |
Arguments : | integer*2, integer*2 |
ilgp : LGP code | |
islu : soil unit code | |
Purpose : | Return productivity multiplier for intermediate zones. |
Called by : | MAIN |
Calls to : | ISFLVS, ISGLYS, ISTREE, ISWLR |
Box Ref. : | 3.7 |
Name : | ISFLVS (islu) |
Type: | logical function |
Arguments : | integer*2 |
islu:soil unit code | |
Purpose : | Is soil of type Fluvisol ? |
Called by : | FALLOW, INTZNF, TBGET1 |
Calls to : | none |
Box Ref. : | 3.22* |
Name : | ISGLYS (islu) |
Type: | logical function |
Arguments : | integer*2 |
islu:soil unit code | |
Purpose : | Is soil a Gleysol ? |
Called by : | FALLOW, INTZNF |
Calls to : | none |
Box Ref. : | 3.23* |
Name : | ISGRND (icrp) |
Type: | logical function |
Arguments : | integer |
icrp : sequential crop number | |
Purpose : | Is crop of type groundnuts ? |
Calledby: | TXTURE |
Calls to : | none |
Box Ref. : | 3.38 |
Name : | ISLITH (iphs) |
Type: | logical function |
Arguments : | integer*2 |
islu : soil phase code | |
Purpose : | Is soil phase of type lithic? |
Called by : | PYLOSS |
Calls to : | none |
Box Ref. : | 3.54 |
Name : | ISNITO (islu) |
Type: | logical function |
Arguments : | integer*2 |
islu:soil unit code | |
Purpose : | Is soil a Nitosol ? |
Called by : | MUSLF |
Calls to : | .none |
Box Ref. : | 3.35 |
Name : | ISSOD (iphs) |
Type: | logical function |
Arguments : | integer*2 |
iphs : soil phase code | |
Purpose : | Is soil phase of type sodic/saline ? |
Called by : | KUSLE |
Calls to : | none |
Box Ref. : | 3.28 |
Name : | ISTREE (icrp) |
Type: | logical function |
Arguments : | integer |
icrp : sequential crop number | |
Purpose : | Is crop a fuelwood species ? |
Called by : | COMBI, CUSLE, FALLOW, FWBEST, INTZNF |
Calls to : | none |
Box Ref. : | 3.25* |
Name : | ISWLR (icrp) |
Type: | logical function |
Arguments : | integer |
icrp : sequential crop number | |
Purpose : | Is crop of type wet-land rice ? |
Called by : | FALLOW, LCOMBI |
Calls to : | none |
Box Ref. : | 3.23* |
Name : | ISWPOT (icrp) |
Type: | logical function |
Arguments : | integer |
icrp : sequential crop number | |
Purpose : | Is crop of type white potato ? |
Called by : | TXTURE |
Calls to : | none |
Box Ref. : | 3.39 |
Name : | KUSLE (islu, itxt, iphs) |
Type: | real*4 function |
Arguments : | integer*2, integer*2, integer*2 |
islu : soil unit code | |
itxt : soil texture code | |
iphs : soil phase code | |
Purpose : | Return soil erodibility multiplier in universal soil loss equation. |
Called by : | MAIN |
Calls to : | ISSOD, STPHS |
Box Ref. : | 3.13 |
Name : | LCOMBI |
Type: | logical function |
Arguments : | none |
Purpose : | Test a sequential cropping sequence being a legal crop combination and assess productivity. |
Called by : | COMBI |
Calls to : | CLRCH1, CLR4BR, DPTN, ISTREE, ISWLR, WYFCT, WYPOS |
Box Ref. : | 3.41 |
Name : | LSUSLE (slpg) |
Type: | real*4 function |
Arguments : | integer*2 |
slpg : average slope gradient (in tenth of percent) | |
Purpose : | Return slope length factor in universal soil loss equation. |
Called by : | PUTCMB |
Calls to : | SLF |
Box Ref. : | 3.14 |
Name : | MUSLF (stage, flwcmb, first, aslpg) |
Type: | real*4 function |
Arguments : | integer, real*4, integer, real*4 |
stage : crop stage | |
flwcmb : fallow requirement factor | |
first : crop position indicator | |
aslpg : average slope gradient (in percent) | |
Purpose : | Return one element of USLE management table. |
Called by : | MUSTAB |
Calls to : | ISNITO, RDGF |
Box Ref. : | 3.36 |
Name : | MUSTAB |
Type: | subroutine |
Arguments : | none |
Purpose : | Set up relevant portion of USLE management factor table. |
Called by : | MAIN |
Calls to : | MUSLF |
Box Ref. : | 3.16 |
Name : | PSGR (sg, hi, kval) |
Type: | real*4 function |
Arguments : | real*4, real*4, real*4 |
sg : slope gradient | |
hi : horizontal spacing of terraces | |
kval:soil erositivity factor in USLE | |
Purpose : | Return adjustment factor reflecting effect of slope gradient reduction for |
given slope gradient, horizontal spacing, and slope erositivity. | |
Called by : | MUSLF |
Calls to : | none |
Box Ref. : | 3.32 |
Name : | PSLR (sg, hi, kval) |
Type: | real*4 function |
Arguments : | real*4, real*4, real*4 |
sg : slope gradient | |
hi : horizontal spacing of terraces | |
kval : soil erositivity factor in USLE | |
Purpose : | Return adjustment factor reflecting effect of slope length reduction for given slope gradient, horizontal spacing, and slope erositivity. |
Called by : | PUSLF |
Calls to : | none |
Box Ref. : | 3.31 |
Name : | PUSLF (kval, aslpg) |
Type: | real*4 function |
Arguments : | real*4, real*4 |
kval : soil erositivity factor in USLE | |
aslpg : average slope gradient | |
Purpose : | Return USLE protection factor according to agro-ecological conditions and input level. |
Called by : | MAIN |
Calls to : | ISNITO, PSGR, PSLR, RDGF, TRDGF |
Box Ref. : | 3.15 |
Name : | PUTBIN (nfeas) |
Type: | subroutine |
Arguments : | integer*2 |
nfeas : feasible crop count | |
Purpose : | Write land inventory record to sequential unformatted file. |
Called by : | MAIN |
Calls to : | none |
Box Ref. : | 3.11 |
Name : | PUTCMB |
Type: | subroutine |
Arguments : | none |
Purpose : | Write legal crop combinations to sequential unformatted file. |
Called by : | COMBI |
Calls to : | CUSLE, PYLOSS |
Box Ref. : | 3.43 |
Name : | PYLOSS (sloss, ithz, days, islu, iphs) |
Type: | real*4 function |
Arguments : | real*4, integer*2, integer*2, integer*2, integer*2 |
sloss : annual soil loss | |
ithz : thermal zone code | |
days : number of days in LGP | |
islu : soil unit code | |
iphs : soil phase code | |
Purpose : | Convert estimated soil loss to productivity loss. |
Called by : | PUTCMB |
Calls to : | ISLITH |
Box Ref. : | 3.49 |
Name : | RAIN (days) |
Type: | real*4 function |
Arguments : | integer*2 |
days : number of days in LGP | |
Purpose : | Return mean average rainfall in a given LGP. |
Called by : | RUSLE |
Calls to : | none |
Box Ref. : | 3.27 |
Name : | RDGF (slg) |
Type: | real*4 function |
Arguments : | real*4 |
slg : slope gradient (in percent) | |
Purpose : | Return adjustment multiplier used in USLE management factor to account for effect of ridging. |
Called by : | MUSLF, PUSLF |
Calls to : | none |
Box Ref. : | 3.33* |
Name : | READIN (eof) |
Type: | subroutine |
Arguments : | integer*2 |
eof : end-of-file indicator | |
Purpose : | Read in next record from land inventory file. |
Called by : | MAIN |
Calls to : | none |
Box Ref. : | 3.4 |
Name : | REDIST |
Type: | subroutine |
Arguments : | none |
Purpose : | Return rain erositivity distribution in dominant pattern. |
Called by : | MAIN |
Calls to : | none |
Box Ref. : | 3.17 |
Name : | RFSLPF (islp, icrp) |
Type: | real*4 function |
Arguments : | integer*2 , integer |
islp : slope gradient (in tenth of percent) | |
icrp : sequential crop number | |
Purpose : | Return slope gradient cultivation factor |
Called by : | TBGET1 |
Calls to : | none |
Box Ref. : | 3.24 |
Name : | RICR (icrp, ithz, ilgp, days, yfct, ylimit) |
Type: | real*4 function |
Arguments : | integer, integer*2, integer*2, integer*2, real*4, real*4 |
icrp : crop number | |
ithz:thermal zone code | |
ilgp : LGP code | |
days : number of days in LGP | |
yfct : crop productivity factor | |
ylimit. : crop productivity cut-off point | |
Purpose : | Determine inter-cropping increment multiplier. |
Called by : | MAIN |
Calls to : | none |
Box Ref. : | 3.9 |
Name : | RPDF (bdate, edate, swdate) |
Type: | real*4 function |
Arguments : | integer*2, integer*2, integer*2 |
bdate : beginning date | |
edate : ending date date | |
swdate : switching date | |
Purpose : | Return relative rain erositivity per day for given interval on crop calendar. |
Called by : | CUSLE |
Calls to : | none |
Box Ref. : | 3.51 |
Name : | RUSLE (days) |
Type: | real*4 function |
Arguments : | integer*2 |
days : number of days in LGP | |
Purpose : | Return rainfall erositivity factor for given LGP. |
Called by: | MAIN |
Calls to : | RAIN |
Box Ref. : | 3.12 |
Name : | SLF (sg) |
Type: | real*4 function |
Arguments : | real*4 |
sg : slope gradient | |
Purpose : | Return slope length factor for a given gradient. |
Called by : | LSUSLE |
Calls to : | none |
Box Ref. : | 3.30 |
Name : | SLYSET (icrp) |
Type: | subroutine |
Arguments : | integer |
icrp : sequential crop number | |
Purpose : | Calculate productivity factor with respect to maximum crop yield for soil related attributes. |
Called by : | MAIN |
Calls to : | none |
Box Ref. : | 3.8 |
Name : | STPHS (iphs) |
Type: | real*4 function |
Arguments : | integer*2 |
iphs : soil phase code | |
Purpose : | Return soil erositivity adjustment factor for gravelly, stony and bouldery soil phases. |
Called by : | KUSLE |
Calls to : | none |
Box Ref. : | 3.29 |
Name : | TBGETO |
Type: | subroutine |
Arguments : | none |
Purpose : | Set up ‘in core’ tables which are independent of land inventory parameters related to mapping unit. |
Called by : | MAIN |
Calls to : | ERROR |
Box Ref. : | 3.3 |
Name : | TBGET1 |
Type: | subroutine |
Arguments : | none |
Purpose : | Set up ‘in-core’ sub-tables depending on individual land inventory attributes. |
Called by : | MAIN |
Calls to : | CLRCH1, CLR2BI, CLR4BR, ERROR, ISFLVS, TXTURE |
Box Ref. : | 3.6 |
Name : | TRDGF (slg) |
Type: | real*4 function |
Arguments : | real*4 |
slg : slope gradient (in percent) | |
Purpose : | Return adjustment multiplier used in USLE management factor to account for incremental (in addition to ridging) effect of tied ridging. |
Called by : | PUSLF |
Calls to : | none |
Box Ref. : | 3.34 |
Name : | TXTURE |
Type: | subroutine |
Arguments : | none |
Purpose : | Set up texture rule multipliers by crop and texture class. |
Called by : | TBGET1 |
Calls to : | CLR4BR, ISGRND, ISWPOT |
Box Ref. : | 3.21 |
Name : | VALUE (joice, idx) |
Type: | real*4 function |
Arguments : | integer, integer |
joice : choice criterion | |
idx : index of crop in crop combination | |
Purpose : | Return crop ‘value’ used in crop combination filter routine. |
Called by : | CMBVAL |
Calls to : | none |
Box Ref. : | 3.47 |
Name : | VCF (p, rule) |
Type: | real*4 function |
Arguments : | real*4, integer*2 |
p. : canopy cover percentage | |
rule:type of rule to be applied | |
Purpose : | Return vegetation cover factor for a given canopy cover percentage. |
Called by : | CUSLE |
Calls to : | none |
Box Ref. : | 3.53 |
Name : | VCP (icrp, idx, rho, first) |
Type: | real*4 function |
Arguments : | integer, integer, real*4, logical |
icrp : sequential crop number | |
idx : crop type index | |
rho : rho factor | |
first : crop position indicator | |
Purpose : | Return canopy cover percentage for a given crop and a particular crop stage. |
Called by : | CUSLE |
Calls to : | none |
Box Ref. : | 3.52 |
Name : | WYFCT (icrp, daylft, dayreq) |
Type: | real*4 function |
Arguments : | integer, integer*2, integer*2 |
icrp : sequential crop number | |
daylft. : days left in growing period | |
dayreq : days required for completion of crop cycle | |
Purpose : | Calculate yield factor for crops not finishing full growth cycle. |
Called by : | LCOMBI |
Calls to : | none |
Box Ref. : | 3.46 |
Name : | WYPOS (kord, yldfct) |
Type: | real*4 function |
Arguments : | integer, real*4 |
kord : position of crop in sequential crop combination | |
yldfct : crop productivity factor | |
Purpose : | Calculate crop sequence yield reduction factor. |
Called by : | LCOMBI |
Calls to : | none |
Box Ref. : | 3.45 |
Each AEZCCS program is controlled by a short input data file which is usually read from standard input. Table 4.1 shows an example used to run program AEZCCS03 for land productivity assessment of Nyeri district in Kenya at intermediate level of input.
TABLE 4.1
Control input data for program AEZCCS03
Card Nr. | Variable name | Data file contents | Format specification |
01 | FNINP | LINV.105 | (A50) |
02 | FNBIN | BIN. 105 | (A50) |
03 | FNTAB | DBG02I | (A50) |
04 | FNDBG | DBG02I | (A50) |
05 | FNSCR | SCR01 | (A50) |
06 | FNRND1 | RND01I | (A50) |
07 | FNRND2 | RND02I | (A50) |
08 | FNRND3 | RND03I | (A50) |
09 | ITECH | 2 | (12) |
10 | IDEBUG | 0 | (12) |
11 | IRAND | 1 | (12) |
12 | NCCBS | 3 | (12) |
13 | ALLCMB | 0 | (12) |
14 | CYCFRC | 1 | (12) |
15 | NOMONO | 3 | (12) |
16 | DTURN | 10 | (12) |
17 | DRYA | 30 | (12) |
18 | DRYB | 15 | (12) |
19 | DAYMIN | 60 | (12) |
20 | YLIMIT | 0.20 | (F4.2) |
21 | YLIMCB | 0.05 | (F4.2) |
22 | ACCEPT | 0.90 | (F4.2) |
23 | COMMENT | ||
24–87 | IJCCF | 001 000 111111 | (I3,1X,75A1) |
It should be noted that the fourth line of the control data file specifies the file name of a temporary working file which is usually of fairly moderate size - typically less than 20 K bytes. This file is re-written for every land inventory cell that is processed and its actual size depends on the number and kind of sequential crop combinations that have to be evaluated in the productivity assessment. It is highly advisable to use a medium that can be accessed quickly for storing this file to speed up program execution. On personal computer systems a RAM disk should be used whenever possible.
where
FNINP | = | name of file (including full path) containing land inventory to be processed. |
FNBIN | = | name of file (including full path) where cell information and crop combination records are to be stored for later use in programs AEZCCS04 and AEZCCS05. |
FNTAB | = | name of file (including full path) containing aggregation indices and miscellaneous crop conversion and weight factors (CF-cards). |
FNDBG | = | name of file (including full path) where debug output and error messages are to be printed. |
FNSCR1 | = | name of unformatted sequential file (including full path) used as temporary working space. A RAM disk file should be specified whenever possible for fast access. |
FNRND1 | = | name of unformatted random access file (including full path) containing converted productivity assessment rules. |
FNRND2 | = | name of unformatted random access file (including full path) containing crop yield tables. |
FNRND3 | = | name of unformatted random access file (including full path) containing fallow requirement tables. |
ITECH | = | 1-digit input level designator : 1 = low input level, 2 = intermediate input level, 3 = high input level |
IDEBUG | = | ebug level indicator; controlling level of detail to be written out to debug file during program execution. |
IRAND | = | binary output write flag : 1 = do not create file BIN.$$$ ($$$ = 105 in this example) 2 = create binary output BIN.$$$ |
NCCBS | = | nesting depth; maximum number of crops considered in sequential crop combinations (< 4). |
ALLCMB | = | consider sequential crop combinations with less than maximum possible number of crops in combination. |
CYCFRC | = | force longer cycle crops to precede shorter cycle crops. |
NOMONO | = | disregard mono-species sequential crop combinations where number of members is greater or equal the indicated level (dry-land crops only). |
DTURN | = | number of days required between two crops in sequential crop combination. |
DRYA | = | extra days required for wet-land rice when planted at beginning of growing period. |
DRYB | = | extra days required for wet-land rice when planted at end of growing period. |
DAYMIN | = | minimum length of growing period to consider crop production. |
YLIMIT | = | primary productivity threshold level relative to maximum attainable yield that must be exceeded for considering crops in assessment. |
YLIMCB | = | secondary productivity threshold level relative to maximum attainable yield that must be exceeded for considering crops in crop combinations other than in first position. |
ACCEPT | = | crop combination acceptance filter threshold level. |
IJCCF | = | the crop combination filter uses the two-dimensional array IJCCF(i j), ij=l, MFCR+MCCR (see Appendix B); IJCCF(i,j)=0 indicates that crop j cannot follow crop i in a sequential crop combination, thus filtering out this pair of crops from the admissible cropping patterns. |
The computerized land inventory contains information on land units which are unique in terms of the indicators which comprise each record. In the Kenya Case Study the land inventory records have a length of 41 characters with the following contents:
Card Position | Contents |
1 – 2 | province code |
3 – 4 | district code |
5 – 6 | thermal zone code |
7 – 8 | length of growing period code |
9 – 10 | pattern code |
11 – 13 | mapping unit (Kenya Soil Map) |
14 – 16 | FAO soil unit code |
17 | soil coarse material indicator |
18 – 19 | soil texture code |
20 – 21 | soil phase combination code |
22 – 23 | slope class code |
24 – 26 | average slope gradient (in tenth of percent) |
27 – 28 | cash crop area indicator |
29 | forest area indicator |
30 – 31 | irrigation scheme code |
32 | tse-tse area indicator |
33 | game park indicator |
34 – 41 | cell extent (in ha) |
A description of the respective coding schemes used in the Kenya Case Study can be found in Appendix A.
Program AEZCCS03 requires the input of additional crop factors which are read from a text file, named according to the contents of line five of the control file (variable FNTAB). The format of the relevant part in this file, records beginning with a 2-character card label CF, will be described in the next section dealing with the LP Matrix Generator program AEZCCS04.
As mentioned earlier, the crop productivity assessment results are save to an unformatted sequential file with variable length records, named as specified in variable FNBIN, i.e. line two of the control input file.
The very first record of the file contains information on input level and maximum number of members in sequential crop combinations. Then, each cell begins with a cell record, containing land inventory information and the number of feasible crops in this cell. When the cell can be used by at least one crop activity, additional cell information regarding soil loss and conservation is saved. For each admissible crop combination the following information is stored: total number of members, crop number of members, maximum attainable yield, minimum, average and maximum yield factors relative to maximum yield.
The size of the crop production assessment file can vary substantially, depending on the number and kind of agro-ecological cells, the number and type of crops in the assessment, and the setting of the control variables NCCBS, ALLCMB, CYCFRC, NOMONO, YUMIT and YUMCB.
The crop productivity assessment file forms the basis for all further analysis, be it single crop suitability tabulation or district planning models. As an example, Figures 4.3 to 4.5 show, at aggregate level, productivity assessment results for crops, pastures and fuelwood species, respectively, as derived from district-wise crop assessment files of Kenya.
FIGURE 4.3
AEZ productivity assessment, crops
FIGURE 4.4
AEZ productivity assessment, pastures
FIGURE 4.5
AEZ productivity assessment, fuelwood species