$title Simple Farm Level Model (DEMO1,SEQ=91) $onText This is the first in a series of single farm models. This simplest version has only 7 principal crops and 2 basic inputs, land and labor, which are specified on a monthly basis. Kutcher, G P, Meeraus, A, and O'Mara, G T, Agriculture Sector and Policy Models. The World Bank, 1988. Keywords: linear programming, agricultural economics, farming, crop yields $offText $sTitle Crop Data Set c 'crops' / wheat, clover, beans, onions, cotton, maize, tomato / t 'period' / jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec /; Table landreq(t,c) 'months of land occupation by crop (hectares)' wheat clover beans onions cotton maize tomato jan 1. 1. 1. 1. feb 1. 1. 1. 1. mar 1. .5 1. 1. .5 apr 1. 1. 1. 1. may 1. .25 1. .25 jun 1. 1. jul 1. 1. .75 aug 1. 1. 1. sep 1. 1. 1. oct 1. .5 1. nov .5 .25 .25 .5 .75 .75 dec 1. 1. 1. 1. ; Table laborreq(t,c) 'crop labor requirements (man-days per hectare)' wheat clover beans onions cotton maize tomato jan 1.72 4.5 .75 5.16 feb .5 1. .75 5. mar 1. 8. .75 5. 5. apr 1. 16. 19.58 5. may 17.16 2.42 9. 4.3 jun 2.34 2. 5.04 jul 1.5 7.16 17. aug 2. 7.97 15. sep 1. 4.41 12. oct 26. 1.12 7. nov 2.43 2.5 7.5 11.16 12. 6. dec 1.35 7.5 .75 4.68 ; Parameters yield(c) 'crop yield (tons per hectare)' / wheat 1.5, clover 6.5, beans 1, onions 3 cotton 1.5, maize 2 , tomato 3 / price(c) 'crop prices (dollars per ton)' / wheat 100, beans 200, onions 125 cotton 350, maize 70, tomato 120 / miscost(c) 'misc cash costs (dollars per hectare)' / wheat 10, beans 5, onions 50 cotton 80, maize 5, tomato 50 /; * arm data, size labor availability etc. Scalar land 'farm size (hectares)' / 4. / famlab 'family labor available (days per month)' / 25 / owage 'hire-out wage rate (dollars per day)' / 3. / twage 'temporary labor wage (dollars per day)' / 4 / dpm 'number of working days per month' / 25 /; $sTitle Endogenous Variables and Equations Variable xcrop(c) 'cropping activity (hectares)' yfarm 'farm income (dollars)' revenue 'value of production (dollars)' mcost 'misc cash cost (dollars)' labcost 'labor cost (dollars)' labearn 'labor income (dollars)' flab(t) 'family labor use (days)' fout(t) 'hiring out (days)' tlab(t) 'temporary labor (days)'; Positive Variable xcrop, flab ,fout, tlab; Equation landbal(t) 'land balance (hectares)' laborbal(t) 'labor balance (days)' flabor(t) 'family labor balance (days)' arev 'revenue accounting (dollars)' acost 'cash cost accounting (dollars)' alab 'labor cost accounting (dollars)' aout 'labor income accounting (dollars)' income 'income definition (dollars)'; landbal(t).. sum(c, xcrop(c)*landreq(t,c)) =l= land; laborbal(t).. sum(c, xcrop(c)*laborreq(t,c)) =l= flab(t) + tlab(t); flabor(t).. famlab =e= flab(t) + fout(t); arev.. revenue =e= sum(c, xcrop(c)*yield(c)*price(c)); acost.. mcost =e= sum(c, xcrop(c)*miscost(c)); alab.. labcost =e= sum(t, tlab(t)*twage); aout.. labearn =e= sum(t, fout(t)*owage); income.. yfarm =e= revenue + labearn - labcost - mcost; Model demo1 'farm labor model' / all /; solve demo1 using lp maximizing yfarm; $sTitle Report on Solution Set crep / landuse, output, revenue / lrep / demand, family, temporary, unused, hire-out /; Parameter croprep 'crop report summary' labrep 'labor report summary(days)'; croprep("landuse",c) = xcrop.l(c); croprep("output",c) = xcrop.l(c)*yield(c); croprep("revenue",c) = croprep("output",c)*price(c); croprep(crep,"total") = sum(c, croprep(crep,c)); labrep(t,"demand") = sum(c, xcrop.l(c)*laborreq(t,c)); labrep(t,"family") = flab.l(t); labrep(t,"temporary") = tlab.l(t); labrep(t,"unused") = -laborbal.l(t); labrep(t,"hire-out") = fout.l(t); labrep("total",lrep) = sum(t, labrep(t,lrep)); display "landuse -- hectares " "output -- tons " "revenue -- dollars ", croprep, labrep;