Description
This sector model was used to assess the comparative advantage of Turkish agriculture under a proposed policy of trade liberalization.
Large Model of Type : NLP
Category : GAMS Model library
Main file : turkey.gms
$title Turkey Agricultural Model with Risk (TURKEY,SEQ=86)
$onText
This sector model was used to assess the comparative advantage
of Turkish agriculture under a proposed policy of trade liberalization.
Le-Si, V, Scandizzo, P L, and Kasnagoklu, H, Turkey Agricultural
Sector Model. Tech. rep., The World Bank, 1982.
Keywords: nonlinear programming, agricultural economics, trade liberalization
policy analysis
$offText
$sTitle Set Definitions
Set
c 'all crops'
/ wheat , corn , rye , rice , barley
chickpea , drybean , lentil , potato , onion
gr-pepper , tomato , cucumber , sunflower , groundnut
cotton , sugarbeet , tobacco , melon , alfalfa
fodder , soybean , sesame , fallow , olive
tea , citrus , grape , apple , peach
apricot , cherry , wildcherry, strawberry, banana
quince , pistachio , hazelnut /
ca(c) 'annual-crop comm'
/ wheat , corn , rye , rice , barley
chickpea , drybean , lentil , potato , onion
gr-pepper , tomato , cucumber , sunflower , groundnut
cotton , sugarbeet , tobacco , melon , alfalfa
fodder , soybean , sesame , fallow /
ct(c) 'tree-crop comm'
/ olive , tea , citrus , grape , apple
peach , apricot , cherry , wildcherry, strawberry,
banana , quince , pistachio , hazelnut /
cl 'livestock comm' / meat , milk , wool , hide, egg /
cp(c) 'processed comm' / wheat, tomato, olive , tea , grape, hazelnut /
co(c) 'concentrates' / wheat, rye , barley, sugarbeet /
ctr(c) 'fodder transfer' / wheat, corn , rye, barley, alfalfa, fodder /
cg(c) 'grains for feed' / wheat, corn , rye, barley /
cgf(c) 'green fodder' / alfalfa, fodder /
fclass 'feed class' / pasture, grain+con, d-fodder, g-fodder /
mi 'miscellaneous input-output commodities'
/ phosphate, nitrogen, seeds, product, fodder /
mc(mi) 'miscellaneous inputs for annual crops'
/ phosphate, nitrogen, seeds /
l 'livestock types'
/ sheep, goat, angora, cattle, buffalo, mule, poultry /
sd 'land types for data presentation only'
/ irrigated 'good or poor', dry 'good or poor'
irr-good , irr-poor
dry-good , dry-poor
tree-land , pasture /
s(sd) 'crop land types'
/ irr-good 'irrigated good land', irr-poor 'irrigated poor land'
dry-good 'dry good land' , dry-poor 'dry poor land' /
ms(s,sd) 'map of s to land types'
/(irr-good,irr-poor).irrigated, (dry-good,dry-poor).dry
irr-good.irr-good , irr-poor.irr-poor
dry-good.dry-good , dry-poor.dry-poor /
tq 'time periods - quarters' / q1*q4 /
ty 'time periods - years' / 1974*1979 /
ps 'plowing power sources' / labor, animal, tractor /
ds(ps) 'draft power sources' / animal, tractor /
pt 'plowing techniques' / tradition, mechanized /
cpt(c,pt) 'crops-plowing technology'
r 'crop rotations' / r01*r50 /
sr(s,r) 'land type-rotation mapping';
cpt(ct,pt) = yes;
cpt("tea","mechanized") = no;
$sTitle Production Data
Table cropd1(c,sd,ps,tq) 'labor & draft requirements: annual crops (hrs per ha per quarter)'
labor.q1 labor.q2 labor.q3 labor.q4 animal.q1 animal.q2 animal.q3 animal.q4
wheat.dry-good .8 4 28.3 46.4 2 27 43
wheat.dry-poor 18 27.2 25.2 31.2 14 26 24 30
wheat.irrigated 1.4 28.9 45.9 52.8 4 43 49
corn.dry 14 87.4 75.6 14 19.2 3.6
corn.irrigated 88 258.3 177.6 64.9 88 17 35
rye.dry 11.2 32.7 22.3 29.2 11 32 21 28
rice.irrigated 400 105 100 25
barley.dry-good 2.5 1 168.1 20.1 95 17
barley.dry-poor 8 38.2 19.4 27.2 8 38 18 26
chickpea.dry 27 56.4 88.1 28 27 15 4 28
chickpea.irrigated 14 289 165.2 14 14 30 15 14
drybean.irrigated 19 223.7 238.8 57.7 19 44 31 40
lentil.dry 5 67.7 143.8 10.4 5 33 52 10
potato.irrigated 16 315.7 324.4 176.2 16 53 47 101
onion.dry 197 205.6 527.2 57 33
onion.irrigated 197.6 416.7 565.3 48.6 87 10 44 27
gr-pepper.irrigated 33 331.4 1040.2 33 68 56
tomato.irrigated 126.9 728.8 1067.4 105.3 57 54 122 42
cucumber.irrigated 41 262.9 948.4 34 41 19 95 34
sunflower.dry 35.2 132.1 21.3 34 17 19
sunflower.irrigated 41.8 104.7 21.9 8 38 10 6
groundnut.irrigated 59 304 353.3 371.5 57 75 6 39
cotton.irrigated 41 317.8 451.6 403.7 41 131 64 41
sugarbeet.irrigated 43.4 470.6 184.6 362.9 41.7 28.9 58.7 89.3
tobacco.dry 26 476.5 662.2 378.2 26 90 15 20
melon.dry 11.7 28.5 353.8 83.5 10 26 96
melon.irrigated 42 173.7 320.3 16 42 58 98 16
alfalfa.irrigated 85 185.5 50 33
fodder.dry 15 40.5 68.5 15 35 20
soybean.irrigated 142.3 257.7 50.2 61.8
sesame.irrigated 188.3 111.8 58.9 54.5 21.5 42 ;
Table cropd2(c,sd,mi) 'other input-output coefficients for annual crops (annual)'
nitrogen phosphate seeds product fodder
* ( k g p e r h a) (tons/ha) (tons/ha)
wheat.dry-good 75 56.7 193.3 1.55 1.85
wheat.dry-poor 48.4 62.2 186.8 2 2.4
wheat.irrigated 60.8 67 188 3.4 4.1
corn.dry 48 60 60 1.7 3.4
corn.irrigated 66 32.5 60 4.7 9.4
rye.dry 40 50 185.4 1.5 1.8
rice.irrigated 100 50 120 4.62 5.55
barley.dry-good 42 50 250 2.3 2.8
barley.dry-poor 40.4 55 184 2 2.4
chickpea.dry 20 50 140 .9 1.1
chickpea.irrigated 27 69 100 1.8 2.16
drybean.irrigated 30 62.5 110 1.5 2.7
lentil.dry 21.3 8.3 99 1 1.1
potato.irrigated 70.6 84 1555 13.9
onion.dry 60 80 31 9.2
onion.irrigated 88.5 102 22 18.6
gr-pepper.irrigated 110 110 36000 16
tomato.irrigated 118 75.5 22667 32.4
cucumber.irrigated 90 90 5.5 16.7
sunflower.dry 30 30 10 1.15
sunflower.irrigated 40 40 11.5 1.7
groundnut.irrigated 50 50 100 2.4
cotton.irrigated 160 100 75 .925
sugarbeet.irrigated 153.4 144.9 10 40.29
tobacco.dry 28 21 200000 .9
melon.dry 30 20 6.9 10.4
melon.irrigated 54 63 4.5 18.3
alfalfa.irrigated 10 10 30 11
fodder.dry 30 200 3.1
soybean.irrigated 60 15 1.6
sesame.irrigated 120 40 70 1.25 ;
Table treed1(c,ps,tq) 'labor-draft requirements: tree crops (hrs per ha per quarter)'
labor.q1 labor.q2 labor.q3 labor.q4 animal.q1 animal.q2 animal.q3 animal.q4
olive 42.8 36.1 1.9 139.6 30.4 30.4 19
tea 12 74 55 15 2
citrus 711.7 368.6 190 515.3 45.6 45.6
grape 158.7 185.5 347 77.9 55 44 28
apple 69.9 101.2 220.6 112.6 61.6 74.8 23.8
peach 103.9 63.4 632.5 101.9 77 39.3
apricot 107.2 419.3 234.1 40 181 9
cherry 256.5 1365.7 58 30 137 172
wildcherry 85.1 340 1151.3 30 244 28
strawberry 102.4 1580.6 77.5 281 8.6 8.1 31.5
banana 86 894 285 972.5 127
quince 66.8 161.5 159.4 165.4 93.5 22.6
pistachio 159 18 170 154.4 120 18 10
hazelnut 113 113 591 113 10 ;
Table treed2(c,mi) 'other input-output coefficients for tree crops: on tree land (annual inputs)'
nitrogen phosphate seeds product
* ( k g p e r h a ) (tons/ha)
olive 7.6 5.7 .912
tea 25.9 7.5 6.316
citrus 152 152 22.8
grape 25 40 4.029
apple 15.8 30.8 5.852
peach 6.2 23.1 9.81
apricot 40 50 4.04
cherry 50 40 4.7
wildcherry 50 80 4.35
strawberry 24.8 4.41
banana 400 240 15.6
quince 27.5 55 6.16
pistachio 20 1.5 .35
hazelnut 130 1.7 .9 ;
Table yieldl(cl,l) 'livestock yields (kg per head per year)'
sheep goat angora cattle buffalo mule poultry
meat 7.34 6.85 1.77 25.12 32.68 2.24
milk 24.02 38.32 15 217 285.1
wool 1.29 .6 1.58
hide .39 .28 .09 3.3 3.02
egg 76.37;
Table dpower(ds,l) 'draft power availability (hours per head per quarter)'
cattle buffalo mule
animal 10 15 30;
Parameter
labl0(l) 'labor requirements for livestock (man-hrs per head per quarter)'
/ (sheep,goat,angora) 11.53, cattle 142 , buffalo 65
mule 78 , poultry .66 /
ereq(l) 'animal energy requirements in starch equivalent (tons per animal unit)'
/ sheep .1136, goat .1195, angora .1477, cattle .4262
buffalo .5497, mule .4442, poultry .0025 /;
Scalar evalp 'energy equivalent of pasture (tons per ha)' / .2 /;
Table eval(*,c) 'energy values in starch equivalent (kg per kg)'
wheat corn rye barley (chickpea,drybean,lentil) sugarbeet alfalfa fodder
product .72 .78 .65 .71 .3 .4
concentrat .5 .24 .6 .6
fodder .13 .15 .17 .23 .19 ;
Parameter
ioconc(c) 'feedstock concentrate available from 1 unit of consumed primary product'
/ (wheat,barley) .15, rye .1, sugarbeet .09 /
gmin(cg) 'by weight minimum grain consumed by animals'
/ (wheat,corn) .1, rye .05, barley .65 /
gmax(cg) 'by weight maximum grain consumed by animals'
/ (wheat,corn) .15, rye .1, barley .75 /;
Table fmin(l,fclass) 'minimum feed by fclass (proportion)'
pasture grain+con d-fodder g-fodder
(sheep,goat,angora) .3 .05 .1 .01
(cattle,buffalo,mule) .2 .1 .1 .01
poultry 1.0 ;
Table fmax(l,fclass) 'maximum feed by fclass (proportion)'
pasture grain+con d-fodder g-fodder
(sheep,goat,angora) .5 .4 .25 .8
(cattle,buffalo,mule) .35 .5 .35 .8
poultry 1.0 ;
Parameter a(c,r,s) 'crop rotation schedules: crop and land type define unique schedule';
Table a1(c,r) 'rotation schedules: dry-poor land'
r01 r02
* (years) 2 2
wheat .5
barley .5
fallow .5 .5;
Table a2(c,r) 'rotation schedules: either dry-good or dry-poor land'
r01 r02 r03 r04 r05 r06 r07 r08 r09 r10
* (years) 4 2 2 2 2 2 2 2 2 2
corn .75 .5 .5
rye .5 .5 .5 .5 .5 .5 .5 .5
chickpea .5 .5
lentil .5
sunflower .5
tobacco .5
onion .5
melon .5
fodder .5
fallow .25 ;
Table a3(c,r) 'rotation schedules: dry-good land'
r01 r02 r03 r04 r05 r06 r07 r08 r09 r10 r11 r12 r13 r14 r15 r16 r17
* (years) 4 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
wheat .5 .4 .5 .5 .5 .5 .5 .5 .5 .5
barley .5 .5 .5 .5 .5 .5 .5
corn .5 .5
rye
chickpea .5 .5
lentil .25 .2 .5 .5
sunflower .5 .5
tobacco .5 .5
onion .5
melon .5 .5
fodder .25 .2 .5 .5
fallow .2 ;
Table a4(c,r) 'land rotation schedules: either irr-poor or irr-good land'
r01 r02 r03 r04 r05 r06 r07 r08 r09 r10 r11 r12 r13 r14 r15 r16 r17
* (years) 4 2 2 3 3 2 3 2 2 3 3 2 3 3 3 2 2
wheat .5 .5 .66 .33 .5 .33 .5 .5 .33 .33 .5 .33 .33 .5
chickpea .5
rice .75 .5
drybean .33
potato .33 .5
onion .5
tomato .33
sunflower .5
gr-pepper
cucumber
cotton .33 .66
sugarbeet .33 .33
melon .33 .66
alfalfa .5 .33 .5
soybean .33 .33
sesame .33 .5 .5
fallow .25 .33
+ r18 r19 r20
* (years) 2 2 2
corn .5 .5 .5
chickpea .5
groundnut .5
sesame .5 ;
Table a5(c,r) 'land rotation schedules: irrigated good land'
r01 r02 r03 r04 r05 r06 r07 r08 r09 r10 r11 r12 r13 r14
* (years) 4 4 2 2 3 3 3 3 3 4 3 3 3 3
wheat .25 .25 .5 .5 .33 .33 .33 .33 .33 .25 .33 .33 .33 .33
corn .25 .33 .33
melon .33 .25 .33
rice .33
drybean .25
tomato .33
potato .33
soybean .25
gr-pepper .25
groundnut .66
cucumber .25
cotton .5 .33 .33 .25 .33 .33 .33 .33
sugarbeet .25 .25 .5 .33
sunflower .33 .33
+ r15 r16 r17 r18 r19 r20 r21
* (years) 1 4 2 1 1 1 3
wheat .5 .25
rice .5
corn .5
potato .5
drybean .125 .125 .125 .125 .33
gr-pepper .125 .125 .125 .125 .33
tomato .125 .125 .125 .125
cucumber .125 .125 .125 .125
cotton .75 .5
sunflower .5
onion .33 ;
$sTitle Calculations
Parameter
labc(s,r,pt,tq) 'labor requirements: annual crops (1000 man-hrs per ha)'
drc(s,r,ds,pt,tq) 'draft requirements: annual crops (1000hrs per ha)'
inpc(c,s,r,mi) 'annual input requirements: annual crops (kg per ha)'
yieldc(c,s,r) 'yields: annual crops (tons per ha)'
yieldf(c,s,r) 'fodder production by rotation and crop: annual crops (tons per ha)'
labt(c,pt,tq) 'labor requirements: tree crops (1000 man-hrs per ha)'
drt(c,ds,pt,tq) 'draft requirements: tree crops (1000hrs per ha)'
inpt(c,mi) 'annual input reqiurements: tree crops (kg per ha)'
yieldt(c) 'yields: tree crops (tons per ha)'
labl(l) 'labor requirements: livestock (1000 man-hrs per hd)'
roff(r,s) 'round off error in above a matrix';
Scalar
dryg
dryp
irrg;
dryp = sum(r$sum(ca, a1(ca,r)), 1);
dryg = sum(r$sum(ca, a3(ca,r)), 1);
irrg = sum(r$sum(ca, a5(ca,r)), 1);
a(ca,r,"dry-poor") = a1(ca,r);
a(ca,r,"dry-good") = a3(ca,r);
a(ca,r+dryp,"dry-poor") = a2(ca,r);
a(ca,r+dryg,"dry-good") = a2(ca,r);
a(ca,r,"irr-good") = a5(ca,r);
a(ca,r,"irr-poor") = a4(ca,r);
a(ca,r+irrg,"irr-good") = a4(ca,r);
roff(r,s) = sum(ca, a(ca,r,s));
a(ca,r,s)$roff(r,s) = a(ca,r,s)/roff(r,s);
display roff, a;
sr(s,r) = yes$sum(ca, a(ca,r,s));
cropd1(ca,s,ps,tq)$(cropd1(ca,s,ps,tq) = 0) = sum(sd$ms(s,sd), cropd1(ca,sd,ps,tq));
cropd2(ca,s,mi)$(cropd2(ca,s,mi) = 0) = sum(sd$ms(s,sd), cropd2(ca,sd,mi));
labc(s,r,"tradition",tq) = sum(ca, cropd1(ca,s,"labor",tq)*a(ca,r,s))/1000;
labc(s,r,"mechanized",tq) = sum(ca, a(ca,r,s)*(cropd1(ca,s,"labor",tq)
- .9*cropd1(ca,s,"animal",tq)))/ 1000;
drc(s,r,"animal","tradition",tq) = sum(ca, a(ca,r,s)*cropd1(ca,s,"animal",tq))/1000;
drc(s,r,"tractor","mechanized",tq) = .1*sum(ca, a(ca,r,s)*cropd1(ca,s,"animal",tq))/1000;
inpc(ca,s,r,mc) = cropd2(ca,s,mc)*a(ca,r,s);
yieldc(ca,s,r) = cropd2(ca,s,"product")*a(ca,r,s);
yieldf(ca,s,r) = cropd2(ca,s,"fodder")*a(ca,r,s);
labt(ct,"tradition",tq) = treed1(ct,"labor",tq)/1000;
labt(ct,"mechanized",tq) = (treed1(ct,"labor",tq) - .9*treed1(ct,"animal",tq))/1000;
labt("tea","mechanized",tq) = 0;
drt(ct,"animal","tradition",tq) = treed1(ct,"animal",tq)/1000;
drt(ct,"tractor","mechanized",tq) = .1*treed1(ct,"animal",tq)/1000;
drt("tea","tractor","mechanized",tq) = 0;
inpt(ct,mc) = treed2(ct,mc);
yieldt(ct) = treed2(ct,"product");
labl(l) = labl0(l)/1000/card(tq);
display a, sr, cropd1, cropd2, labc, drc, inpc, yieldc, yieldf, labt, drt, inpt, yieldt, labl, ctr, inpc;
$sTitle Trade Data
Scalar exchrate 'turkish pounds to us$' / 47 /;
Parameter
pec(c) 'export price of crop commodities ($ per ton)'
pmc(c) 'import price of crop commodities ($ per ton)'
pel(cl,l) 'export price of livestock products ($ per ton)'
pml(cl,l) 'import price of livestock products ($ per ton)'
pep(c) 'export price of processed products ($ per ton)'
pmp(c) 'import price of processed products ($ per ton)';
Table tradec(c,*) '1979 production & trade: crop commodities (1000 tons and $ per ton)'
production export-q export-p import-q import-p other-q
wheat 13205 1231 125.6 607
corn 1242 680
rye 807 10 130 399
rice 225 22.8 383.3
barley 5000 0.5 141.1 3975
chickpea 285 50 589.1 -10
drybean 69 0.3 832.6 6
lentil 285 108 396.7 -20
potato 2870 12.9 171.4
onion 1000 76.5 94.7
gr-pepper 545 0.4 497.1
tomato 3500 25.6 117.8 92.5
cucumber 500
sunflower 590 -39
olive 430 5.4 680 148
groundnut 57.5 1.4 709.6
soybean 3.3
sesame 26
cotton 476.2 150.6 1751.2
sugarbeet 8760
tobacco 206.4 69.6 1908.3
tea 555 30
citrus 1147 131.5 182.7
grape 3500 8.1 276.6 302
apple 1350 29.7 224.2
peach 220 0.9 210.1
apricot 110
cherry 92
wildcherry 50
melon 5220 23.2 86.9
strawberry 22 0.1 830.3
banana 23.3
quince 45 0.1 184.9
pistachio 20 0.6 3760
hazelnut 300 7.4 1115.9 282 ;
Table tradel(l,cl,*) '1979 production & trade: livestock commodities (1000 tons and $ per ton)'
production export-q export-p import-q import-p other-q
sheep.meat 338 31 2220
sheep.milk 1102.2
sheep.wool 59.3 6 4315.8
sheep.hide 16.2
goat.meat 103.5 2.8 2220
goat.milk 571.1
goat.wool 9.2 0.3 700.2
goat.hide 3.8
angora.meat 6.5 0.2 2220
angora.milk 54.9
angora.wool 5.8 1.5 804.6
angora.hide .3
cattle.meat 391 4 1140
cattle.milk 3386.4
cattle.hide 51.6
buffalo.meat 34 3 1140
buffalo.milk 296.6
buffalo.hide 2.7
poultry.meat 132 18 762
poultry.egg 4322.7 ;
Table tradepp1(*,c) 'trade of processed products: prices and export-import limits'
wheat tomato sunflower olive tea grape hazelnut
price 132 604.4 1183 3308 2223.3 1164.5 2699.3
limit 40 18.5 13 29.6 5.7 75.6 127
factor .85 .2 .33 .2 .19 .25 .45;
pec(c) = tradec(c,"export-p");
pel(cl,l) = tradel(l,cl,"export-p");
pep(cp) = tradepp1("price",cp);
pmc(c) = tradec(c,"import-p");
pml(cl,l) = tradel(l,cl,"import-p");
display pec, pmc, pel, pml, pep;
Parameter
iop(c) 'processed product factor'
impcb(c) 'import bound: crop comm (1000 tons)'
implb(cl,l) 'import bound: livestock comm (1000 tons)'
imppb(c) 'import bound: processed comm (1000 tons)'
expcb(c) 'export bound: crop comm (1000 tons)'
explb(cl,l) 'export bound: livestock comm (1000 tons)'
exppb(c) 'export bound: processed comm (1000 tons)';
iop(cp) = 1/tradepp1("factor",cp);
impcb(c) = tradec(c,"import-q");
implb(cl,l) = tradel(l,cl,"import-q");
expcb(c) = tradec(c,"export-q");
explb(cl,l) = tradel(l,cl,"export-q");
exppb(cp) = tradepp1("limit",cp);
display iop;
$sTitle Time Series Data and Manipulations
Table yieldtc(c,ty) 'crop yield time series (kg per ha)'
1974 1975 1976 1977 1978 1979
wheat 1257 1595 1787 1785 1796 1867
corn 1935 2000 2192 2181 2241 2308
rye 1068 1379 1477 1412 1417 1428
rice 3846 4212 4502 4377 4175 4615
barley 1293 1731 1860 1813 1827 1871
chickpea 1114 1229 1241 1304 1220 1125
drybean 1450 1649 1559 1538 1560 1500
lentil 1026 1083 1129 1083 1015 1046
potato 12297 13911 15323 15556 15278 16982
onion 10000 11167 12160 12071 12571 14493
gr-pepper 10862 11009 11154 14092 14972 16000
tomato 26875 28049 32738 33721 30841 32407
cucumber 14783 16167 17000 15714 16964 16667
sunflower 988 1167 1236 1217 1169 1326
olive 1070 700 1353 490 1356 530
groundnut 2444 2222 2738 2304 2364 2300
soybean 2429 1089 1328 1019 1063 1031
sesame 630 611 584 748 674 578
cotton 714 716 817 740 727 778
sugarbeet 30507 32388 37564 36042 31905 36511
tobacco 884 828 1027 897 977 929
tea 4980 5206 5787 7553 8503 10366
citrus 21937 22400 21344 23504 20768 22650
grape 4210 4110 4010 4184 4425 4118
apple 4939 4639 4823 4257 4788 5786
peach 8221 10063 9366 8778 10667 9843
apricot 2930 4211 3840 3686 3570 4015
cherry 3842 4101 4610 4841 4740 4694
wildcherry 3541 3853 4176 4184 4491 4348
melon 9897 10996 12371 10474 11395 14350
strawberry 5006 4765 5143 6000 6000 4400
banana 16761 17004 10579 16923 16429 15533
quince 4933 5405 5733 6156 5601 6050
pistachio 96 127 19 154 24 75
hazelnut 715 909 689 806 853 784;
Table yieldtl(l,cl,ty) 'livestock "yield" time series (kg per head)'
1974 1975 1976 1977 1978 1979
sheep.meat 10.60 11.42 10.60 9.38 8.97 6.93
sheep.milk 23.7 24.1 24.2 24.2 24.0 23.9
sheep.wool 1.3 1.3 1.3 1.3 1.3 1.3
sheep.hide 0.5 0.6 0.6 0.5 0.6 0.4
goat.meat 6.39 7.31 8.68 7.31 6.39 6.85
goat.milk 37.7 38.1 38.2 38.2 38.3 37.8
goat.wool 0.6 0.6 0.6 0.6 0.6 0.6
goat.hide 0.2 0.3 0.3 0.3 0.2 0.3
angora.meat 1.77 1.77 2.66 2.21 1.77 1.77
angora.milk 14.9 15.2 14.8 15.2 14.8 15.0
angora.wool 1.6 1.6 1.6 1.6 1.6 1.4
angora.hide 0.1 0.1 0.1 0.1 0.1 0.1
cattle.meat 24.59 25.12 21.42 23.00 18.25 25.12
cattle.milk 210.0 208.1 219.8 213.8 214.8 217.5
cattle.hide 3.3 3.4 2.9 3.0 2.6 3.3
buffalo.meat 43.73 45.42 40.61 37.21 32.20 32.68
buffalo.milk 267.1 269.2 263.8 219.6 275.5 285.1
buffalo.hide 4.1 3.4 3.0 2.4 2.5 2.6
poultry.meat 2.24 2.24 2.24 2.24 2.24 2.24
poultry.egg 62.4 62.2 64.2 78.3 76.4 73.3 ;
Table pricetc(c,ty) 'farm-gate price time series for crops (tl per kg)'
1974 1975 1976 1977 1978 1979
wheat 2.30 2.66 2.61 2.89 2.18 5.28
corn 2.29 2.61 2.66 3.30 4.36 5.91
rye 1.68 1.91 1.93 2.18 2.95 4.23
rice 5.18 5.27 5.40 9.35 13.93 18.92
barley 1.88 2.07 2.10 2.41 3.35 4.78
chickpea 5.24 5.40 6.58 11.69 19.96 22.71
drybean 8.01 9.78 10.43 14.50 26.10 38.76
lentil 7.00 7.61 7.71 9.56 13.99 19.27
potato 1.96 2.23 3.12 3.36 6.39 10.36
onion 2.16 2.28 3.15 3.96 6.03 7.17
gr-pepper 2.60 3.24 4.13 5.12 9.26 11.03
tomato 2.07 2.30 2.37 3.91 7.02 8.27
cucumber 2.65 2.54 3.00 4.64 8.28 10.41
sunflower 4.62 5.22 5.77 7.07 8.21 11.72
olive 5.97 5.82 5.38 8.63 12.37 28.04
groundnut 9.26 8.65 10.04 14.93 18.32 28.33
soybean 2.68 3.91 4.40 5.39 8.97 10.34
sesame 12.97 19.00 15.50 18.50 23.13 73.31
cotton 21.21 18.16 24.18 28.49 31.03 49.61
sugarbeet 0.36 0.45 0.57 0.63 0.74 1.11
tobacco 19.94 29.91 36.05 45.19 48.00 61.18
tea 6.25 7.50 8.50 10.00 12.00 14.50
citrus 2.81 3.12 3.24 4.56 7.53 10.05
grape 3.93 3.97 4.94 8.35 12.62 19.04
apple 3.07 3.50 3.91 5.28 8.95 13.60
peach 3.07 3.59 4.35 7.81 11.49 18.92
apricot 3.85 4.01 4.62 8.55 11.49 15.20
cherry 5.34 5.51 7.61 11.27 13.00 17.31
wildcherry 3.65 4.81 5.42 8.20 16.31 15.68
melon 1.94 1.76 2.11 3.30 5.67 8.47
strawberry 2.67 7.74 12.80 20.00 25.00 53.00
banana 6.38 13.97 19.49 30.45 38.06 80.69
quince 2.97 3.93 4.22 5.36 10.11 14.43
pistachio 30.94 31.28 36.57 49.72 54.85 111.52
hazelnut 11.62 12.76 14.25 15.41 20.88 39.49;
Table pricetl(l,cl,ty) 'farm-gate price series for livestock commodities (tl per kg)'
1974 1975 1976 1977 1978 1979
sheep.meat 12.62 13.77 16.94 23.24 37.26 56.90
sheep.milk 3.58 4.96 5.61 7.63 9.79 17.81
sheep.wool 22.02 33.12 44.42 58.52 76.42 169.48
sheep.hide 15.60 17.04 16.40 18.51 33.35 60.02
goat.meat 9.67 10.89 12.44 16.49 26.06 45.26
goat.milk 3.15 4.61 5.57 5.82 8.20 12.50
goat.wool 19.90 20.83 24.25 31.41 55.41 99.28
goat.hide 15.60 17.04 16.40 18.51 33.35 60.02
angora.meat 10.01 11.33 13.38 19.60 28.56 47.40
angora.milk 3.15 4.61 5.57 5.82 8.20 12.50
angora.wool 44.78 49.53 64.65 75.70 94.93 268.84
angora.hide 15.60 17.04 16.40 18.51 33.35 60.02
cattle.meat 12.50 13.26 16.60 24.67 32.16 62.13
cattle.milk 3.45 4.70 5.48 6.34 10.04 14.30
cattle.hide .46 .35 .40 .52 1.28 2.64
buffalo.meat 10.80 12.85 14.49 21.18 25.71 60.46
buffalo.milk 3.61 4.76 5.44 6.31 8.78 12.81
buffalo.hide .46 .35 .40 .52 1.28 2.64
poultry.meat 31.70 36.00 45.80 64.90 107.25 161.50
poultry.egg 0.98 1.13 1.26 1.45 2.18 3.30;
Parameter
ordty(ty)
sumx
sumx2
*crop regression parameters
sumyc(c)
sumxyc(c)
betarc(c) 'risk beta'
alpharc(c) 'risk alpha'
pricec(c,ty) 'time series prices ($ per kg)'
cpricec(c,ty) 'constant prices ($ per kg)'
revc(c,ty) 'revenue ($ per ha)'
revdevc(c,ty) 'revenue deviation ($ per ha)'
phi 'risk factor'
k 'risk scaling constant'
pfi(ty) 'price deflator for agriculture (1979 is one)'
pfindex(ty) 'wholesale price index (1963 base)'
/ 1974 305, 1975 358, 1976 412
1977 506, 1978 734, 1979 1093 /
*livestock regression parameetrs
sumyl(cl,l)
sumxyl(cl,l)
betarl(cl,l) 'risk beta'
alpharl(cl,l) 'risk alpha'
pricel(cl,l,ty) 'time series prices ($ per kg)'
cpricel(cl,l,ty) 'constant price ($ per kg)'
revl(cl,l,ty) 'revenue ($ per ha)'
revdevl(cl,l,ty) 'revenue deviation ($ per ha)';
pfi(ty) = pfindex(ty)/pfindex("1979");
display pfi;
phi = 1;
k = sqrt(3.1416*card(ty)/(card(ty) - 1)/2);
pricec(c,ty) = pricetc(c,ty)/exchrate;
cpricec(c,ty) = pricec(c,ty)/pfi(ty);
pricel(cl,l,ty) = pricetl(l,cl,ty)/exchrate;
cpricel(cl,l,ty) = pricel(cl,l,ty)/pfi(ty);
ordty(ty) = ord(ty);
sumx = sum(ty, ord(ty));
sumx2 = sum(ty, ord(ty)**2);
revc(c,ty) = cpricec(c,ty)*yieldtc(c,ty);
sumyc(c) = sum(ty, revc(c,ty));
sumxyc(c) = sum(ty, ordty(ty)*revc(c,ty));
betarc(c) = (card(ty)*sumxyc(c) - sumx*sumyc(c))/(card(ty)*sumx2 - sumx**2);
alpharc(c) = (sumyc(c) - betarc(c)*sumx)/card(ty);
revdevc(c,ty) = revc(c,ty) - alpharc(c) - betarc(c)*ord(ty);
revl(cl,l,ty) = cpricel(cl,l,ty)*yieldtl(l,cl,ty);
sumyl(cl,l) = sum(ty, revl(cl,l,ty));
sumxyl(cl,l) = sum(ty, ordty(ty)*revl(cl,l,ty));
betarl(cl,l) = (card(ty)*sumxyl(cl,l) - sumx*sumyl(cl,l)) / (card(ty)*sumx2 - sumx**2);
alpharl(cl,l) = (sumyl(cl,l) - betarl(cl,l)*sumx)/card(ty);
revdevl(cl,l,ty) = revl(cl,l,ty) - alpharl(cl,l) - betarl(cl,l)*ordty(ty);
display cpricec, cpricel, revc, revl, alpharc, betarc, alpharl, betarl, revdevc, revdevl;
$sTitle Consumption and Costs Data
Table demandc(c,*) 'demand data: crop commodities'
elas factor cost
wheat -0.337 0.85 47.95
corn -0.3 0.90 44.55
rye -0.2 0.90 43.18
rice -0.2 0.65 89.77
barley -0.25
chickpea -0.31
drybean -0.31
lentil -0.31
potato -0.2
onion -0.189
gr-pepper -0.189
tomato -0.189
cucumber -0.189
sunflower -0.302 0.33 290.18
olive -0.305 0.20 290.18
groundnut -0.305
soybean -0.305 0.18 290.18
sesame -0.305 0.40 290.18
cotton -0.3
sugarbeet -0.303 0.11 98.50
tobacco -0.3
tea -0.5 0.19 241.42
citrus -0.1971
grape -0.13
apple -0.14
peach -0.14
apricot -0.14
cherry -0.14
wildcherry -0.14
melon -0.189
strawberry -0.14
banana -0.14
quince -0.14
pistachio -0.4
hazelnut -0.4 ;
Table demandl(l,cl) 'demand elasticities: livestock commodities'
meat milk wool hide egg
sheep -.5 -.3 -.2 -.365
goat -.5 -.3 -.2 -.365
angora -.5 -.3 -.2 -.365
cattle -.605 -.5 -.365
buffalo -.5 -.5 -.365
poultry -.605 -.6;
$sTitle demand function calibration
Set cll(cl,l) 'tuples of livestock commodities and livestock in model';
Parameter
qdc(c) 'reference demand: 1979 crops (1000 tons)'
qdl(cl,l) 'reference demand: 1979 lvstk comm (1000 tons)'
pdc(c) 'reference prices: 1979 crops ($ per ton)'
pdl(cl,l) 'reference prices: 1979 lvstk comm ($ per ton)'
betac(c) 'gradient of crop commodity demand curve'
betal(cl,l) 'gradient of livestock commodity demand curve'
alphac(c) 'intercept of crop commodity demand curve ($ per ton)'
alphal(cl,l) 'intercept of livestock commodity demand curve ($ per ton)';
qdc(c) = tradec(c,"production") + tradec(c,"import-q")
- tradec(c,"export-q") - tradec(c,"other-q");
qdl(cl,l) = tradel(l,cl,"production") + tradel(l,cl,"import-q")
- tradel(l,cl,"export-q") - tradel(l,cl,"other-q");
pdc(c) = 1000*pricec(c,"1979") - demandc(c,"factor")*demandc(c,"cost");
pdl(cl,l) = 1000*pricel(cl,l,"1979");
betac(c)$(qdc(c)*demandc(c,"elas")) = pdc(c)/qdc(c)/demandc(c,"elas");
betal(cl,l)$(qdl(cl,l)*demandl(l,cl)) = pdl(cl,l)/qdl(cl,l)/demandl(l,cl);
alphac(c) = pdc(c) - betac(c)*qdc(c);
alphal(cl,l) = pdl(cl,l) - betal(cl,l)*qdl(cl,l);
cll(cl,l) = yes$betal(cl,l);
display qdc, qdl, pdc, pdl, betac, betal, alphac, alphal, cl;
$sTitle Costs Data
Parameter
costq(ps) 'seasonal input costs (tl per hr & $ per hr)' / labor 25
tractor 15 /
costf(mi) 'costs of fertilizers (us$ per kg)' / phosphate .1
nitrogen .15714 /
costs(c) 'cost of seeds (tl per kg)'
/ wheat 6.5, corn 8 , rye 6
rice 24 , barley 4.5, chickpea 32.5
drybean 39 , lentil 18.5, potato 10.5
onion 7.5, gr-pepper .2, cucumber 900
sunflower 20 , groundnut 35 , cotton 10
tomato .4, sugarbeet 64 , tobacco .02
melon 585 , alfalfa 60 , fodder 22.5 /
capcostt(c) 'capital cost for tree crops (tl per ha)'
/ olive 1000, tea 25000, citrus 5000
grape 3820, apple 3920, peach 10810
apricot 5990, cherry 7590, strawberry 46470
banana 72980, quince 6380, pistachio 2000
wildcherry 6730, hazelnut 2000 /
lcostc(s,r,pt) 'rotational labor cost for plowing: annual crops (1000$ per ha)'
lcostt(c,pt) 'seasonal labor cost for plowing: tree creops (1000$ per ha)'
dcostc(s,r,pt) 'rotational draft cost for plowing: annual crops (1000$ per ha)'
dcostt(c,pt) 'seasonal draft cost for plowing: tree creops (1000$ per ha)'
icostc(r,s) 'other annual input costs: annual crops ($ per ha)'
icostt(c) 'other annual input costs: tree crops ($ per ha)'
lcostl(l) 'seasonal labor cost: livestock activities (1000$ per head)'
capitalt(c) 'capital cost: tree crops ($ per ha)';
lcostc(s,r,pt) = sum(tq, costq("labor")*labc(s,r,pt,tq))/exchrate;
lcostt(ct,pt) = sum(tq, costq("labor")*labt(ct,pt,tq))/exchrate;
dcostc(s,r,"mechanized") = sum((tq,ds), costq(ds)*drc(s,r,ds,"mechanized",tq));
dcostt(ct,"mechanized") = sum((tq,ds), costq(ds)*drt(ct,ds,"mechanized",tq));
icostc(r,s) = sum((ca,mc), costf(mc)*inpc(ca,s,r,mc))
+ sum(ca, costs(ca)*inpc(ca,s,r,"seeds"))/exchrate;
icostt(ct) = sum(mc, costf(mc)*inpt(ct,mc));
lcostl(l) = card(tq)*costq("labor")*labl(l)/exchrate;
capitalt(ct) = capcostt(ct)/exchrate;
display lcostt, dcostc, dcostt, icostc, icostt, lcostl, capitalt;
$sTitle Resource Endowments
Scalar
labsup 'labor resource (mill hours per season)' / 3088 /
landlr 'pasture land availability (1000 ha)' / 21745.7 /;
Parameter
landcr(s) 'crop land availability (1000 ha)'
/ dry-poor 16047.4, dry-good 6560
irr-poor 1571.9, irr-good 1221.8 /
liver(l) 'livestock endowment (1000 head)'
/ sheep 46026 , goat 15109
angora 3666 , cattle 15567.1
buffalo 1040.3, mule 2453
poultry 58938.7 /
drsup(ds) 'draft power supply (mill hrs per season)'
/ tractor 165.2 /
landt(c) 'tree crop land resource by tree crop (1000 ha)'
/ olive 545.5, tea 53.6, citrus 56.1, grape 850
apple 233.3, peach 22.4, apricot 27.4, cherry 19.6
wildcherry 11.5, strawberry 5 , banana 1.5, quince 7.4
pistachio 70.9, hazelnut 334.8 /;
$sTitle Model Definition
Variable
xcrop(s,r,pt) 'cropping activities: annual crops (1000 ha)'
xtree(c,pt) 'cropping activities: tree crops (1000 ha)'
treeland(ct) 'total land usage by tree crop (1000 ha)'
cropland(ca) 'total land usage by annual crop (1000 ha)'
xlive(l) 'livestock activities (1000 heads)'
prodc(c) 'production: all crops (1000 tons)'
feed(l,fclass) 'feed supply by source - starch equiv (1000 tons)'
transfer(c) 'products used for feed (1000 tons)'
totgrain 'total products used for feed (1000 tons)'
salesc(c) 'sales: crop commodities (1000 tons)'
salesl(cl,l) 'sales: livestock commodities (1000 tons)'
exportp(c) 'exports: proccessed and concentrates (1000 tons)'
importc(c) 'imports: crop commodities (1000 tons)'
importl(cl,l) 'imports: livestock commodities (1000 tons)'
exportc(c) 'exports: crop commodities (1000 tons)'
exportl(cl,l) 'exports: livestock commodities (1000 tons)'
natconc(c) 'national consumption: crop commodities (1000 tons)'
natconl(cl,l) 'national consumption: livestock commodities (1000 tons)'
revexp 'revenue from exports (mill $)'
impcost 'cost of imports (mill $)'
inpcost 'cost of inputs (mill $)'
dprcost 'cost of draft power (mill $)'
labcost 'cost of labor (mill $)'
capcost 'capital costs for tree crops (mill $)'
pdev(ty) 'positive revenue deviations (mill $)'
ndev(ty) 'negative revenue deviations (mill $)'
sumdev 'sum of absolute deviations (mill $)'
cps 'consumer-producer surplus (mill $)';
Positive Variable
xcrop, xtree, xlive, cropland, salesc, salesl, importc, importl
exportc, exportl, pdev, ndev, exportp, feed, transfer;
Equation
landbc(s) 'land balance: annual crops (1000 ha)'
landbt(ct) 'land balance: tree crops (1000 ha)'
landuse(ca) 'total crop land definition (1000 ha)'
labor(tq) 'labor balance (mill hrs)'
draftb(ds,tq) 'draft power balance (mill hrs)'
dprodc(c) 'definition of crop production (1000 tons)'
mbalc(c) 'material balance: crops (1000 tons)'
mball(cl,l) 'material balance: livestock (1000 tons)'
feedp 'pasture: starch equiv (1000 tons)'
feedg 'grain and concentrates: starch equiv (1000 tons)'
feedd 'dry fodder supply: starch equiv (1000 tons)'
feedgr 'green fodder: starch equiv (1000 tons)'
totfeed(l) 'total feed requirements (1000 tons)'
minfeed(l,fclass) 'minimum feed by component (1000 tons)'
maxfeed(l,fclass) 'maximum feed by component (1000 tons)'
tgrain 'total grains consumed by animals (1000 tons)'
mingrain(cg) 'minimum grain by components (1000 tons)'
maxgrain(cg) 'maximum grain by components (1000 tons)'
ndemc(c) 'national demand balance: crops (1000 tons)'
ndeml(cl,l) 'national demand balance: livestock (1000 tons)'
ddev 'revenue deviation definition (mill $)'
dsum 'sum of absolute revenue deviations definition (mill $)'
aexp 'accounting: export revenues (mill $)'
aimp 'accounting: import costs (mill $)'
ainp 'accountinf: input costs (mill $)'
adpr 'accounting: cost of draft power (mill $)'
alab 'accounting: cost of labor (mill $)'
acap 'accounting: capital costs (mill $)'
obj 'objective function (mill $)';
landbc(s).. sum((r,pt)$sr(s,r), xcrop(s,r,pt)) =l= landcr(s);
landuse(ca).. cropland(ca) =e= sum((r,s,pt), a(ca,r,s)*xcrop(s,r,pt));
landbt(ct).. sum(pt$cpt(ct,pt), xtree(ct,pt)) =e= treeland(ct);
labor(tq).. sum((s,r,pt), labc(s,r,pt,tq)*xcrop(s,r,pt))
+ sum((ct,pt), labt(ct,pt,tq)*xtree(ct,pt))
+ sum(l, labl(l)*xlive(l))
=l= labsup;
draftb(ds,tq).. sum((s,r,pt), drc(s,r,ds,pt,tq)*xcrop(s,r,pt))
+ sum((ct,pt), drt(ct,ds,pt,tq)*xtree(ct,pt))
=l= drsup(ds) + sum(l, dpower(ds,l)*xlive(l))/1000;
dprodc(c).. prodc(c) =e= sum((s,r,pt), yieldc(c,s,r)*xcrop(s,r,pt))
+ sum(pt$cpt(c,pt), yieldt(c)*xtree(c,pt));
ddev(ty).. (sum(ca, revdevc(ca,ty)*cropland(ca))
+ sum((cl,l)$cll(cl,l), revdevl(cl,l,ty)*xlive(l))
+ sum(ct, revdevc(ct,ty)*treeland(ct)))/1000
=e= pdev(ty) - ndev(ty);
dsum.. sumdev =e= sum(ty, pdev(ty) + ndev(ty));
mbalc(c).. prodc(c) =g= salesc(c) + transfer(c)$ctr(c) + iop(c)*exportp(c)$cp(c);
mball(cl,l)$cll(cl,l).. yieldl(cl,l)*xlive(l)/1000 =g= salesl(cl,l);
feedp.. sum(l, feed(l,"pasture")) =l= landlr*evalp;
feedg.. sum(l, feed(l,"grain+con")) =l= sum(cg, eval("product",cg)*transfer(cg))
+ sum(co, ioconc(co)*eval("concentrat",co)*natconc(co));
feedd.. sum(l, feed(l,"d-fodder")) =l= sum((ca,s,r,pt), yieldf(ca,s,r)*eval("fodder",ca)*xcrop(s,r,pt));
feedgr.. sum(l, feed(l,"g-fodder")) =l= sum(cgf, eval("product",cgf)*transfer(cgf));
totfeed(l).. sum(fclass, feed(l,fclass)) =g= ereq(l)*xlive(l);
minfeed(l,fclass).. feed(l,fclass) =g= fmin(l,fclass)*ereq(l)*xlive(l);
maxfeed(l,fclass).. feed(l,fclass) =l= fmax(l,fclass)*ereq(l)*xlive(l);
tgrain.. totgrain =e= sum(cg, transfer(cg));
mingrain(cg).. transfer(cg) =g= gmin(cg)*totgrain;
maxgrain(cg).. transfer(cg) =l= gmax(cg)*totgrain;
ndemc(c).. natconc(c) =e= salesc(c) + importc(c)$pmc(c) - exportc(c)$pec(c);
ndeml(cl,l)$cll(cl,l).. natconl(cl,l) =e= salesl(cl,l)
+ importl(cl,l)$pml(cl,l)
- exportl(cl,l)$pel(cl,l);
ainp.. inpcost =e= (sum((r,s,pt)$sr(s,r), icostc(r,s)*xcrop(s,r,pt))
+ sum((ct,pt)$cpt(ct,pt), icostt(ct)*xtree(ct,pt)))/1000;
adpr.. dprcost =e= sum((r,s,pt)$sr(s,r), dcostc(s,r,pt)*xcrop(s,r,pt))
+ sum((ct,pt), dcostt(ct,pt)*xtree(ct,pt));
alab.. labcost =e= sum((r,s,pt)$sr(s,r), lcostc(s,r,pt)*xcrop(s,r,pt))
+ sum(l, lcostl(l)*xlive(l))
+ sum((ct,pt), lcostt(ct,pt)*xtree(ct,pt));
acap.. capcost =e= (sum((ct,pt)$cpt(ct,pt), capitalt(ct)*xtree(ct,pt)))/1000;
aimp.. impcost =e= (sum(c, pmc(c)*importc(c)$tradec(c,"import-q"))
+ sum((cl,l)$cll(cl,l), pml(cl,l)*importl(cl,l)$tradel(l,cl,"import-q")))/1000;
aexp.. revexp =e= (sum(c, pec(c)*exportc(c)$tradec(c,"export-q"))
+ sum((cl,l)$cll(cl,l), pel(cl,l)*exportl(cl,l)$tradel(l,cl,"export-q"))
+ sum(cp, pep(cp)*exportp(cp)$tradepp1("price",cp)))/1000;
obj.. cps =e= (sum(c, alphac(c)*natconc(c) + .5*betac(c)*sqr(natconc(c)))
+ sum((cl,l), alphal(cl,l)*natconl(cl,l) + .5*betal(cl,l)*sqr(natconl(cl,l))) )/1000
+ revexp - impcost - inpcost - dprcost - labcost - capcost - phi*k*sumdev/card(ty);
exportc.up(c) = expcb(c);
importc.up(c) = impcb(c);
exportl.up(cl,l) = explb(cl,l);
importl.up(cl,l) = implb(cl,l);
exportp.up(cp) = exppb(cp);
xlive.up(l) = liver(l);
treeland.lo(ct) = 0.75*landt(ct);
treeland.up(ct) = 1.25*landt(ct);
Model turkeyn 'nonlinear formulation' / all - feedp - tgrain - mingrain - maxgrain /;
option limRow = 0, limCol = 0;
solve turkeyn maximizing cps using nlp;
$sTitle Demand Curve Linearization
Set g 'grid pints for demand curve linearization' / 1*11 /;
Parameter
pmaxc(c) 'maximum crop commodity price ($ per ton)'
pminc(c) 'minimum crop commodity price ($ per ton)'
qmaxc(c) 'maximum crop commodity demand (1000 tons)'
qminc(c) 'minimum crop commodity demand (1000 tons)'
incrc(c) 'quantity increment interval for crop commodity segments (1000 tons)'
pmaxl(cl,l) 'maximum livestock commodity price ($ per ton)'
pminl(cl,l) 'minimum livestock commodity price ($ per ton)'
qmaxl(cl,l) 'maximum livestock commodity demand (1000 tons)'
qminl(cl,l) 'minimum livestock commodity demand (1000 tons)'
incrl(cl,l) 'quantity increment interval for livestock commodity segments (1000 tons)'
qsc(c,g) 'quantity definition (1000 tons)'
qsl(cl,l,g) 'quantity definition (1000 tons)'
wsc(c,g) 'welfare segments: crops (mill $)'
wsl(cl,l,g) 'welfare segments: livestock (mill $)'
rsc(c,g) 'revenue definition: crops (mill $)'
rsl(cl,l,g) 'revenue definition: livestock (mill $)';
pminc(c) = .2*pdc(c);
qmaxc(c)$betac(c) = (pminc(c) - alphac(c))/betac(c);
pmaxc(c) = min(2*pdc(c),alphac(c));
qminc(c)$betac(c) = (pmaxc(c) - alphac(c))/betac(c);
pminl(cl,l) = .2*pdl(cl,l);
qmaxl(cl,l)$betal(cl,l) = (pminl(cl,l) - alphal(cl,l))/betal(cl,l);
pmaxl(cl,l) = min(2*pdl(cl,l),alphal(cl,l));
qminl(cl,l)$betal(cl,l) = (pmaxl(cl,l) - alphal(cl,l))/betal(cl,l);
incrc(c) = (qmaxc(c) - qminc(c))/(card(g) - 1);
qsc(c,g) = qminc(c) + (ord(g) - 1)*incrc(c);
wsc(c,g) = (alphac(c)*qsc(c,g) + .5*betac(c)*sqr(qsc(c,g)))/1000;
rsc(c,g) = (alphac(c)*qsc(c,g) + betac(c)*sqr(qsc(c,g)))/1000;
incrl(cl,l) = (qmaxl(cl,l) - qminl(cl,l))/(card(g) - 1);
qsl(cl,l,g) = qminl(cl,l) + (ord(g) - 1)*incrl(cl,l);
wsl(cl,l,g) = (alphal(cl,l)*qsl(cl,l,g) + .5*betal(cl,l)*sqr(qsl(cl,l,g)))/1000;
rsl(cl,l,g) = (alphal(cl,l)*qsl(cl,l,g) + betal(cl,l)*sqr(qsl(cl,l,g)))/1000;
display pminc, pmaxc, pminl, pmaxl, qminc, qmaxc, qminl, qmaxl
incrc, incrl, qsc , qsl , wsc , wsl , rsc, rsl;
$sTitle Additional Model Definition for linearized Version
Variable
natqc(c,g) 'domestic consumption segment: crop commodities'
natql(cl,l,g) 'domestic consumption segment: livestock commodities'
adc 'area under the demand curve (aggregate) (mill $)';
Positive Variable natqc, natql;
Equation
demnatc(c) 'national consumption balance: crops (1000 tons)'
demnatl(cl,l) 'national consumption balance: livestock (1000 tons)'
dadcl 'definition of area under the linearized demand curve (mill $)'
combc(c) 'convex combination: crops'
combl(cl,l) 'convex combination: livestock'
objlin 'objective definition';
demnatc(c).. natconc(c) =e= sum(g, natqc(c,g)*qsc(c,g));
demnatl(cl,l)$cll(cl,l).. natconl(cl,l) =e= sum(g, natql(cl,l,g)*qsl(cl,l,g));
dadcl.. adc =e= sum((c,g), wsc(c,g)*natqc(c,g))
+ sum((cl,l,g)$cll(cl,l), wsl(cl,l,g)*natql(cl,l,g));
combc(c).. sum(g, natqc(c,g)) =e= 1;
combl(cl,l)$cll(cl,l).. sum(g, natql(cl,l,g)) =e= 1;
objlin.. cps =e= adc + revexp - impcost - inpcost - dprcost - labcost - capcost - phi*k*sumdev/card(ty);
Model turkeyl 'linearized formulation' / all - obj /;
solve turkeyl maximizing cps using lp;
$sTitle Report Section
Parameter
prc(c,*) 'crop prices ($ per ton)'
prl(cl,*,l) 'livestock commodity prices ($ per ton)'
procr 'production accounting by rotation and technology: annual crops (1000 tons)'
procc 'production accounting by crop type and technology: annual crops (1000 tons)'
prol 'production accounting: livestock (1000 tons)'
prot 'production accounting by techonology: tree crops (1000 tons)'
areac 'area under crops (1000 ha)'
costsum 'production cost summary (mill $)'
tfeeduse(l) 'total feed use by livestock type - starch equivalent (1000 tons)'
feedsch(l,*,fclass) 'feeding scheme of livestock (percentage)';
prc(c,"farm-1979") = 1000*pricec(c,"1979");
prc(c,"ref-price") = pdc(c);
prc(c,"import-pr") = pmc(c);
prc(c,"export-pr") = pec(c);
prc(c,"shadow-pr") = 1000*mbalc.m(c);
prc(c,"demand-pr") = alphac(c) + betac(c)*natconc.l(c);
prc(c,"relative-p")$prc(c,"farm-1979") = prc(c,"demand-pr")/prc(c,"farm-1979");
prl(cl,"farm-1979",l) = 1000*pricel(cl,l,"1979");
prl(cl,"ref-price",l) = pdl(cl,l);
prl(cl,"import-pr",l) = pml(cl,l);
prl(cl,"export-pr",l) = pel(cl,l);
prl(cl,"shadow-pr",l) = 1000*mball.m(cl,l);
prl(cl,"demand-pr",l) = alphal(cl,l) + betal(cl,l)*natconl.l(cl,l);
prl(cl,"relative-p",l)$prl(cl,"farm-1979",l) = prl(cl,"demand-pr",l)/prl(cl,"farm-1979",l);
procr(r,pt) = sum((s,c), yieldc(c,s,r)*xcrop.l(s,r,pt));
procr(r,"total") = sum(pt, procr(r,pt));
procc(c,pt) = sum((s,r), yieldc(c,s,r)*xcrop.l(s,r,pt));
procc(c,"total") = sum(pt, procc(c,pt));
procc(c,"observed") = tradec(c,"production") ;
prot(ct,pt) = yieldt(ct)*xtree.l(ct,pt);
prot(ct,"total") = sum(pt, prot(ct,pt));
prot(ct,"observed") = tradec(ct,"production") ;
prol(cl,l) = yieldl(cl,l)*xlive.l(l)/1000;
prol(cl,"total") = sum(l, prol(cl,l));
areac(c,pt) = sum((s,r), a(c,r,s)*xcrop.l(s,r,pt)) + xtree.l(c,pt);
areac(c,"total") = sum(pt, areac(c,pt));
areac("total",pt) = sum(c, areac(c,pt));
areac("total","total") = sum(pt, areac("total",pt));
display prc, prl, procc, procr, prot, prol, areac, xlive.l;
costsum("labor") = labcost.l;
costsum("tractor") = dprcost.l;
costsum("capital") = capcost.l;
costsum("fert+seed") = inpcost.l;
costsum("export rev") = revexp.l;
display costsum;
tfeeduse(l) = sum(fclass, feed.l(l,fclass));
feedsch(l,"minimum",fclass) = fmin(l,fclass)*100;
feedsch(l,"actual",fclass)$tfeeduse(l) = feed.l(l,fclass)*100/tfeeduse(l);
feedsch(l,"maximum",fclass) = fmax(l,fclass)*100;
display feedsch;
$sTitle Value Accounting
Set
ctp 'commodity type'
/ grains, pulses, vegetables, oil-crops, industrial, fruits, livestock /
ao 'aggregated output'
/ grains. (wheat, corn, rye, rice, barley)
pulses. (chickpea, drybean, lentil)
vegetables.(potato, onion, gr-pepper, tomato, cucumber, melon)
oil-crops. (sunflower, olive, groundnut, soybean, sesame)
industrial.(cotton, sugarbeet, tobacco, tea)
fruits. (citrus, grape, apple, peach, apricot, cherry, wildcherry
strawberry, banana, quince, pistachio, hazelnut) /;
Parameter acctg 'value accounting (million us$)';
acctg(ctp,"production") = (sum(c$ao(ctp,c), prc(c,"ref-price")*procc(c,"total"))
+ sum(ct$ao(ctp,ct), prc(ct,"ref-price")*prot(ct,"total")))/1000;
acctg("livestock","production") = (sum((cl,l), prl(cl,"ref-price",l)*prol(cl,l)))/1000;
acctg(ctp,"consumptn") = (sum(c$ao(ctp,c), prc(c,"ref-price")*natconc.l(c)))/1000;
acctg("livestock","consumptn") = (sum((cl,l), prl(cl,"ref-price",l)*natconl.l(cl,l)))/1000;
acctg(ctp,"export") = (sum(c$ao(ctp,c), prc(c,"export-pr")*exportc.l(c)))/1000;
acctg("livestock","export") = (sum((cl,l), prl(cl,"export-pr",l)*exportl.l(cl,l)))/1000;
acctg(ctp,"import") = (sum(c$ao(ctp,c), prc(c,"import-pr")*importc.l(c)))/1000;
acctg("livestock","import") = (sum((cl,l), prl(cl,"import-pr",l)*importl.l(cl,l)))/1000;
acctg("total","production") = sum(ctp, acctg(ctp,"production"));
acctg("total","consumptn") = sum(ctp, acctg(ctp,"consumptn"));
acctg("total","export") = sum(ctp, acctg(ctp,"export"));
acctg("total","import") = sum(ctp, acctg(ctp,"import"));
display acctg;