$title Indus Agricultural Model (INDUS,SEQ=90) $onText This is an example model of the indus basin model family. These models have been used by the Government of Pakistan to analyze investment design and water policy issues. Duloy, J H, and O'Mara, G T, Issues of Efficiency and Interdependence in Water Resource Investments: Lessons from the Indus Basin of Pakistan. Tech. rep., The World Bank, 1984. Keywords: linear programming, investment planning, water resources management, water distribution, agricultural economics $offText $sTitle Set Definition Set c 'crop types' / basmati 'basmati rice' cotton berseem 'fodder crop' gram irri 'irri rice' sorghum maiz mustard sc-mill 'sugar cane for mill' sc-gur 'sugar cane processed on the farm' wheat / cf(c) 'fodder crops' / berseem, sorghum / cfr(c) 'crops with yields given by optimal fertilizer response' / basmati, cotton, irri, sc-mill, sc-gur, wheat / cw(c) / wheat , cotton / cri(c) 'rice crops' / basmati, irri / cc(c) 'non-consumption crops' / gram, irri, maiz, mustard, sc-gur, wheat / g 'polygons' / poly-17+19, poly-18 / l 'types of livestock' / bullock 'bullock pair', buffalo, cattle 'cattle cow' / q 'livestock commodities' / buff-milk 'buffaloes milk', catl-milk 'cattle cows milk', meat / sea 'seasons' / kharif, rabi / ps 'price schedules' / 76-77, 80-81, 85-86 / psr(ps) 'price schedules used for this run' / 76-77 / i 'canals' / panjnad, abbasia / sg(g) 'polygon with saline groundwater' / poly-18 / fsg(g) 'polygon with fresh groundwater' / poly-17+19 / * cropping technology can be constructed from three codes i.e technology code, sequence codes and * water stress level. these codes are given in set t, s and w. t 'technology' / bullock, semi-mech / s 'sequence' / standard 'standard sequence', el-plant 'early planting' la-plant 'late planting' , qk-harv 'quick harvest' / w 'water stress level' / standard 'no stress' , heavy 'heavy stress' light 'light stress', january 'stress in january' / m 'months' / jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec / y 'year' / 1960*1975 / cnf(c) 'non fodder crops'; cnf(c) = yes; cnf(cf) = no; Parameter fc 'maunds to pounds conversion factor'; fc = 82.286; $sTitle Crop Data Table lando(c,t,m) 'land requirements for crops other than wheat and cotton by month' jan feb mar apr may jun jul aug sep oct nov dec (basmati,irri).(bullock,semi-mech) 1 1 1 1 1 1 berseem.bullock 1 1 1 1 1 .5 1 1 1 berseem.semi-mech 1 1 1 1 1 .25 1 1 1 gram.bullock 1 1 1 .5 1 1 1 gram.semi-mech 1 1 1 .25 1 1 1 sorghum.(bullock,semi-mech) .5 .5 .5 1 1 1 .5 .5 maiz.bullock .5 1 1 1 1 1 .5 maiz.semi-mech 1 1 1 1 1 .5 mustard.(bullock,semi-mech) 1 1 1 1 1 1 (sc-mill,sc-gur).(bullock,semi-mech) 1 1 1 1 1 1 1 1 1 1 1 1 ; Table landcw(cw,t,s,w,m) 'land requirements for cotton and wheat by month' jan feb mar apr may jun jul aug sep oct nov dec cotton.(bullock,semi-mech).standard. (standard) 1 1 1 1 1 1 1 .5 cotton.bullock.el-plant.standard .5 1 1 1 1 1 1 1 .5 cotton.semi-mech.la-plant.standard 1 1 1 1 1 1 .5 wheat.bullock.standard.(standard,light, heavy,january) 1 1 1 1 .5 1 1 wheat.bullock.la-plant.(standard,light, heavy,january) 1 1 1 1 1 1 wheat.bullock.qk-harv.(standard,light, heavy,january) 1 1 1 .5 .5 1 1 wheat.semi-mech.standard.(standard,light, heavy,january) 1 1 1 1 1 1 wheat.semi-mech.la-plant.(standard, light,heavy) 1 1 1 1 .5 1 wheat.semi-mech.la-plant.january 1 1 1 1 1 wheat.semi-mech.qk-harv.(standard,light, heavy,january) 1 1 1 .5 1 1 ; Table bso(c,t,m) 'bullock req. other than cotton and wheat in bullock pair hrs per month' jan feb mar apr may jun jul aug sep oct nov dec basmati.bullock 22.0 17.2 2.0 15.6 basmati.semi-mech 13.6 berseem.bullock 2.0 4.0 4.0 2.0 2.0 10.1 13.01 7.6 2.0 gram.bullock 7.0 10.8 5.6 irri.bullock 18.9 19.2 1.5 18.4 irri.semi-mech 16.4 sorghum.bullock 16.0 1.0 1.0 16.0 1.5 15.0 1.0 0.5 maiz.bullock 10.8 4.5 14.2 5.0 maiz.semi-mech 3.0 mustard.bullock 1.0 1.0 1.0 10.8 10.1 1.0 sc-mill.bullock 16.85 15.1 15.0 12.0 8.0 1.75 10.0 12.5 sc-mill.semi-mech 2.5 1.75 1.75 sc-gur.bullock 17.85 11.6 8.2 1.75 1.75 11.5 13.5 sc-gur.semi-mech 11.0 6.5 2.5 1.75 1.75 11.5 11.0; Table bscw(cw,t,s,w,m) 'bullock requirements for cotton and wheat in bullock pair hours per month' jan feb mar apr may jun jul aug sep oct nov dec cotton.bullock.standard.standard 17.09 15.2 1.0 1.0 1.0 1.0 cotton.bullock.el-plant.standard 16.0 4.0 12.3 1.0 1.0 1.0 1.0 wheat.bullock.standard.standard 8.4 8.4 18.6 20.6 wheat.bullock.standard.light 7.1 7.1 18.6 20.6 wheat.bullock.standard.(heavy,january) 5.5 5.5 18.6 20.6 wheat.bullock.la-plant.standard 7.4 7.4 39.2 wheat.bullock.la-plant.light 6.3 6.3 39.2 wheat.bullock.la-plant.(heavy,january) 4.8 4.8 39.2 wheat.bullock.qk-harv.standard 16.8 18.6 20.6 wheat.bullock.qk-harv.light 14.3 18.6 20.6 wheat.bullock.qk-harv.(heavy,january) 10.9 18.6 20.6 wheat.semi-mech.standard.standard 5.9 5.9 wheat.semi-mech.standard.light 5.0 5.0 wheat.semi-mech.standard.(heavy,january) 3.8 3.8 wheat.semi-mech.la-plant.standard 5.2 5.2 wheat.semi-mech.la-plant.light 4.4 4.4 wheat.semi-mech.la-plant.(heavy,january) 3.4 3.4 wheat.semi-mech.qk-harv.standard 11.8 wheat.semi-mech.qk-harv.light 10. wheat.semi-mech.qk-harv.(heavy,january) 7.7 ; Table lbco(c,t,m) 'labor requirements for crops other than wheat and cotton in man hours per month' jan feb mar apr may jun jul aug sep oct nov dec basmati.bullock 29.1 88.8 65.9 5.6 5.6 47.9 17.6 basmati.semi-mech 8.4 71.6 65.9 5.6 5.6 47.4 16.1 berseem.bullock 32.3 41.5 41.8 29.4 18.2 10.1 15.5 23.5 29.1 berseem.semi-mech 31.1 39.8 40.3 28.7 17.6 7.5 13.2 21.6 28.4 gram.bullock 21.7 10.8 8.9 0.7 2.5 gram.semi-mech 20.0 1.6 4.4 0.7 2.5 irri.bullock 22.9 122.3 35.9 8.4 6.4 43.9 20.4 irri.semi-mech 5.3 105.5 29.9 8.4 6.4 43.4 17.9 sorghum.bullock 18.5 2.0 3.0 18.7 4.0 18.0 3.0 1.0 sorghum.semi-mech 6.0 1.3 4.5 6.5 4.2 5.5 2.0 1.5 maiz.bullock 10.8 4.5 16.7 44.2 2.5 26.8 27.0 maiz.semi-mech 2.4 8.4 44.2 2.5 26.0 26.8 mustard.bullock 21.7 20.5 6.0 10.8 13.6 13.9 mustard.semi-mech 21.7 20.2 6.0 1.6 5.1 13.9 sc-mill.bullock 90.0 85.0 95.0 72.1 30.0 5.05 3.0 3.0 3.0 1.5 85.0 95.0 sc-mill.semi-mech 86.5 81.5 90.0 64.0 34.5 5.05 3.0 3.0 3.0 1.5 80.5 90.5 sc-gur.bullock 159. 80.4 54.4 22.5 4.75 5.05 3.0 3.0 3.0 1.5 150.3 148.5 sc-gur.semi-mech 151. 80.6 48.9 22.5 4.75 5.05 3.0 3.0 3.0 1.5 148.3 142.3; Table lbcw(cw,t,s,w,m) 'labor requirements for wheat and cotton in man hours per month' jan feb mar apr may jun jul aug sep oct nov dec cotton.bullock.standard.standard 35.6 18.4 2.5 7.6 13.2 41.3 57.4 22.1 cotton.bullock.el-plant.standard 26.8 6.7 20.5 2.5 7.6 13.2 41.3 57.4 22.1 cotton.semi-mech.standard.standard 5.0 9.4 2.5 7.6 12.7 40.8 56.9 21.6 cotton.semi-mech.la-plant.standard 14.4 2.5 7.6 12.7 40.8 56.9 21.6 wheat.bullock.standard.standard 4.3 3.9 3.9 64.4 23.8 18.6 23.9 3.9 wheat.bullock.standard.light 4.3 3.9 3.9 54.7 20.2 18.6 23.9 3.9 wheat.bullock.standard.(heavy,january) 4.3 3.9 3.9 41.9 15.5 18.6 23.9 3.9 wheat.bullock.la-plant.standard 4.3 3.9 3.9 51.4 18.9 45.2 3.9 wheat.bullock.la-plant.light 4.3 3.9 3.9 43.4 16.1 45.2 3.9 wheat.bullock.la-plant.(heavy,january) 4.3 3.9 3.9 33.2 12.3 45.2 3.9 wheat.bullock.qk-harv.standard 4.3 3.9 3.9 88.1 18.6 23.9 3.9 wheat.bullock.qk-harv.light 4.3 3.9 3.9 74.9 18.6 23.9 3.9 wheat.bullock.qk-harv.(heavy,january) 4.3 3.9 3.9 57.3 18.6 23.9 3.9 wheat.semi-mech.standard.standard 4.3 3.9 3.9 60.1 19.5 15.6 3.9 wheat.semi-mech.standard.light 4.3 3.9 3.9 51.1 16.6 15.6 3.9 wheat.semi-mech.standard.(heavy,january) 4.3 3.9 3.9 39.1 12.7 15.6 3.9 wheat.semi-mech.la-plant.standard 4.3 3.9 3.9 52.8 17.2 8.0 11.5 wheat.semi-mech.la-plant.light 4.3 3.9 3.9 44.9 14.6 8.0 11.5 wheat.semi-mech.la-plant.(heavy,january) 4.3 3.9 3.9 34.3 11.2 8.0 11.5 wheat.semi-mech.qk-harv.standard 4.3 3.9 3.9 79.6 15.6 3.9 wheat.semi-mech.qk-harv.light 4.3 3.9 3.9 67.7 15.6 3.9 wheat.semi-mech.qk-harv.(heavy,january) 4.3 3.9 3.9 44.0 15.6 3.9; Table tr(c,t,s,w,m) 'tractor requirements in tractor hours per acre per month' jan feb mar apr may jun jul aug sep oct nov dec basmati.semi-mech.standard.standard 2.7 1.7 1.5 0.5 cotton.semi-mech.standard.standard 2.5 2.2 0.5 0.5 0.5 0.5 cotton.semi-mech.la-plant.standard 4.7 0.5 0.5 0.5 0.5 berseem.semi-mech.standard.standard 1.5 1.5 1.5 1.5 1.5 1.3 2.0 2.3 1.5 gram.semi-mech.standard.standard 3.7 1.3 0.8 irri.semi-mech.standard.standard 2.6 2.2 1.0 0.5 sorghum.semi-mech.standard.standard 2.5 0.5 1.8 1.0 2.2 1.5 1.0 0.5 maiz.semi-mech.standard.standard 1.8 1.6 2.5 mustard.semi-mech.standard.standard 1.0 1.0 1.0 1.3 1.3 1.0 sc-mill.semi-mech.standard.standard 6.4 6.6 5.2 4.5 4.0 5.8 5.8 sc-gur.semi-mech.standard.standard 2.4 0.6 0.7 0.3 wheat.semi-mech.standard.standard 0.7 0.8 7.6 wheat.semi-mech.standard.light 0.6 0.7 7.6 wheat.semi-mech.standard.(heavy,january) 0.5 0.5 7.6 wheat.semi-mech.la-plant.standard 0.6 0.7 4.0 3.6 wheat.semi-mech.la-plant.light 0.5 0.6 4.0 3.6 wheat.semi-mech.la-plant.(heavy,january) 0.4 0.4 4.0 3.6 wheat.semi-mech.qk-harv.standard 1.5 7.6 wheat.semi-mech.qk-harv.light 1.3 7.6 wheat.semi-mech.qk-harv.(heavy,january) 1.0 7.6 ; Table wcro(c,t,m) 'water requirements in acre feet per acre for crops othe than wheat and cotton' jan feb mar apr may jun jul aug sep oct nov dec (basmati,irri).(bullock,semi-mech) .374 .842 .935 .935 .468 berseem.(bullock,semi-mech) .2 0.3 .45 .55 .25 .20 .25 .15 .15 gram.(bullock,semi-mech) .1 .05 .25 .15 .10 .10 sorghum.(bullock,semi-mech) .10 .15 .25 .30 .40 .30 .20 maiz.bullock .10 .10 .30 .30 .40 .20 maiz.semi-mech .15 .30 .30 .40 .25 mustard.(bullock,semi-mech) .2 .15 .30 .20 .20 (sc-mill,sc-gur).(bullock,semi-mech) .094 .14 .234 .374 .374 .327 .374 .468 .468 .281 .374 .187; Table wcrcw(cw,t,s,w,m) 'water requirements in acre feet per acre for wheat and cotton' jan feb mar apr may jun jul aug sep oct nov dec cotton.(bullock,semi-mech).standard.(standard) .187 .281 .327 .374 .468 .327 .094 cotton.bullock.el-plant.standard .187 .094 .374 .327 .374 .468 .327 .094 cotton.semi-mech.la-plant.standard .374 .327 .374 .468 .327 .094 wheat.bullock.(standard,qk-harv).standard .234 .374 .468 .187 .187 .187 wheat.bullock.(standard,qk-harv).light .234 .374 .187 .187 .187 wheat.bullock.(standard,qk-harv).heavy .281 .187 .187 .187 wheat.bullock.(standard,qk-harv).january .281 .187 .187 .187 wheat.bullock.la-plant.standard .234 .374 .468 .281 .187 wheat.bullock.la-plant.light .234 .374 .281 .187 wheat.bullock.la-plant.heavy .281 .281 .187 wheat.bullock.la-plant.january .281 .281 .187 wheat.semi-mech.(standard,qk-harv).standard .234 .374 .468 .281 .187 wheat.semi-mech.(standard,qk-harv).light .234 .374 .281 .187 wheat.semi-mech.(standard,qk-harv).heavy .281 .281 .187 wheat.semi-mech.(standard,qk-harv).january .281 .281 .187 wheat.semi-mech.la-plant.standard .234 .374 .468 .234 .234 wheat.semi-mech.la-plant.light .234 .374 .234 .234 wheat.semi-mech.la-plant.heavy .281 .234 .234 wheat.semi-mech.la-plant.january .281 .234 .234; Table crio(c,t,s,w,*) 'crop inputs and outputs' * yield and straw-yld is in maunds/acre * cash-input working capital required net of fertilizer. * nit-input and pho-input are nutrients required in kg per acre. * adjustments for fertilizer response made below yield straw-yld cash-input nit-input pho-input basmati.(bullock,semi-mech).standard.standard 9.00 21.00 28.83 18.80 6.90 cotton.(bullock,semi-mech).standard.standard 11.00 35.34 17.40 5.20 cotton.bullock.el-plant.standard 11.00 35.34 17.40 5.20 cotton.semi-mech.la-plant.standard 11.00 35.34 17.40 5.20 berseem.(bullock,semi-mech).standard.standard 471.00 23.20 11.50 2.07 gram.(bullock,semi-mech).standard.standard 5.50 8.30 25.36 1.60 irri.bullock.standard.standard 16.70 27.00 28.70 25.40 7.90 sorghum.(bullock,semi-mech).standard.standard 192.10 153.08 8.72 .95 maiz.(bullock,semi-mech).standard.standard 10.00 30.00 35.05 21.70 5.40 mustard.(bullock,semi-mech).standard.standard 6.00 3.00 16.80 sc-mill.(bullock,semi-mech).standard.standard 380.00 50.50 270.93 24.80 7.20 sc-gur.(bullock,semi-mech).standard.standard 30.40 50.50 270.93 24.80 7.20 wheat.(bullock,semi-mech).(standard,qk-harv).standard 20.20 27.30 54.25 19.20 7.40 wheat.(bullock,semi-mech).(standard,qk-harv).light 17.20 23.20 54.31 16.30 6.30 wheat.(bullock,semi-mech).(standard,qk-harv).(heavy,january) 13.10 17.70 54.16 12.50 4.80 wheat.(bullock,semi-mech).la-plant.standard 17.80 24.00 54.18 16.90 6.50 wheat.(bullock,semi-mech).la-plant.light 15.10 20.40 54.08 14.40 5.50 wheat.(bullock,semi-mech).la-plant.(heavy,january) 11.50 15.60 54.18 11.00 4.20; Table weed(c,t,s,w,sea) 'weed yield from crops maunds per acre' kharif rabi (basmati,irri,cotton).(bullock,semi-mech).standard.standard 60.0 cotton.bullock.el-plant.standard 60.0 cotton.semi-mech.la-plant.standard 60.0 (sc-mill,sc-gur).(bullock,semi-mech).standard.standard 60.0 30.0 wheat.(bullock,semi-mech).(standard,qk-harv).standard 30.0 wheat.(bullock,semi-mech).(standard,qk-harv).light 25.5 wheat.(bullock,semi-mech).(standard,qk-harv).(heavy,january) 19.5 wheat.(bullock,semi-mech).la-plant.standard 26.4 wheat.(bullock,semi-mech).la-plant.light 22.4 wheat.(bullock,semi-mech).la-plant.(heavy,january) 17.1; Table sconv(*,sea,c) 'tdn and dp conversion factor from crop straw' basmati cotton berseem gram irri sorghum maiz mustard sc-mill sc-gur wheat tdn.kharif .6 .14 .5 .5 tdn.rabi .5 .14 .5 .5 .17 .17 dp.kharif .1 .017 .005 .005 dp.rabi .005 .025 .005 .1 .005 .005 ; Parameter land(c,t,s,w,m) 'land requirements by crop technology and month in acres' bpr(c,t,s,w,m) 'bullock power requirements by crop technology and month in bullock pair hours' labor(c,t,s,w,m) 'labor requirements by crop technology and month in man-hours' watreq(c,t,s,w,m) 'water requiremetns by crop technology and monthin acre feet'; land(c,t,"standard","standard",m) = lando(c,t,m); bpr(c,t,"standard","standard",m) = bso(c,t,m); labor(c,t,"standard","standard",m) = lbco(c,t,m); watreq(c,t,"standard","standard",m) = wcro(c,t,m); land(cw,t,s,w,m) = landcw(cw,t,s,w,m); bpr(cw,t,s,w,m) = bscw(cw,t,s,w,m); labor(cw,t,s,w,m) = lbcw(cw,t,s,w,m); watreq(cw,t,s,w,m) = wcrcw(cw,t,s,w,m); Table dev60(c,y) 'revenue deviation (1960 rupees)' 1960 1961 1962 1963 1964 1965 1966 1967 (basmati,irri) 23.8 20.84 -22.76 -12.2 -15.6 -34.17 -13.56 -11.42 cotton -15.97 -17.11 57.01 -6.33 -1.24 -41.37 (berseem,sorghum) 22.38 -12.03 -28.12 -34.9 -21.6 11.7 17.49 17.99 gram 11.03 2.04 2.25 8.35 -13.42 10.86 -19.79 -8.49 maiz 25.19 -17.17 -19.34 24.41 -16.36 -3.21 1.21 -16.17 mustard -9.82 -13.58 -5.53 1.51 -12.77 16.01 23.22 16.92 (sc-mill,sc-gur) 52.24 18.16 -104.2 -11.1 4.4 -195.3 wheat 12.87 7.58 -11.77 -9.44 .57 -1.58 -33.53 28.4 + 1968 1969 1970 1971 1972 1973 1974 1975 (basmati,irri) 95.66 -16.06 -5.81 -6.94 2.74 1.83 -8.03 1.69 cotton -63.62 -42.76 -28.96 36.79 30.73 40.42 78.63 -99.33 (berseem,sorghum) 16.45 40.79 10.16 -2.43 20.17 -1.45 -23.06 -33.62 gram -15.5 8.02 17.6 -14.77 -2.88 9.5 -17.55 22.73 maiz 26.15 18.63 -.38 -28.43 12.44 -6.79 -51.35 51.18 mustard -21.64 14.64 34.12 22.87 -37.17 -17.17 -25.34 13.72 (sc-mill,sc-gur) -25.52 151.48 184.69 -9.53 -137.6 189.2 -21.49 -132.4 wheat 5.3 -1.74 18.49 -17.75 14.1 -9.48 -20.31 18.3 ; Scalar kl 'normalizing contant for risk'; kl = sqrt(3.1445926*card(y)/(card(y) - 1)/2); display kl; Parameter r(g) 'risk aversion coefficient'; r(g) = 5.5; $sTitle Price Data, Fertilizer Response and Livestock Data Table pri(*,ps,c) 'crop price yield change working capital increase' * crop prices are rs/lb, working capital is in rupees basmati cotton berseem gram irri sorghum maiz mustard sc-mill sc-gur wheat price.76-77 1.086 1.544 .450 .485 .450 .720 .070 .650 .5 price.(80-81,85-86) 1.5 1.86 .563 .760 .563 .9 .1 1.0 .63 yldchng.(80-81,85-86) 1.5 wcapchng.(80-81,85-86) 10.34 210.35 13.6 12. 10.34 13.6 5.4 8.0 19.93 19.93 6.25; Set p1 / nitrogen, phosphorus, prdef, protein, drinvt, twinvt, trinvt, twopc, tropc, dropc /; Table pri1(p1,ps) 'fertilizer tubewell tractor and protein prices' * fertilizer prices are rupees per kg * prdef price index deflator 76-77 80-81 85-86 nitrogen 2.96 4.12 6.47 phosphorus 1.80 2.86 4.26 prdef 3.1285 4.0671 4.0671 protein 2.25 3.0 na drinvt 88904 124465 124465 twinvt 5300 7420 7420 trinvt 15890 22246 22246 twopc 75 154 216 tropc 20 33.75 41 dropc 15.872 32.59 32.59 ; Table liveprc(q,ps) 'prices of livestock commodities' 76-77 80-81 85-86 buff-milk 1.250 1.562 1.562 catl-milk 0.950 1.188 1.188 meat 2.5 3.125 3.125; Table wageps(m,ps) 'wage rates rs per man hour' 76-77 80-81 85-86 (jan,feb,mar,jun,jul,aug,sep,dec) 0.75 0.975 0.975 (apr,may,oct,nov) 1.5 1.95 1.95 ; * price setup for this run Parameter pbc(c) 'buying price, crop comodities rupees per maund' psc(c) 'selling price for crop comodities rupees per maund' pbq(q) 'buying price, livestock comodities' psq(q) 'livestock commodity selling prices' * (rupees per litre for buff-milk and catl-milk, rupees per pound meat) dev(c,y) 'revenue deviation' wcapchng(c) 'capital change by crop' yldchng(c) 'yield change by crop' misc(p1) 'miscellenious prices' wage(m) 'wage rates rs per man hour by month' pp 'purchase price of prorein concentrate re per lbs'; Scalar cdrwell 'annualized cost of public drainage well rupees per well' trcap 'tractor capacity in tractor hours per month' / 250 / twcap 'private tubewell capacity acre feet per month' / 44.6 / drcap 'drainage well capacity in acre feet per year' / 2138.4 /; loop(psr, psc(c) = pri("price",psr,c); pp = pri1("protein",psr); psq(q) = liveprc(q,psr); yldchng(c) = pri("yldchng",psr,c); wcapchng(c) = pri("wcapchng",psr,c); misc(p1) = pri1(p1,psr); dev(c,y) = dev60(c,y)*pri1("prdef",psr); wage(m) = wageps(m,psr); ); pbc(c) = psc(c)*1.5; pbq(q) = psq(q)*2.0; cdrwell = drcap*misc("dropc") + misc("drinvt"); * fertilizer response calculations * underlying equation for fertilizer response calculations is y = y0*(f/f0)**gamma where f0 anf y0 * are the fertilizer application and yield at the base price f and y are fertilizer application for a * given price and corresponding yield. Parameter gammafrt(c) 'fertilizer response elasticities' / basmati .153, cotton .0795, irri .246 sc-mill .179, sc-gur .179 , wheat .101 /; Set fresp / with, without / sfresp(fresp) / with /; * to incorporate fertilizer response in the model change member of set sfresp to "with" and to delete * the fertilizer response change sfrest to "without" . Parameter nit(c,t,s,w) 'nitrogen input kg per acre' yc(c,t,s,w) 'crop yield maunds per acre' straw(c,t,s,w) 'straw yield maunds per acre' frtfac(cfr,t,s,w,fresp) 'fertilizer response factor' rep3(t,s,w,c,*) 'report on yield fertilizer response factor working capital' cwcaptl(c,t,s,w) 'total working capital by scenario crop and tecnology in rs per acre' tech(c,t,s,w) 'land use indicator'; frtfac(cfr,t,s,w,"with")$(crio(cfr,t,s,w,"nit-input") <> 0) = min(3, (gammafrt(cfr)*psc(cfr)*crio(cfr,t,s,w,"yield")*fc/misc("nitrogen")/crio(cfr,t,s,w,"nit-input"))**(1/(1 - gammafrt(cfr)))); frtfac(cfr,t,s,w,"without") = 1.0; nit(c,t,s,w) = crio(c,t,s,w,"nit-input"); yc(c,t,s,w) = crio(c,t,s,w,"yield"); straw(c,t,s,w) = crio(c,t,s,w,"straw-yld"); loop(sfresp, nit(cfr,t,s,w)$(frtfac(cfr,t,s,w,sfresp) <> 0) = crio(cfr,t,s,w,"nit-input")*frtfac(cfr,t,s,w,sfresp); yc(cfr,t,s,w)$ (frtfac(cfr,t,s,w,sfresp) <> 0) = (crio(cfr,t,s,w,"yield") + yldchng(cfr))*frtfac(cfr,t,s,w,sfresp)**gammafrt(cfr); straw(cfr,t,s,w)$(frtfac(cfr,t,s,w,sfresp) <> 0) = crio(cfr,t,s,w,"straw-yld")*frtfac(cfr,t,s,w,sfresp)**gammafrt(cfr); rep3(t,s,w,cfr,"frtfac") = frtfac(cfr,t,s,w,sfresp); ); cwcaptl(c,t,s,w)$(crio(c,t,s,w,"cash-input") <> 0) = crio(c,t,s,w,"cash-input") + misc("nitrogen") * nit(c,t,s,w) + misc("phosphorus") * crio(c,t,s,w,"pho-input") + wcapchng(c); rep3(t,s,w,c,"yield") = yc(c,t,s,w); rep3(t,s,w,c,"nitrogen") = nit(c,t,s,w); rep3(t,s,w,c,"phosphorus") = crio(c,t,s,w,"pho-input"); rep3(t,s,w,c,"straw") = straw(c,t,s,w); rep3(t,s,w,c,"cwcaptl") = cwcaptl(c,t,s,w); * nutrients availablity for livestock from fodder crops, crop straw and weeds Parameter tdy(c,t,s,w,sea) 'crop tdn yield' dpy(c,t,s,w,sea) 'crop dp yield' wtd(c,t,s,w,sea) 'tdn yield from weeds' wdp(c,t,s,w,sea) 'dp yield from weeds' gfd(g,sea) 'green fodder available from grazing by season' gdp(g,sea) 'protein available from grazing by season'; tdy(cnf,t,s,w,sea) = sconv("tdn",sea,cnf)*straw(cnf,t,s,w)*fc; dpy(cnf,t,s,w,sea) = sconv("dp",sea,cnf)*straw(cnf,t,s,w)*fc; tdy(cf,t,s,w,sea) = sconv("tdn",sea,cf)*yc(cf,t,s,w)*fc; dpy(cf,t,s,w,sea) = sconv("dp",sea,cf)*yc(cf,t,s,w)*fc; wtd(c,t,s,w,sea) = sconv("tdn","rabi","berseem")*weed(c,t,s,w,sea)*fc; wdp(c,t,s,w,sea) = sconv("dp","kharif","sorghum")*weed(c,t,s,w,sea)*fc; gfd(g,sea) = 0.0; gdp(g,sea) = 0.0; tech(c,t,s,w) = sum(m, land(c,t,s,w,m)); Table livio(l,*) 'livestock comodity yields and output' * milk production is in liters/year per animal. * meat production is in lbs/year per animal, in case of bullock per bullock pair. * tn seasonal tdn requirements (lbs per season) * pr seasonal dp requirements (lbs per season) buff-milk catl-milk meat tn pr buffalo 750 35.2 2300 210 cattle 550 26.0 1500 135 bullock 55.4 2800 256; Scalar repco 'reproductive coefficient' / 1.25 /; Parameter lbq(l,m) 'livestock labor requirement (man hours per month)' bp(m) 'bullock pair draft power capacity (pair-hours per month)' lwcaptl(l) 'livestock miscellaneous cash requirement (rupees)' yq(l,q) 'livestock comodity yields' gr 'required proportion of green fodder in total fodder'; lbq("bullock",m) = 30.1; lbq("buffalo",m) = 33.6; lbq("cattle",m) = 25.1; bp(m) = 96; bp("may") = 77; bp("jun") = 77; lwcaptl(l) = 0.0; yq(l,q) = livio(l,q); gr = 0.3 ; * report on crop input output coefficients Set r1 / land, labor, bullock, tractor, watreq /; Parameter rep1(t,s,w,c,r1,*) 'report on crop input output' rep2(t,s,w,c,*) 'report on crop weed fodder yield'; rep1(t,s,w,c,"land",m) = land(c,t,s,w,m); rep1(t,s,w,c,"bullock",m) = bpr(c,t,s,w,m); rep1(t,s,w,c,"tractor",m) = tr(c,t,s,w,m); rep1(t,s,w,c,"labor",m) = labor(c,t,s,w,m); rep1(t,s,w,c,"watreq",m) = watreq(c,t,s,w,m); rep2(t,s,w,c,sea) = weed(c,t,s,w,sea); rep1(t,s,w,c,"land","total") = sum(m, land(c,t,s,w,m)); rep1(t,s,w,c,"bullock","total") = sum(m, bpr(c,t,s,w,m)); rep1(t,s,w,c,"tractor","total") = sum(m, tr(c,t,s,w,m)); rep1(t,s,w,c,"labor","total") = sum(m, labor(c,t,s,w,m)); rep1(t,s,w,c,"watreq","total") = sum(m, watreq(c,t,s,w,m)); rep2(t,s,w,c,"total") = sum(sea, weed(c,t,s,w,sea)); display rep1, rep2, rep3; $sTitle Population, Labor and Consumption Parameters * population and labor availability Set labs 'labor sex' / men, women / int 'labor intensity' / fulltime, parttime, occasional / hht 'house hold type' / fh 'farm household', lh 'livestock labor household' / dis 'districts' / rahim-kh /; Parameter fpop(dis) 'farm population by districts'; fpop("rahim-kh") = 846897; * source: agricultural census of population 1972. Scalar lstd 'standard labor limit (hours per month)' / 200 /; Parameter plab(hht) 'proportional labor participation by household type' / fh 1.0, lh .49 / flab(g,hht) 'available farm labor by household type thousand man-hrs per month' flabps(ps,g,hht) 'available farm labor by hh type thousand man-hrs per month by scenario' popadj(ps) 'farm population increase' pop(g) 'farm population in thousands' popps(g,ps) 'farm population in thousands by scenarios'; * popadj is estimated using increase in total farm population reported in world bank report no. 2018-pak * over level of 1972 agricultural census . popadj("76-77") = 1.1048; popadj("80-81") = 1.1965; popadj("85-86") = na; Table alab(dis,hht,labs,int) 'available household labor by district' fulltime parttime occasional rahim-kh.fh.men 217336 11446 8202 rahim-kh.fh.women 65647 84106 10039 rahim-kh.lh.men 20528 7207 782 rahim-kh.lh.women 5030 11299 783; Table labint(labs,int) 'mapping from labor class to standard intensity' fulltime parttime occasional men .9 .5 .1 women .6 .3 .06; Table pmap(dis,g) 'mapping from distrits to polygon' poly-17+19 poly-18 rahim-kh .7 .3; flabps(ps,g,hht) = sum((labs, int,dis), alab(dis,hht,labs,int)*labint(labs,int) * pmap(dis,g)*plab(hht)*lstd*popadj(ps))/1000; popps(g,ps) = sum(dis, fpop(dis)*pmap(dis,g)*popadj(ps))/1000; loop(psr, pop(g) = popps(g,psr); flab(g,hht) = flabps(psr,g,hht); ); display pop, flab; * consumption parameters Table conspc(cc,*) 'crop commodity consumption parameters' * gamc minimum per capita commodity consumption crops * eec expenditure elasticity crop * bwc budget weight crop gamc eec bwc gram 12.60 .5 .0246 irri 62.46 .3 .0264 maiz 20.00 .3 .0097 mustard 1.73 .55 .0301 sc-gur 19.50 1.65 .0270 wheat 270.57 .4 .1995; Table conspl(q,*) 'livestock products consumption parameters' * gamq minimum per capita commodity consumption livestock * eeq expenditure elasticity livestock * bwq budget weight livestock gamq eeq bwq buff-milk 16.83 2.1 .0761 catl-milk 10.76 2.1 .0507 meat 5.92 1.1 .0174; Scalar fs 'share of food in minimum per capita budget' / .601/ mu 'marginal propensity to consume from income' / .931/ sub 'minimum per capita consumption budget in rupees'; Parameter mpcc(cc) 'marginal propensity to consume out of income, crop' mpcq(q) 'marginal propensity to consume out of income, livestock' alphc(g,c) 'autonomous consumption of crop comodity in thousand lbs' alphq(g,q) 'autonomous consumption of livestock comodities in thousand lbs or liters' betac(g,c) 'induced consumption, crop' betaq(g,q) 'induced consumption, livestock'; mpcc(cc) = conspc(cc,"eec")*conspc(cc,"bwc"); mpcq(q) = conspl(q,"eeq")*conspl(q,"bwq"); sub = (sum(cc, psc(cc)*conspc(cc,"gamc")) + sum(q, psq(q)*conspl(q,"gamq")))/fs; betac(g,cc) = mu*mpcc(cc)/psc(cc); betaq(g,q ) = mu*mpcq(q)/psq(q); alphc(g,cc) = (conspc(cc,"gamc") - betac(g,cc)*sub)*pop(g); alphq(g,q ) = (conspl(q,"gamq") - betaq(g,q )*sub)*pop(g); display sub, mpcc, mpcq, betac, betaq,alphc, alphq; $sTitle Water Data Table wal(*,i,g,m) 'water diversions in maf' jan feb mar apr may jun post.panjnad.poly-17+19 .1187200 .1352400 .1411200 .2305800 .3306800 .4071200 post.panjnad.poly-18 .0508800 .0579600 .0604800 .0988200 .1417200 .1744800 post.abbasia.poly-17+19 .0145800 .0235800 .0288000 .0399600 .0489600 .0547200 expj.panjnad.poly-17+19 .0567875 .0652750 .0708750 .1423625 .2977625 .3733625 expj.panjnad.poly-18 .0597998 .1041390 .1342239 .1075394 .1276125 .2249383 expj.abbasia.poly-17+19 .0110250 .0140625 .0131625 .0239625 .0412875 .0516375 + jul aug sep oct nov dec post.panjnad.poly-17+19 .3844400 .3991400 .3924200 .3869600 .1877400 .1173200 post.panjnad.poly-18 .1647600 .1710600 .1681800 .1658400 .0804600 .0502800 post.abbasia.poly-17+19 .0477000 .0489600 .0477000 .0478800 .0343800 .0268200 expj.panjnad.poly-17+19 .4321625 .4032875 .3858040 .2609250 .1193500 .0601125 expj.panjnad.poly-18 .2229836 .2677125 .2851960 .1765128 .1056247 .0616534 expj.abbasia.poly-17+19 .0564750 .0522000 .0486000 .0326250 .0219375 .0129375; Parameter wdiv(i,g,m) 'water diversions used for this run'; wdiv(i,g,m) = wal("expj",i,g,m); Table height(g,*) 'land surface and water table height from sea level in feet' hs hwr poly-17+19 290 280.58 poly-18 285 279 ; Table wpara1(*,*,m) 'evaporation rain and river seepage' * pevap unit pan evaporation (in acre feet per acre) * rain mean monthly rainfall on total land area (in af/month) * rivseep seepage to aquifer from river reaches (af) jan feb mar apr may jun jul aug sep oct nov dec pevap.poly-17+19 .207 .317 .544 .780 .977 1.111 1.026 .913 .799 .556 .336 .439 pevap.poly-18 .200 .314 .529 .771 .968 1.112 1.026 .913 .800 .543 .329 .457 rain.poly-17+19 21.51 24.76 29.32 18.24 13.69 18.24 171.3 143.3 14.99 .978 10.43 11.73 rain.poly-18 9.96 11.31 13.12 8.15 6.34 8.15 75.12 63.80 6.79 .453 4.98 5.43 rivseep.(poly-17+19) 1000 1000 1000 1000 2600 4000 5000 4100 2000 ; Table areac(g,*) 'area characteristics' * twg installed tubewell capacity polygon (acre feet) * trg1 installed tractor capacity polygon (tractor hours) * at total area polygon (acres) * alg irrigated land in polgon (acres) * sra area within transportation radius of sugar mills * scoeff storage coefficient twg trg1 at alg sra scoeff poly-17+19 227000 274000 1173000 862665.2 511000 .25 poly-18 117000 543000 369713.6 392000 .25; * following calculations are to compute water loss coefficints, we, ws and wl Set u 'water transit mode from barrage to root zone' / lc 'link canal' , mb 'main and branch canals', dm 'distributories and minors' wc 'water courses', fd 'fields' , pg 'private tubewell' / ud 'components of canal system' / lc 'link canal' , mc 'main canal' bc 'branch canal', di 'distributory', mi 'minors' / dsp(g,i) 'downstream polygon canal map' / poly-18.panjnad / usp(g) 'upstream polygon' / poly-17+19 / n / 1*6 /; Table wpara(g,*) 'canal data' * wamb wetted area main and branch canals units acres * wadm wetted area distributory and minor canals units acres * factor adjustment factor distributory and minor canals * factor1 adjustment factor main and branch canals * mb main and branch canal capacity (kaf/m for all months) * dm capacity of distributories and minors (kaf/m for all months) wamb wadm factor factor1 mb dm poly-17+19 2624.0 2464 3.4366 2.4335 800 542 poly-18 46.0 452 3.9044 9.0671 201 201; Table wpara3(*,*,m) 'parameters for water course and field efficiencies' * hc height of canal surface above sea level (in feet) * cfw monthly adjustment factor for operational losses * gamma seasonal evaporation loss factor * zeta seasonal seepage loss factor jan feb mar apr may jun jul aug sep oct nov dec zeta.wtrcrs -.075 -.075 -.075 -.075 -.0025 .070 .070 .07 -.0025 -.075 -.075 -.075 zeta.fld -.048 -.048 -.048 -.048 -.0063 .035 .035 .035 -.0063 -.048 -.048 -.048 gamma.wtrcrs .025 .025 .025 .025 .0525 .08 .08 .08 .0525 .025 .025 .025 gamma.fld .0475 .0475 .0475 .0475 .0563 .065 .065 .065 .0563 .0475 .0475 .0475 hc.poly-17+19 290.1 290.2 290.2 290.6 291.5 292.0 292.3 292.2 292.0 291.5 290.6 290.1 hc.poly-18 285.1 285.1 285.2 285.6 286.4 286.9 287.2 287.0 286.9 286.4 285.5 285.1 cfw.poly-17+19 4 4 4 4 5 6 6 6 5 4 4 4 cfw.poly-18 4 4 4 4 5 6 6 6 5 4 4 4; Table lw(*,g,ud) 'length(in k ft) and width of canals (in ft)' lc mc bc di mi length.poly-17+19 300 775 2135 1450 length.poly-18 50 300 300 width.poly-17+19 150 80 25 7 width.poly-18 45 25 7; Parameter pemax(g) 'maximum of pan evaporation over the year in feet' alpha 'scale factor watercourse and field evaporation' rpe(g,m) 'ratio pan evap. to maximum pan evaporation in the year' wa(g) 'wetted area along canal units acres' phi1mb(g) 'seepage proportionality constant for main and branch canals' phi1dm(g) 'seepage proportionality canstant for distributories and minors' we(u,g,m) 'evaporation loss coefficient in transit mode' ws(u,g,m) 'water seepage coefficient within polygon' dephc(g,m) 'depth from water level in the canals to watertable' wl(u,g,m) 'water loss coefficient within polygon' wsu 'seepage coefficient upstream polygon' weu 'evaporation coefficient upstream polygon' wlu 'water loss coefficient upstream polygon' beta 'loss level constant' per 'permeability coefficient' nrc 'normalizing constant to convert cusecs to af per month'; alpha = 0.10; beta = 0.25; per = 2*10**(-5); nrc = 59.504; * evaporation loss coefficients pemax(g) = smax(m,wpara1("pevap",g,m)); rpe(g,m) = wpara1("pevap",g,m)/pemax(g); wa(g) = wpara(g,"wamb") + wpara(g,"wadm"); we("mb",g,m) = wpara(g,"wamb")*wpara1("pevap",g,m)*(wpara(g,"factor1")*10**(-6)); we("dm",g,m) = wpara(g,"wadm")*wpara1("pevap",g,m)*(wpara(g,"factor")*10**(-6)); we("wc",g,m) = alpha*rpe(g,m) + wpara3("gamma","wtrcrs",m); we("fd",g,m) = alpha*rpe(g,m) + wpara3("gamma","fld",m); we("pg",g,m) = 0.5*we("wc",g,m); * seepage coefficients Table funcction (*,n) 'function of canal width' 1 2 3 4 5 6 input 0 10 30 100 300 500 output 0 .36 .67 .90 1.30 1.90; Parameter step 'grid point for function' ftn 'function value' ftna 'interpolated function output' ftni 'function input' ftno 'function output'; ftni(n) = funcction("input",n); ftno(n) = funcction("output",n); step(g,ud,n) = (ftni(n) <= lw("width",g,ud)) and (ftni(n+1) > lw("width",g,ud)); ftna(g,ud,n) = (ftno(n) + (lw("width",g,ud) -ftni(n))*(ftno(n+1) - ftno(n))/(ftni(n+1) - ftni(n)))$step(g,ud,n); ftn(g,ud) = sum(n, ftna(g,ud,n)); dephc(g,m) = wpara3("hc",g,m)-height(g,"hwr"); phi1mb(g) = per*nrc*(lw("length",g,"mc")*ftn(g,"mc") + lw("length",g,"bc")*ftn(g,"bc")); phi1dm(g) = per*nrc*(lw("length",g,"di")*ftn(g,"di") + lw("length",g,"mi")*ftn(g,"mi")); ws("mb",g,m) = wpara3("cfw",g,m)*phi1mb(g)*dephc(g,m)/wpara(g,"mb"); ws("dm",g,m) = wpara3("cfw",g,m)*phi1dm(g)*dephc(g,m)/wpara(g,"dm"); ws("wc",g,m) = beta - alpha*rpe(g,m) + wpara3("zeta","wtrcrs",m); ws("pg",g,m) = 0.5*ws("wc",g,m); ws("fd",g,m) = beta - alpha*rpe(g,m) + wpara3("zeta","fld",m); wl(u,g,m) = ws(u,g,m) + we(u,g,m); wsu("mb",i,g,m)$dsp(g,i) = sum(usp, .824*ws("mb",usp,m)); weu("mb",i,g,m)$dsp(g,i) = sum(usp, .824*we("mb",usp,m)); wlu("mb",i,g,m) = wsu("mb",i,g,m) + weu("mb",i,g,m); * delivery efficiencies and water availability at the root zone Parameter wcdeleff(g,m) 'water course delivery eff. from water course head to root zone' twdeleff(g,m) 'delivery eff. from private tubwell to root zone' cnldeleff(g,m) 'delivery eff. from canal head to root zone' wr(g,m) 'canal water netted to the root zone in kaf'; wcdeleff(g,m) = (1 - wl("wc",g,m))*(1 - wl("fd",g,m)); twdeleff(g,m) = (1 - wl("pg",g,m))*(1 - wl("fd",g,m)); cnldeleff(g,m) = (1 - wl("mb",g,m))*(1 - wl("dm",g,m))*wcdeleff(g,m); wr(g,m) = sum(i,wdiv(i,g,m)* (1 - wlu("mb",i,g,m)))*cnldeleff(g,m)*1000; * sub-irrigation and crop water requirements net of sub-irr. and rain fall Set v / 1*14 /; Table fg(*,v) 'fireman gardner curve' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 depth 0 1 2 2.5 2.7 3.0 3.4 4 5.167 6 8 10 20 100 pro-pan 1 1 1 1 .8 .6 .4 .317 .2 .133 .064 .02 0 0; Parameter fgi(v) 'input point for fg function' fgo(v) 'output point for fg function' dep2(g) 'mean depth to watertable from canal wetted area feet' dep(g) 'depth to watertable feet' fgc1(g,v) 'initial fg function value canal fg evap' fgc(g) 'interpolated fg function value fg evap' fga1(g,v) 'initial fg function value aquifer fg evap' fga(g) 'interpolated fg function value aquifer fg evap' wn(g,c,t,s,w,m) 'crop water req net of rainfall and subirrigation' efr(g,m) 'effective rainfall in feet' subirr(g,m) 'water supplied by capillary action from the aquifer' drc 'proportion of rainfall which is run-off' the1 'proportion of nonconsumptive evapotranspiration' test 'interpolation tests' test2 'interpolation tests'; drc = .15; the1 = 0.6; fgi(v) = fg("depth",v); fgo(v) = fg("pro-pan",v); dep(g) = height(g,"hs") - height(g,"hwr"); dep2(g) = 0.5*dep(g); test(v,g) = (dep(g) >= fgi(v)) and (dep(g) < fgi(v+1)); test2(v,g) = (dep2(g) >= fgi(v)) and (dep2(g) < fgi(v+1)); fgc1(g,v) = (fgo(v) + (dep2(g) - fgi(v))*(fgo(v+1) - fgo(v))/(fgi(v+1) - fgi(v)))$test2(v,g); fga1(g,v) = (fgo(v) + (dep(g) - fgi(v))*(fgo(v+1) - fgo(v))/(fgi(v+1) - fgi(v)))$test(v,g); fgc(g) = sum(v, fgc1(g,v)); fga(g) = sum(v, fga1(g,v)); efr(g,m) = (1.0 - drc - wl("fd",g,m))*wpara1("rain",g,m)*1000/areac(g,"at"); subirr(g,m) = wpara1("pevap",g,m)*(1 - the1)*fga(g); wn(g,c,t,s,w,m) = watreq(c,t,s,w,m) - efr(g,m) - subirr(g,m); wn(g,c,t,s,w,m)$(wn(g,c,t,s,w,m) < 0) = 0.0; * calculations below are to compute annual underflow from neighbouring polygons qggw(g) Set gn 'neighbouring polygons' / poly-17+19, poly-18, pl15, pl16, pl22 / gg(g,gn) / poly-17+19.(poly-18,pl15,pl22), poly-18.(poly-17+19,pl16) /; Table wpara2(*,* ) 'height of water table above sea level and transmissibility coeff.' * (in feet) (.001 sq.ft per sec) poly-17+19 poly-18 pl15 pl16 pl22 hwr 280.58 279 197.1 181.9 347 trn 458.8 448 493 370 412; Table dist(*,g,gn) 'node to-node length (lnn in feet) perpendicular bisector (lpb in feet)' pl15 pl16 pl22 poly-18 poly-17+19 lnn.poly-17+19 604058 309840 104148 lnn.poly-18 601455 104148 lpb.poly-17+19 67696 174448 343688 lpb.poly-18 70300 343688; Parameter qgf(gn,g) 'underflows from polygon gn to polygon g in kaf' qggw(g) 'total inflow from neighbouring polygons kaf'; qgf(gn,g) = ((dist("lpb",g,gn)*((wpara2("trn",gn) + wpara2("trn",g))/2.0/1000) * (wpara2("hwr",gn) - wpara2("hwr",g))*nrc)/dist("lnn",g,gn))$gg(g,gn)/1000; qggw(g) = sum(gn$gg(g,gn), qgf(gn,g)); * annual recharge from canals, rain, govt. tubewells, evaporation from ground water pumpage by govt. tubwells * and net rercharge Parameter efs(g,m) 'effective seepage of rainfall from slack culturable land in feet' seepcgw(g) 'canal water seepage to the groundwater in kaf' seeprain(g) 'seepage of rain to groundwater in kaf' seepgtw(g) 'seepage from the publick tubelwells kaf' trseep(g) 'seepage in transit by polygon kaf' etgw(g) 'evapotraspiration from the groundwater along the canal and irrigated area' delgw(g) 'annual change in groudwater thousand acre feet' ntw(g) 'number of existing tubewells' ntr(g) 'number of existing tractors' gtw(g,m) 'government tubewell pumping (af per month)' gtw1(g,m) 'government tubewell pumping routed to root zone (af per month)'; efs(g,m) = (1.0-drc)*0.2*wpara1("rain",g,m)/areac(g,"at"); etgw(g) = sum(m, wpara1("pevap",g,m)*(wa(g)*fgc(g) + areac(g,"alg")*fga(g)))/1000; seeprain(g) = sum(m, (1.0-drc)*((ws("fd",g,m)+0.2)*(areac(g,"at") - areac(g,"alg")) + ws("fd",g,m)*areac(g,"alg"))*wpara1("rain",g,m)/areac(g,"at")); trseep(usp) = sum((m,i,g), wdiv(i,g,m)*1000*wsu("mb",i,g,m)$dsp(g,i)); seepcgw(g) = sum(m, sum(i, wdiv(i,g,m)*1000*(1 - wlu("mb",i,g,m))*( ws("mb",g,m) + (1 - wl("mb",g,m))*(ws("dm",g,m) + (1 - wl("dm",g,m))*(ws("wc",g,m) + (1 - wl("wc",g,m))*ws("fd",g,m)))))) + trseep(g); ntw(g) = 0.0; ntr(g) = 0.0; gtw(g,m) = 0.0; delgw(g) = 0.0; gtw1(g,m) = gtw(g,m)*wcdeleff(g,m) ; seepgtw(g) = sum(m, gtw(g,m)*(ws("wc",g,m) + (1 - wl("wc",g,m))*ws("fd",g,m)))/1000; display wsu, weu, wlu, trseep; * report in effficiencies, and seepage to groundwater Parameter rep4(g,*,u,*) 'report on water losses' rep5(g,*,*) 'water requirements and avalability' rep6(g,*) 'groundwater inflows and outflows'; rep4(g,"seepage",u,m) = ws(u,g,m); rep4(g,"evap",u,m) = we(u,g,m); rep4(g,"total",u,m) = wl(u,g,m); rep5(g,"rain",m) = efr(g,m); rep5(g,"rain","total") = sum(m, efr(g,m)); rep5(g,"subirr",m) = subirr(g,m); rep5(g,"subirr","total") = sum(m, subirr(g,m)); rep5(g,"cnldeleff",m) = cnldeleff(g,m); rep5(g,"canal",m) = sum(i, wdiv(i,g,m)*1000); rep5(g,"canal","total") = sum(m, rep5(g,"canal",m)); rep5(g,"canal-rt",m) = wr(g,m); rep5(g,"canal-rt","total") = sum(m, wr(g,m)); rep6(g,"seepcgw") = seepcgw(g); rep6(g,"seeprain") = seeprain(g); rep6(g,"rivseep") = sum(m, wpara1("rivseep",g,m))/1000; rep6(g,"seepgtw") = seepgtw(g); rep6(g,"underflow") = qggw(g); rep6(g,"gtw") = sum(m, gtw(g,m) )/1000; rep6(g,"etgw ") = etgw(g); rep6(g,"net-seep") = seepcgw(g) + seeprain(g) + rep6(g,"rivseep") + rep6(g,"seepgtw") + qggw(g) - rep6(g,"gtw") - etgw(g); display rep4; display " rain rain use by crops in feet " " subirr water used by crop by cappilary action from the gw acre feet/acre " " cnldeleff canal delivery efficiency from canal head to the root zone " " excluding the losses in transit through other polygons " " canal canal water availability at canal head kaf " " canal-rt canal water availability at root zone kaf "; display rep5; display " seepcgw seepage from canal water to the groundwater (gw) in kaf " " seeprain seepage from rain to gw kaf " " rivseep seepage from rivers to gw in kaf" " seepgtw seepage from public tubewells to gw in kaf " " underflow flow from neighbouring polygons to gw kaf " " etgw evaporation from groundwater kaf " " gtw public tubewell pumpage kaf " " net-seep net seeapge to gw from sources mentioned above kaf "; display rep6; $sTitle Equations and Variables Variable yfa(g) 'farm income thousand rupees' yva(g) 'normal farm income thousand rupees' mad(g) 'mean absolute revenue deviation of cropping pattern thousand rupees' dr(g) 'public drainage from groundwater in kaf' inj(g) 'public injection to groundwater in kaf' tw(g,m) 'private tubewell water use in month m kaf' ts(g,m) 'private tractor services use m month thousand hrs' scc(g,c) 'sales of crop commodities c in thousand lbs' ccc(g,c) 'on farm consumption of crops commodities c in thousand lbs' pcc(g,c) 'farm purchases of crop commodities c in thousand lbs' slc(g,q) 'sales of livestock commodities q in thousand lbs or liters' clc(g,q) 'farm consumption of livestock commodities q in thousand lbs or liter' plc(g,q) 'farm purchases of livestock commodity q in thousand lbs or liters' acost(g) 'farm cost in thousand rupees' * operating cost + annualized cost of capital services x(g,c,t,s,w) 'area of crop c in thousand acres using a technology' xca(g,c) 'area of crop c by polygon' animal(g,l) 'production of livestock type l thousands' * thouands of bullocks pairs, cattle or buffaloes ppc 'purchases of protein concentrates thousand lbs' esl(g,m) 'employment of seasonal labor in month m in thousand man-hrs' itw(g) 'investment in increased private tubewell capacity kaf per month' itr(g) 'investment in increased tractor capacity' * thousand tractor-hours per month efl(g,m) 'employment of family labor in month m in k man-hrs' pdev(g,y) 'positive revenue deviation in thousand rupees' ndev(g,y) 'negative revenue deviation in thousand rupees' utl 'utility of income million rupees' slkland(g,m) 'slack land in k acres' slkwater(g,m) 'slack water in kaf'; Positive Variable pdev , ndev, mad, dr , inj, tw , ts , scc, ccc, pcc, slc, clc, plc acost, x , xca, animal, ppc, esl, itw, itr, efl, slkwater, slkland; Equation objt 'objective function' inbl 'income accounting balance' nfin 'normal farm income constraint' ddev 'definition of revenue deviation year' cost 'annual farm cost' cmbc 'commodity balances for crops' cmbq 'commodity balances for livestock' cblc 'farm consumption of crop commodity' cblq 'farm consumption of livestock commodity' fdsp 'seasonal maintenance of fodder supplies' slsk 'protein requirements of livestock in season s' sgfd 'requirement for green fodder by livestock' bupw 'bullock draft power constraint' buca 'bullock reproduction constraint' trpw 'tractor draft power balance' trcp 'tractor capacity constraint' labr 'labor requirements constraint' landc 'land constraint' cacr 'crop acreage' watr 'water requirements for cropping activities' tbcp 'tubewell capacity constraint' gwbl 'annual groundwater balance'; * objective function objt.. utl =e= sum(g, yfa(g) - r(g)*kl*sum(y, pdev(g,y) + ndev(g,y))/card(y) - cdrwell*(dr(g) + inj(g))$sg(g)/drcap)/1000; inbl(g).. yfa(g) =e= sum(c$cnf(c), psc(c)*scc(g,c)) + sum(c$cc(c), psc(c)*ccc(g,c) - pbc(c)*pcc(g,c)) + sum(q, psq(q)*slc(g,q) - pbq(q)*plc(g,q) + psq(q)*clc(g,q)) -acost(g); nfin(g).. yva(g) =e= yfa(g) - sum(c$cc(c), (pbc(c) - psc(c))*pcc(g,c)) + sum(q, (pbq(q) - psq(q))*plc(g,q)); ddev(g,y).. sum(c, dev(c,y)*xca(g,c)) =e= pdev(g,y) - ndev(g,y); cost(g).. acost(g) =e= sum((c,t,s,w), cwcaptl(c,t,s,w)*x(g,c,t,s,w)$tech(c,t,s,w)) + sum(m, misc("twopc")*tw(g,m) + misc("tropc")*ts(g,m) + wage(m)*esl(g,m)) + sum(l, lwcaptl(l)*animal(g,l)) + sum(sea, pp*ppc(g,sea)) + misc("twinvt")*(itw(g) + ntw(g))$fsg(g) + misc("trinvt")*(itr(g) + ntr(g)); cmbc(g,c)$cnf(c).. sum((t,s,w), yc(c,t,s,w)*fc*x(g,c,t,s,w)$tech(c,t,s,w)) - scc(g,c) - (ccc(g,c) - pcc(g,c))$cc(c) =e= 0; cmbq(g,q).. sum(l, yq(l,q)*animal(g,l)) - slc(g,q) - clc(g,q) + plc(g,q) =e= 0.0; cblc(g,c)$cc(c).. ccc(g,c) =g= alphc(g,c) + betac(g,c)*yva(g); cblq(g,q).. clc(g,q) =g= alphq(g,q) + betaq(g,q)*yva(g); fdsp(g,sea).. sum(l, livio(l,"tn")*animal(g,l)) =l= gfd(g,sea) + sum((c,t,s,w), (tdy(c,t,s,w,sea)+wtd(c,t,s,w,sea))*x(g,c,t,s,w)$tech(c,t,s,w)); slsk(g,sea).. sum(l, livio(l,"pr")*animal(g,l)) =l= ppc(g,sea) + gdp(g,sea) + sum((c,t,s,w), (dpy(c,t,s,w,sea)+wdp(c,t,s,w,sea))*x(g,c,t,s,w)$tech(c,t,s,w)); sgfd(g,sea).. gr*sum(l, livio(l,"tn")*animal(g,l)) =l= gfd(g,sea) + sum( (cf,t,s,w), tdy(cf,t,s,w,sea)*x(g,cf,t,s,w)$tech(cf,t,s,w)) + sum((c,t,s,w), wtd(c,t,s,w,sea)*x(g,c,t,s,w)$tech(c,t,s,w)); bupw(g,m).. sum((c,t,s,w), bpr(c,t,s,w,m)*x(g,c,t,s,w)$tech(c,t,s,w)) =l= bp(m)*animal(g,"bullock"); buca(g).. animal(g,"bullock") =l= repco*animal(g,"cattle"); trpw(g,m).. sum((c,t,s,w), tr(c,t,s,w,m)*x(g,c,t,s,w)$tech(c,t,s,w)) - ts(g,m) =e= 0.0; trcp(g,m).. ts(g,m) =l= areac(g,"trg1")/1000 + trcap*itr(g); labr(g,m).. sum((c,t,s,w), labor(c,t,s,w,m)*x(g,c,t,s,w)$tech(c,t,s,w)) + sum(l, lbq(l,m)*animal(g,l)) =e= efl(g,m) + esl(g,m); landc(g,m).. sum((c,t,s,w), land(c,t,s,w,m)*x(g,c,t,s,w)$tech(c,t,s,w)) + slkland(g,m) =e= areac(g,"alg")/1000; cacr(g,c).. xca(g,c) =e= sum((t,s,w) , x(g,c,t,s,w)$tech(c,t,s,w)); watr(g,m).. sum((c,t,s,w), wn(g,c,t,s,w,m)*x(g,c,t,s,w)$tech(c,t,s,w)) + slkwater(g,m) =e= wr(g,m) + twdeleff(g,m)*tw(g,m)$fsg(g) + gtw1(g,m)/1000; tbcp(g,m)$fsg(g).. tw(g,m) =l= areac(g, "twg")/1000 + twcap*itw(g); * annual groundwater balance --- additional seepage of rain from slack land + seepage from tubewell water + * seepage from canal water + underflow + seepage of rain from unirrigated area + seepage from rain in * irrigated area + seepage from rice fields and river reaches = e = private and government tubewell pumpage * + evapotranspiration along canals and aquifer + drainage/injection + change storage gwbl(g).. sum(m, efs(g,m)*slkland(g,m) + (ws("pg",g,m) + (1-wl("pg",g,m))*ws("fd",g,m))*tw(g,m)$fsg(g) + wpara1("rivseep",g,m)/1000) + sum(cri, xca(g,cri))*1.5 + seepcgw(g) + seepgtw(g) + qggw(g) + seeprain(g) =e= sum(m, tw(g,m)$fsg(g) + gtw(g,m)/1000) + etgw(g) + (dr(g) - inj(g))$sg(g) + delgw(g); * solve the model using lp xca.up(g,"sc-mill") = areac(g,"sra")/1000; efl.up(g,m) = flab(g,"fh"); esl.up(g,m) = flab(g,"lh"); * itr.fx(g) = 0.0; * itw.fx(g) = 0.0; Model indus1 / objt , inbl, nfin, ddev, cost, cmbc, cmbq, cblc cblq , fdsp, slsk, sgfd, bupw, buca, trpw, labr landc, cacr, watr, tbcp, gwbl, trcp /; * indus2 is model without groundwater balance constraint Model indus2 / objt, inbl, nfin, ddev, cost, cmbc, cmbq, cblc cblq, fdsp, slsk, sgfd, bupw, buca, trpw, trcp labr, landc, cacr, watr, tbcp /; solve indus1 maximizing utl using lp;