Previous Page Table of Contents Next Page


Chapter 4
Program AEZCCS03

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

4.1 Program Logic and Overview

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

FIGURE 4.1

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

FIGURE 4.2

4.2 Input/Output File Sizes and Connections

Unit NrFile nameFileb) typeRecord length (bytes)Number of recordsa)File size (bytes)I/Oc) mode
5CTRL03FS80876960R
6PRINTERFS132V-W
10LINV.$$$e)FS41<76664<3143224R
11RND01UR1921800345600R
12RND02d)UR98634046213592R
13RND03UR16013521600R
18SCR01US<125V <64 KbRW
19BIN.$$$e)US< 56V< 10 MbW

a) ‘V’ indicates a variable, district or country specific number of records.

b) FS = formatted sequential, UR = unformatted random access, US = unformatted sequent.

c) R = input, W = output.

d) Since yield information is saved only for crops which exceed the productivity threshold level, the actual number of records and size of file RND02 is significantly less than the indicated maximum file size (about 2Mb in the Kenya Case Study).

e) ‘$$$’ in file names BIN.$$$ and LINV.$$$ has to be replaced by the respective three digit district codes. The land inventory generated from the basic resource maps used in the Kenya Case Study comprises of 91608 records describing the climatic and land resources of 41 districts in Kenya. The number of records per district ranges from 178 (Mombasa) to 6358 (Machakos), with a median value of 2068 (Nyeri).

4.3 Subprogram Description

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

4.4 Program Control Data, File CTRL03

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 nameData file contentsFormat specification
01FNINPLINV.105(A50)
02FNBINBIN. 105(A50)
03FNTABDBG02I(A50)
04FNDBGDBG02I(A50)
05FNSCRSCR01(A50)
06FNRND1RND01I(A50)
07FNRND2RND02I(A50)
08FNRND3RND03I(A50)
09ITECH2(12)
10IDEBUG0(12)
11IRAND1(12)
12NCCBS3(12)
13ALLCMB0(12)
14CYCFRC1(12)
15NOMONO3(12)
16DTURN10(12)
17DRYA30(12)
18DRYB15(12)
19DAYMIN60(12)
20YLIMIT0.20(F4.2)
21YLIMCB0.05(F4.2)
22ACCEPT0.90(F4.2)
23COMMENT  
24–87IJCCF001 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.

4.5 Computerized Land Inventory Data, File LINV.$$$

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 PositionContents
1 – 2province code
3 – 4district code
5 – 6thermal zone code
7 – 8length of growing period code
9 – 10pattern code
11 – 13mapping unit (Kenya Soil Map)
14 – 16FAO soil unit code
  17soil coarse material indicator
18 – 19soil texture code
20 – 21soil phase combination code
22 – 23slope class code
24 – 26average slope gradient (in tenth of percent)
27 – 28cash crop area indicator
  29forest area indicator
30 – 31irrigation scheme code
  32tse-tse area indicator
  33game park indicator
34 – 41cell extent (in ha)

A description of the respective coding schemes used in the Kenya Case Study can be found in Appendix A.

4.6 Additional Crop Factors, File COMMDAT

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.

4.7 Crop Productivity Assessment Results, File BIN.$$$

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.3

FIGURE 4.4
AEZ productivity assessment, pastures

FIGURE 4.4

FIGURE 4.5
AEZ productivity assessment, fuelwood species

FIGURE 4.5

Previous Page Top of Page Next Page