demo1.gms : Simple Farm Level Model

Description

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.

Reference

  • Kutcher, G P, Meeraus, A, and O'Mara, G T, Agriculture Sector and Policy Models. The World Bank, 1988.

Small Model of Type : LP


Category : GAMS Model library


Main file : demo1.gms

$Title Simple Farm Level Model (DEMO1,SEQ=91)
$Stitle Crop Data

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

$Offtext


Sets  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

$Eject

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 /;
*   farm data, size labor availability etc.

Scalars 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

Variables  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

Equations  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

Sets crep    / landuse, output, revenue /
     lrep    / demand,  family, temporary
               unused,  hire-out /

Parameters  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 ;