Program AEZCCS05 reads the output from the AEZ land productivity assessment (program AEZCCS03) and the solution file LPSOL generated by the LP package to print out summary tables at a level of detail as indicated in the control file. It can be meaningful to call the program repeatedly with the same LP solution file but modified control parameters, e.g. to investigate the consequences of alternative soil conservation levels on the long term production potential.
Program AEZCCS05 resembles in many aspects the LP Matrix Generator AEZCCS04 discussed in the previous chapter. There are, however, important differences.
Both programs use the same scenario control input data, file CTRL$$$, (subroutine CTRLIN) where the user specifies the mode of operation and, optionally, a set of constraints. Aggregation indices, conversion weights and various technical coefficients at different levels of aggregation are read from a data set as specified on the scenario control file (subroutine L0ADT1). Then, the livestock systems definition tables are processed (subroutine LOADT2), and crop specific input requirements in table function format are read into memory (subroutine LOADTM). Several data buffers are cleared (subroutine CLRALL) which are to hold output summary statistics.
The program logic consists of two nested loops. The outer loop runs over land inventory records, the inner loop over crop combination records within a cell.
The main program loop starts with reading the cell information record from the productivity assessment file, an unformatted sequential file created by program AEZCCS03 (subroutine CELLIN). Then, basic accounting of cell extents takes place (subroutine ACCALC), the applicable population density is retrieved, and the crop combination records relating to the current cell are copied to a temporary working file (subroutine TBGET).
The temporary file is re-read and the crop combination records are processed (subroutine CMBIN). Each crop combination record is tested for non-zero activity level in the LP solution (subroutine LPSOL). If applicable, various land area counters are updated (subroutine ACCALC), and production from the currently considered crop combination is determined (subroutine QCCALC). The input requirements for production in terms of seeds, fertilizer, power and pesticides are derived from the technology matrix (subroutine INPUTS) and the respective weight in the objective function of the LP is calculated (function OBJFUN). The aggregate land use and production counters are updated (subroutine UPDCNT).
FIGURE 6.1
Information flow in program AEZCCS05
After having processed all the crop combination records available in the current land inventory cell, the program proceeds with reading the next cell information record continuing this operation cycle until all cells have been read and dealt with.
Finally, the program turns to the livestock activities (subroutine LVSIN). While processing all the crop combination information, the program also calculates and aggregates data on feed supply by livestock zone. This information is used to generate livestock zone and livestock system specific feed balances and production accounts (subroutine QLCALC).
If no errors or infeasibilities have been detected so far, the program ends with printing detailed information on land use, crop choice, production, yields, feed balances and input requirements, comparing supported population densities to estimated base year (1980 in the Kenya Case Study) and projected population densities in the year 2000 (subroutine LPTAB).
The print file contains information on land use by cell, crop tables showing land classes, yields and production under bad, average, and good climatic conditions, livestock production accounts, input requirement tables, and a district summary. The information flow in program AEZCCS05 is shown in Figure 6.1.
Unit Nr | File name | Fileb)type | Record length (bytes) | Number of recordsa) | File size (bytes) | I/Oc) mode |
5 | CTRL$$$e) | FS | 80 | V | R | |
6 | PRINTER | FS | 132 | V | - | W |
9 | OUT$$$e) | FS | 132 | V | ≤ 1 Mb | W |
10 | LPSOLd) | FS | 36 | V | ≤ 128 Kb | R |
11 | POPDIST | UR | 11880 | 104 | 1235520 | R |
12 | EXTENTS | UR | 5940 | 104 | 617710 | R |
18 | SUMMARY | UR | 19749 | 123 | 3573 Kb | RW |
10 | COMMDAT | FS | 80 | 132 | ≤ 1000 | R |
10 | LVSDAT | FS | 80 | 55 | ≤ 1000 | R |
10 | TECHMAT | FS | 80 | 456 | 36480 | R |
17 | SCR305d) | US | ≤ 125 | V | ≤ 32 Kb | RW |
19 | BIN.$ $ $e) | US | ≤ 56 | V | ≤ 10 Mb | R |
a) ‘V’ indicates a variable, district or country specific number of records.
b) FS = formatted sequential, UR = unformatted random access, US = unformatted sequent.
Name : | AEZCCS05 |
Type: | Main program |
Purpose : | LP Report Writer program for population supporting capacity assessment. |
Called by : | none |
Calls to : | CELLIN, CLRALL, CMBIN, CTRLIN, LPSOL, LPTAB, LVSIN, TBGET |
Arguments : | none |
Box Ref. : | 1.6 |
Name : | ACCALC (nflag) |
Type: | subroutine |
Arguments : | integer |
nflag : routine control flag | |
Purpose : | Set up cell acreage counters. |
Called by : | CMBIN, TBGET |
Calls to : | CLR4BR |
Box Ref. : | 5.13* |
Name : | CELLIN (eof, nfeas) |
Type: | subroutine |
Arguments : | integer*2, integer*2 |
eof : end-of-file indicator | |
nfeas : number of feasible crops in current cell | |
Purpose : | Read in land inventory record from unformatted sequential file. |
Called by : | MAIN |
Calls to : | none |
Box Ref. : | 5.4 |
Name : | CLRALL |
Type: | subroutine |
Arguments : | none |
Purpose : | Clear and initialize relevant data buffers. |
Called by : | MAIN |
Calls to : | CLR4BR, CLR8BR |
Box Ref. : | 5.2 |
Name : | CLR2BI (buf, n, val) |
Type: | subroutine |
Arguments : | integer*2(), 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 : | CMBIN, CTRLIN, L0ADT2 |
Calls to : | none |
Box Ref. : | none |
Name : | CLR4BI (buf, n, val) |
Type: | subroutine |
Arguments : | integer*40, 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 four byte integer array to a given value. |
Called by : | CTRLIN |
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 : | ACCALC, CLRALL, CTRLIN, INPUTS, L0ADT2, LPTAB, LVSIN, QCCALC, QLCALC, UPDCNT |
Calls to : | none |
Box Ref. : | none |
Name : | CMBIN |
Type: | subroutine |
Arguments : | none |
Purpose : | Read in and process crop combination records relevant in current cell. |
Called by : | MAIN |
Calls to : | ACCALC, CLR2BI, LPSOL, QCCALC, UPDCNT |
Box Ref. : | 5.6 |
Name : | CTRLIN |
Type: | subroutine |
Arguments : | none |
Purpose : | Read scenario control file and open required files. |
Called by : | MAIN |
Calls to : | CLR2BI, CLR4BI, CLR4BR, ERROR, L0ADT1, L0ADT2, LOADTM |
Box Ref. : | 5.1 |
Name : | DIVI (a, b) |
Type: | real*4 function |
Arguments : | real*4, real*4 |
a : nominator | |
b.:denominator | |
Purpose : | Divide a by b checking for floating zero divide. |
Called by : | LPTAB |
Calls to : | none |
Box Ref. : | 5.19 |
Name : | ERROR (ityp, ifatal) |
Type: | subroutine |
Arguments : | integer, integer |
ityp : error code | |
ifatal : error level | |
Purpose : | Display an error message. |
Called by : | CTRLIN, LOADT1, LOADT2 |
Calls to : | none |
Box Ref. : | 5.12* |
Name : | INPUTS (icrp, yield, req) |
Type: | subroutine |
Arguments : | integer, real*4, real*40 |
icrp : crop code | |
yield : crop yield | |
req : input requirements | |
Purpose : | Interpolate input requirements from table functions given in technology matrix. |
Called by : | QCCALC, QLCALC |
Calls to : | CLR4BR, ISGLYS, TMIDX, TTAB |
Box Ref. : | 5.20* |
Name : | ISGLYS (islu) |
Type: | logical function |
Arguments : | integer*2 |
islu : soil unit code | |
Purpose : | Is soil a Gleysol ? |
Called by : | INPUTS |
Calls to : | none |
Box Ref. : | 5.23 |
Name : | ISLITH (iphs) |
Type: | logical function |
Arguments : | integer*2 |
iphs : soil phase code | |
Purpose : | Is soil phase of type lithic ? |
Called by : | INPUTS |
Calls to : | none |
Box Ref. : | 5.26 |
Name : | ISRFED (kfirst) |
Type: | logical function |
Arguments : | integer |
kfirst : first crop in sequential crop combination | |
Purpose : | Check if land can be used for rainfed production. |
Called by : | TBGET |
Calls to : | none |
Box Ref. : | 5.15 |
Name : | LOADT1 |
Type: | subroutine |
Arguments : | none |
Purpose : | Load crop specific conversion factors and weights. |
Called by : | CTRLIN |
Calls to : | ERROR |
Box Ref. : | 5.9 |
Name : | LOADT2 |
Type: | subroutine |
Arguments : | none |
Purpose : | Load livestock systems parameters. |
Called by : | CTRLIN |
Calls to : | CLR2BI, CLR4BR, ERROR |
Box Ref. : | 5.10 |
Name : | LOADTM |
Type: | subroutine |
Arguments : | none |
Purpose : | Load technology matrix. |
Called by : | CTRLIN |
Calls to : | none |
Box Ref. : | 5.11 |
Name : | LPSOL (ctype, ncol, ierr) |
Type: | real*4 function |
Arguments : | character*l, integer*4, integer |
ctype : constraint type indicator | |
ncol : routine control flag | |
ierr : error return code | |
Purpose : | Extract relevant activity level from file LPSOL. |
Called by : | CMBIN, LVSIN, MAIN |
Calls to : | none |
Box Ref. : | 5.3* |
Name : | LPTAB |
Type: | subroutine |
Arguments : | none |
Purpose : | Tabulate district results and save on scenario summary file. |
Called by : | MAIN |
Calls to : | CLR4BR, CLR8BR, DIVI |
Box Ref. : | 5.8 |
Name : | LVSIN |
Type: | subroutine |
Arguments : | none |
Purpose : | Evaluate livestock systems and prepare for summary tables. |
Called by : | MAIN |
Calls to : | CLR4BR, LPSOL, QLCALC |
Box Ref. : | 5.7 |
Name : | OBJFUN (mode, kfirst, qval, pcost) |
Type: | real*4 function |
Arguments : | integer, integer, real*4, real*4 |
mode : routine control flag, program mode | |
kfirst : first crop in sequential crop combination | |
qval : production value | |
pcost : production cost | |
Purpose : | Return weight of current activity in linear objective function. |
Called by : | QCCALC, QLCALC |
Calls to : | none |
Box Ref. : | 5.21* |
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 : | TBGET |
Calls to : | ISLITH |
Box Ref. : | 5.16 |
Name : | QCCALC |
Type: | subroutine |
Arguments : | none |
Purpose : | Calculate production, input requirements, and value of objective function for a given sequential crop combination. |
Called by : | CMBIN |
Calls to : | CLR4BR, INPUTS, OBJFUN, TLUFCT |
Box Ref. : | 5.17 |
Name : | QLCALC |
Type: | subroutine |
Arguments : | none |
Purpose : | Calculate production, feed requirements, and value of objective function for a given livestock system. |
Called by : | LVSIN |
Calls to : | CLR4BR, INPUTS, OBJFUN |
Box Ref. : | 5.7 |
Name : | TBGET |
Type: | subroutine |
Arguments : | none |
Purpose : | Set up cell specific yet crop combination independent information. |
Called by : | MAIN |
Calls to : | ACCALC, ISRFED, PYLOSS, UPDCNT |
Box Ref. : | 5.5 |
Name : | TLUFCT (itech) |
Type: | real*4 function |
Arguments : | integer |
itech : input level indicator | |
Purpose : | Return pasture/livestock productivity adjustment factor. |
Called by : | QCCALC |
Calls to : | none |
Box Ref. : | 5.22 |
Name : | TMIDX (days, isglys, yldfct) |
Type: | integer function |
Arguments : | integer*2, logical, real*4 |
days : number of days in LGP | |
isglys : gleysol indicator | |
yldfct. : productivity factor | |
Purpose : | Return land class index for look-up in technology matrix. |
Called by : | INPUTS |
Calls to : | none |
Box Ref. : | 5.24 |
Name : | TTAB (yld, kr, lc, req) |
Type: | subroutine |
Arguments : | real*4, integer, integer, real*4() |
yld : crop yield | |
kr : index of crop in technology matrix | |
lc : land class index | |
req : input requirements | |
Purpose : | Look up input requirements in technology matrix. |
Called by : | INPUTS |
Calls to : | none |
Box Ref. : | 5.25 |
Name : | UPDCNT (nflag) |
Type: | subroutine |
Arguments : | integer |
Purpose : | Update counters holding district totals. |
Called by : | CMBIN, TBGET |
Calls to : | CLR4BR |
Box Ref. : | 5.14* |
Each AEZCCS program is controlled by a short input data file which is usually read from standard input. Refer to section 5.4 in the previous chapter for a discussion of scenario control input data file CTRL$$$ which is used for both, to run LP Matrix Generator program AEZCCS04 and LP Report Writer program AEZCCS05.
Refer to section 5.5 of the previous chapter for a description of input file COMMDAT containing three record types, CF, CQ, and AG, which refer to three different levels of commodity aggregation, namely, crop list, agricultural production, and aggregate food commodity list, respectively. Each record type contains commodity name information and technical coefficients such as conversion weights and extraction coefficients. Examples of record formats taken from the Kenya Case Study can be found in Appendix D.
This text file contains three record types, LZ, LS, and LQ, which refer to livestock zone definition records, livestock system definition, and livestock product definition, respectively. Refer to section 5.6 in the previous chapter for a description of the record formats and to Appendix D for examples.
Refer to section 5.7 in the previous chapter for a description of input file TECHMAT containing crop, land class, and technology specific input requirements in terms of seeds, fertilizer, power, and pesticides.
Depending on the setting of control parameter IPRINT the LP Report Writer Program generates scenario summary tables at different levels of detail. Information can be obtained on cell-wise characteristics and use, summary tables in terms of the three commodity levels considered in the model, i.e. crop level, agricultural production level, aggregate final food consumption level, livestock system feed balance and production tables, and a district summary table. Examples 6.1 to 6.4 show selected results obtained for South Nyanza district in Kenya under a food maximizing strategy at intermediate level of inputs.
EXAMPLE 6.1 District summary table. South Nyanza district, food maximizing strategy | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DISTRICT SUMMARY : # SOUTH NYANZA DISTRICT (601) - NYANZA PROVINCE | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
EXAMPLE 6.2 Final product supply. South Nyanza district, food maximizing strategy | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
Final Product Supply | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
EXAMPLE 6.3 Food production statistics. South Nyanza district, food maximizing strategy | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
EXAMPLE 6.4
Crop production statistics. South Nyanza district, food maximizing strategy
Land Productivity classes | Production (mt) | yields (kg/ha) | ||||||||||||||
CROP | > 80 | 80–60 | 60–40 | 40–20 | 20–0 | P.Harv | Fallow | Arable | S.Harv | T.Harv | MIN | AVG | MAX | MIN | AVG | MAX |
BARL 1 | 0 | 1607 | 579 | 1342 | 714 | 4242 | 1117 | 5359 | 1885 | 6128 | 1273 | 6125 | 9913 | 208 | 1000 | 1618 |
BARL 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 19 | 19 | 6 | 23 | 31 | 298 | 1239 | 1642 |
MAIZ l | 86 | 0 | 9035 | 12520 | 451 | 22091 | 5868 | 27959 | 47287 | 69379 | 13661 | 36589 | 87036 | 197 | 527 | 1255 |
MAIZ 2 | 96 | 2729 | 3291 | 15021 | 0 | 21137 | 5856 | 26993 | 41184 | 62321 | 20854 | 49806 | 73417 | 335 | 799 | 1178 |
MAIZ 3 | 830 | 4952 | 20171 | 32685 | 0 | 58638 | 17547 | 76185 | 28064 | 86702 | 44597 | 144288 | 196073 | 514 | 1664 | 2261 |
MAIZ 4 | 19 | 124 | 2375 | 1406 | 0 | 3923 | 1192 | 5116 | 15514 | 19438 | 13355 | 31484 | 42582 | 687 | 1620 | 2191 |
MAIZ 5 | 191 | 2879 | 4283 | 2296 | 0 | 9649 | 2982 | 12631 | 350 | 9999 | 10476 | 27973 | 44160 | 1048 | 2797 | 4416 |
MAIZ 6 | 0 | 1700 | 335 | 651 | 0 | 2687 | 813 | 3500 | 0 | 2687 | 2126 | 9745 | 13305 | 791 | 3627 | 4952 |
MAIZ 7 | 0 | 0 | 231 | 82 | 0 | 313 | 94 | 407 | 0 | 313 | 186 | 914 | 1121 | 596 | 2925 | 3585 |
MAIZ 8 | 0 | 9 | 0 | 100 | 0 | 108 | 33 | 141 | 0 | 108 | 48 | 157 | 205 | 445 | 1450 | 1896 |
MAIZ 9 | 0 | 0 | 508 | 186 | 0 | 694 | 208 | 902 | 0 | 694 | 127 | 1538 | 2188 | 184 | 2218 | 3154 |
MLLT 1 | 0 | 0 | 282 | 1112 | 0 | 1395 | 369 | 1764 | 13214 | 14609 | 793 | 4854 | 9138 | 54 | 332 | 625 |
MLLT 2 | 0 | 1128 | 3512 | 1760 | 0 | 6400 | 1668 | 8068 | 376 | 6776 | 3189 | 7627 | 9677 | 471 | 1126 | 1428 |
RICE 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2669 | 2669 | 477 | 1363 | 2013 | 179 | 511 | 754 | |
RICE 2 | 0 | 62 | 0 | 1943 | 0 | 2005 | 651 | 2656 | 4213 | 6218 | 1169 | 5521 | 7299 | 188 | 888 | 1174 |
RICE 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 427 | 427 | 0 | 73 | 244 | 0 | 171 | 570 |
RICE 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 73 | 73 | 0 | 26 | 85 | 0 | 350 | 1167 |
RICE 5 | 0 | 0 | 2713 | 949 | 0 | 3662 | 1243 | 4905 | 823 | 4485 | 4604 | 5662 | 7335 | 1027 | 1262 | 1635 |
SRGH 1 | 0 | 19 | 831 | 5465 | 0 | 6315 | 1719 | 8034 | 10698 | 17013 | 2219 | 6917 | 13087 | 130 | 407 | 769 |
SRGH 2 | 0 | 0 | 569 | 4527 | 0 | 5096 | 1433 | 6529 | 34 | 5130 | 1400 | 3457 | 5597 | 273 | 674 | 1091 |
SRGH 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 201 | 201 | 28 | 132 | 178 | 141 | 657 | 888 |
SRGH 4 | 0 | 0 | 0 | 77 | 0 | 77 | 19 | 97 | 0 | 77 | 30 | 112 | 165 | 390 | 1451 | 2130 |
SRGH 5 | 0 | 0 | 0 | 921 | 0 | 921 | 277 | 1198 | 0 | 921 | 291 | 1482 | 1993 | 315 | 1609 | 2164 |
WHEA 1 | 0 | 0 | 4 | 816 | 0 | 820 | 226 | 1046 | 1076 | 1896 | 290 | 1511 | 2438 | 153 | 797 | 1286 |
WHEA 2 | 76 | 0 | 0 | 0 | 0 | 76 | 23 | 99 | 57 | 133 | 52 | 270 | 363 | 395 | 2036 | 2740 |
GRAM 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 93 | 93 | 7 | 10 | 22 | 71 | 111 | 239 |
GRND 1 | 0 | 0 | 1647 | 1636 | 61 | 3344 | 857 | 4201 | 2639 | 5983 | 2129 | 4138 | 7825 | 356 | 692 | 1308 |
GRND 2 | 337 | 129 | 0 | 0 | 0 | 465 | 111 | 577 | 0 | 465 | 554 | 1175 | 1592 | 1191 | 2525 | 3420 |
BEAN 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1344 | 1344 | 71 | 391 | 522 | 53 | 291 | 388 |
BEAN 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 68 | 68 | 0 | 22 | 30 | 0 | 322 | 447 |
PIGP 1 | 0 | 0 | 0 | 6 | 0 | 6 | 2 | 8 | 35 | 42 | 6 | 9 | 12 | 147 | 218 | 279 |
PIGP 2 | 0 | 3338 | 1871 | 3 | 33 | 5245 | 1540 | 6785 | 0 | 2757 | 8077 | 10696 | 526 | 1540 | 2039 | |
PIGP 3 | 166 | 14970 | 91 | 5 | 0 | 15232 | 4576 | 19808 | 0 | 15232 | 13617 | 26140 | 31508 | 894 | 1716 | 2069 |
SOYB 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1734 | 1734 | 85 | 334 | 441 | 49 | 193 | 254 |
CASV | 24 | 1953 | 1561 | 5556 | 0 | 9093 | 2522 | 11615 | 0 | 9093 | 68629 | 86074 | 94801 | 7547 | 9466 | 10426 |
SPOT 3 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 3 | 4 | 1415 | 4423 | 5570 |
WPOT 1 | 0 | 0 | 364 | 32 | 0 | 396 | 99 | 495 | 20 | 416 | 675 | 1950 | 4647 | 1622 | 4687 | 11166 |
WPOT 2 | 0 | 0 | 271 | 175 | 0 | 446 | 120 | 566 | 0 | 446 | 2297 | 3032 | 4488 | 5147 | 6792 | 10054 |
WPOT 3 | 910 | 179 | 2529 | 1580 | 0 | 5198 | 1633 | 6831 | 200 | 5398 | 10550 | 57969 | 83255 | 1954 | 10738 | 15422 |
BANANA | 0 | 108 | 10458 | 3724 | 0 | 14290 | 4415 | 18705 | 0 | 14290 | 130196 | 144981 | 211328 | 9111 | 10146 | 14789 |
SUGCAN | 0 | 0 | 1557 | 8318 | 0 | 9874 | 3251 | 13125 | 0 | 9874 | 226907 | 245750 | 270248 | 22980 | 24888 | 27370 |
COTTON | 0 | 0 | 344 | 4377 | 0 | 4721 | 1407 | 6128 | 0 | 4721 | ||||||
GRASS | 0 | 31078 | 18418 | 54959 | 142151 | 246606 | 18427 | 265033 | 0 | 246606 | 579916 | 637741 | 650736 | 2352 | 2586 | 2639 |
ACACSEN | 0 | 0 | 45 | 1274 | 0 | 1319 | 147 | 1466 | 0 | 1319 | 1729 | 2091 | 2157 | 1311 | 1585 | 1635 |
CALICAL | 0 | 0 | 0 | 111 | 0 | 111 | 12 | 123 | 0 | 111 | 180 | 208 | 213 | 1625 | 1880 | 1925 |
CASUCUN | 0 | 16 | 16 | 260 | 0 | 291 | 32 | 324 | 0 | 291 | 912 | 1017 | 1052 | 3130 | 3491 | 3612 |
LEUCLEU | 0 | 0 | 79 | 79 | 233 | 390 | 43 | 434 | 0 | 390 | 0 | 1303 | 1533 | 0 | 3338 | 3927 |
SESBSES | 0 | 5 | 112 | 6471 | 0 | 6588 | 732 | 7320 | 0 | 6588 | 26425 | 27318 | 28190 | 4011 | 4147 | 4279 |
EUCACAM | 0 | 0 | 236 | 935 | 0 | 1171 | 130 | 1301 | 0 | 1171 | 0 | 5200 | 6118 | 0 | 4442 | 5225 |
EUCAGLO | 0 | 33 | 140 | 5824 | 1259 | 7257 | 806 | 8063 | 0 | 7257 | 31495 | 36856 | 38852 | 4340 | 5079 | 5354 |
EUCAGRA | 0 | 13 | 13 | 13044 | 0 | 13070 | 1452 | 14523 | 0 | 13070 | 93262 | 94203 | 97968 | 7135 | 7207 | 7495 |
EUCASAL | 0 | 15 | 229 | 4357 | 0 | 4600 | 511 | 5111 | 0 | 4600 | 5543 | 23794 | 27225 | 1205 | 5172 | 5918 |
CROPS | 2734 | 35888 | 69414 | 109269 | 1258 | 218562 | 63872 | 282435 | 174300 | 392863 | ||||||
PASTURE | 0 | 31078 | 18418 | 54959 | 142151 | 246606 | 18427 | 265033 | 0 | 246606 | ||||||
TREES | 0 | 82 | 869 | 32355 | 1492 | 34798 | 3866 | 38664 | 0 | 34798 |
FAO, 1976. A Framework for Land Evaluation, FAO Soils Bulletin 32, FAO, Rome. FAO, 1978–81. Report on the Agro-ecological Zones Project, Vols. 1–4, Methodology and Results for Africa, World Resources Report 48/1, FAO, Rome. FAO, 1984. Population Supporting Capacity Assessment Kenya, Mission Report, AGL,
FAO, Rome. FAO, 1987. World Agriculture: Toward 2000, FAO, Report No. C87/27, Rome. IBM. Mathematical Programming System - Extended (MSPX), and Generalized Upper Bounding (GUB), IBM Document No. SH20-0968-1, IBM Corporation, New York.
Murtagh, B.A. and Saunders, M.A. 1977. MINOS - A Large Scale Nonlinear Programing System, Technical Report SOL 77–9, Stanford University, California.