dinam.gms : DINAMICO A Dynamic Multi-Sectoral Multi-Skill Model

Description

Dinamico is multi-sector, multi-skill model of the Mexican economy. for
complete description of data and model consult the reference.


Reference

  • Manne, A S, Dinamico, A Multi-Sector, Multi-skill Model. In Goreaux, L M, and Manne, A S, Eds, Multi-level Planning: Case Studies in Mexico. North-Holland, Amsterdam, 1973.

Large Model of Type : LP


Category : GAMS Model library


Main file : dinam.gms

$Title Dinamico, Dynamic Multi-Sector, Multi-skill Model (DINAM,SEQ=35)
$Stitle Introduction

$Ontext

Dinamico is multi-sector, multi-skill model of the Mexican economy. for
complete description of data and model consult the reference.


Manne, A S, Dinamico, A Multi-Sector, Multi-skill Model. In Goreaux,
L M, and Manne, A S, Eds, Multi-level Planning: Case Studies in Mexico.
North-Holland, Amsterdam, 1973.

$Offtext


 Set  tm             labels appearing in the transaction matrices and reports /
                     agri-ka      agriculture - capital-labor substitution
                     agri         agriculture
                     agri-total   total annual investment in agriculture
                     mine         mining
                     petrol       petroleum
                     food         food
                     text         textiles
                     wood         wood
                     chem         chemicals
                     n-met        non-metallics

                     b-met        basic metals
                     mach         machinery
                     const        construction
                     elec         electricity
                     comm         commerce
                     trans        transportation
                     serv         services
                     imp          imports
                     hc           household consumption
                     gc           government consumption

                     tc           tourist consumption
                     exp          exports
                     fi           fixed investment
                     ii           investment inventories
                     err          errors and ommisions
                     va           value added (gross)
                     gvp          gross value of production
                     g-d-p        gross domestic production
                     consumed     aggregate consumption
                     savings      aggregate domestic savings

                     r-gap        resource gap
                     investment   aggregate annual investment
                     gdp-gr       annual growth rate of gdp
                     con-gr       annual growth rate of consumption
                     sav-gr       annual growth rate of savings
                     inv-gr       annual growth rate of investment
                     inc-k-o      incremental-capital-output ratio
                     mps          marginal propensity to save (%)
                     aps          average propensity to save (%)
                     imports

                     ea+zt        export earnings and tourism
                     rgap-fexch   resource gap: imports - export earnings and tourism
                     fcl          foreign concessional capital inflows
                     fdpl         foreign direct capital inflows
                     infcl        interest payments on concessional capital
                     infdpl       interest payments on direct foreign capital
                     rgap-fgap    resource gap: algebraic sum of capital inflows and outflows
                     for-exch     dual variable ft: 1960 pesos worth of maximand per 1000 1960 pesos worth
                     trad-manu    tradeable manufactures
                     ratio        efficiency price of foreign exchange relative to price of tradeable manufactures

                     eff-sl1      efficiency wages
                     dual         dual variables for labor constraints
                     fc-infc      concessional capital inflows less interest
                     res-gap      resource gap
                     fexch-m      efficiency price of foreign exchange
                     fgap-m       efficiency price of foreign aid
                     relative     efficiency price of foreign exchange relative to price of tradeable manufactures
                     export-e     merchandize exports
                     high-cost    exports of high-cost manufactures at producers prices

                     earnings     foreign exchange earnings at market prices
                     gap          resource gap: imports less merchandize exports and tourism
                     zm4          exports of high-cost manufactures
                     za4          merchandize exports
                     zt4          tourism

                     eff-wages    efficiency wages annual average centered on 1980
                     con4         aggregate consumption in 1980
                     income       labor income: employment x efficiency wages
                     aggregate
                     income-t                                            /

$Stitle set definitions

 Set te        plan horizon        / 1968, 1971, 1974, 1977, 1980, 1983, 1986, 1989 /

     t(te)     optimization horizon/ 1971, 1974, 1977, 1980, 1983, 1986 /

     jd(tm)    sectors-of-destination used in data estimation /
               agri, mine, petrol, food, text, wood, chem, n-met, b-met, mach, const, elec, comm, trans,
               serv, hc,   gc,     tc,   exp,  fi,   ii  /

     j(jd)     input-output sectors of destination /
               agri, mine, petrol, food, text, wood, chem, n-met, b-met, mach, const, elec, comm, trans, serv     /

     id(tm)    sectors-of-origin used in data estimation  /
               agri, mine, petrol, food, text, wood, chem, n-met, b-met, mach, const, elec, comm, trans, serv, imp /

     i(id)     input-output sectors of origin /
               agri, mine, petrol, food, text, wood, chem, n-met, b-met, mach, const, elec, comm, trans, serv      /

     im(i)     merchandize commodities        / agri, mine, petrol, food, text, wood, chem, n-met, b-met, mach     /

     inc(id)   foreign commodities - non-competitive / imp /

     s         labor skill categories /  eng      engineers and scientists
                                         tech     other professional and technical workers
                                         admin    administrative and clerical workers
                                         man      manual and sales workers outside agriculture
                                         unskill  unskilled agriculture workers                /

     sun(s)    unskilled agricultural workers / unskill /

     l         lag structure for human capital formation / 0*2 /

     eit       education input types / change, input /

     sst(te,s) skill  substitutions allowed during time periods / (1971,1974).(eng,tech,admin),
                                                                  (1971,1974,1977,1980,1983,1986,1989).man /

 Alias(te,tep),(t,tp),(s,sp);

$Stitle transactions matrix manipulations from 1960 data

 Set    ic1(tm)      row labels for transactions matrix /
                     agri, mine, petrol, food, text, wood, chem, n-met, b-met, mach, const, elec, comm, trans,
                     serv, imp,  err,    va,   gvp /

        jdp(jd)      jd sectors from 1 thru 21 but not 19

 Scalar interval     time interval between optimization years  / 3 /;

 jdp(jd) = yes; jdp("exp") = no; display jdp;

 Table tm1960(tm,tm) transactions matrix for 1960 (billions of 1960 pesos)

          agri   mine   petrol   food   text  wood   chem  n-met  b-met  mach   const  elec   comm  trans   serv

 agri   2.028   .014     .001  8.049   1.091  .521   .55    .001   .002  .028    .003         .004          .018
 mine    .001  1.007     .128   .025    .004  .008   .093   .109   .455  .143    .216   .005  .01    .007   .006
 petrol  .621   .154    2.944   .445    .185  .097   .126   .218   .275  .173    .124   .216  .163  1.022   .094
 food   1.66    .012     .011  4.697    .054  .033   .13    .005   .021  .026    .041   .002  .056   .028   .109
 text   .522    .012     .015   .094   2.565  .038   .094   .012   .025  .081    .038   .005  .09    .012   .084
 wood   .123    .035     .074   .438    .1   1.038   .246   .092   .043  .182    .613   .013  .428   .048   .357
 chem   .741    .099     .054   .134    .661  .134  1.018   .049   .043  .43     .191   .011  .078   .304   .318
 n-met  .003    .012     .007   .252    .008  .013   .056   .18    .063  .051   1.428   .001  .02    .002   .017
 b-met  .048    .068     .025   .144    .058  .039   .066   .033   .873 1.249   1.166   .013  .132   .027   .149
 mach   .224    .05      .048   .317    .114  .051   .095   .043   .057  .904    .867   .052  .206   .097   .463
 const  .14     .024     .026   .045    .038  .016   .02    .025   .022  .011    .06    .043  .083   .072   .367
 elec   .073    .106     .003   .165    .122  .062   .075   .075   .062  .063    .049   .08   .25    .03    .156
 comm  1.199    .165     .197  2.632   1.527  .483   .869   .249   .314  .544   1.66    .093  .351   .619  1.28
 trans  .001    .009     .012   .057    .032  .021   .03    .008   .007  .046    .02    .012 2.943   .024   .13
 serv   .159    .152     .227   .681    .337  .241   .347   .078   .239  .312    .348   .043 1.61    .243  5.439
 imp    .548    .061     .704   .567    .599  .44   1.664   .156   .366 1.934    .921   .107  .119   .482   .429
 err    .105    .025     .023   .093    .028  .021  0.057   .013   .046  .047    .088   .007  .116   .027   .344
 va    23.97   2.306    5.128 10.62    5.434 2.347  3.245  1.182  1.786 4.278   6.105  1.502 46.88  4.996 30.732

   +        hc     gc     tc     exp     fi      ii
$Maxcol 72
 agri   14.846   .013   .073   2.88    .943   1.101                     the submatrix consisting of the 15 input-output
 mine     .002   .001          2.007   .024    .06                      sectors (and import on the row) represents the
 petrol  2.257   .116           .173   .002    .222                     interindustry flows.  from this we obtain the
 food   19.711   .042   .083   2.3     .04     .394                     interindustry input-output coefficients.
 text    7.835   .023   .19     .651   .027    .544                     the column vectors "hc" (household consumption)
 wood    1.242   .117   .035    .13    .05     .199                     "gc" (government consumption), "tc" (tourists
 chem    3.635   .217           .221   .073    .379                     consumption), "exp" (exports), "fi" (fixed
 n-met    .099   .117           .072   .026    .101                     investment), "ii" (inventory investment) are
 b-met           .024           .092   .222    .262                     final demand vectors - of these sectors for
 mach    3.28    .281   .094    .114  2.529    .616                     goods from the 16 row sectors.
 const           .028                12.787    .131
 elec     .54    .179                  .115
 comm   35.835   .222   .336   1.125  3.625    .214
 trans   4.309   .18    .111    .001   .087
 serv   20.58   7.501  1.166    .217   .572
 imp     1.313   .231           .055  3.84     .479
 err    -.036  -1.009           .01

 Table t1968(tm,tm) independently estimated data for 1968 (billions of 1960 pesos)

            exp      gvp                                                 the "exp" column represents the

 agri     3.860   44.775                                                 export column vector in the trans-
 mine     2.360    5.074                                                 actions matrix in 1968.
 petrol    .450   17.001
 food     2.880   48.689                                                 the "gvp" column is the gross value
 text      .580   22.671                                                 of production for 1968 - the row and
 wood      .310    9.827                                                 column totals for the inter-industry
 chem      .660   17.913                                                 transactions matrix in 1968.
 n-met     .120    5.351
 b-met     .230   10.768
 mach      .560   27.231
 const            26.774
 elec              5.669
 comm     1.560   89.838
 trans            12.598
 serv      .300   72.242
 hc              191.1
 gc               17.7
 tc               4.22
 exp              13.870
 imp              21.0
 fi              49.5
 ii               5.5
 va      13.870
$Maxcol 120

 Parameter xj60(jd)      gross production in sector j in 1960 (column totals - billions of 1960 pesos)
           ax60(id,jd)   transaction flows in 1960 (billions of 1960 pesos)
           aij60(id,jd)  i-o coefficient matrix for transactions in 1960
           xj68(jd)      gross output in sector j in 1968 (column totals - billions of 1960 pesos)
           yi68(id)      row totals for 1968 (billions of 1960 pesos)
           ax19(id)      export vector for 1968 (billions of 1960 pesos)
           aij68(tm,tm)  i-o coefficient matrix for transactions in 1968
           ax68          transaction flows in 1968 (billions of 1960 pesos)
           rho(id)       annual technological rate of change between 1960 and 1968 (%);

** initialize 1960 parameters

 xj60(jd)              = sum(ic1, tm1960(ic1,jd));
 ax60(id,jd)           = tm1960(id,jd);
 aij60(id,jd)$xj60(jd) = tm1960(id,jd)/xj60(jd);

* initialize the column and row totals and the export column in the transactions matrix for 1968
* from the known data in table t1968

 xj68(jdp) = t1968(jdp,"gvp");
 yi68(id)  = t1968(id,"gvp");
 ax19(id)  = t1968(id,"exp");

$Maxcol 72
* obtain the technological rate of change.                              the only available information are the detailed
                                                                        matrix for 1960 and the aggregate demand and
 Parameter temp1(id) row totals;                                        production for 1968.  therefore assume there
 temp1(id) = sum(jdp, aij60(id,jdp)*xj68(jdp));                         exists an annual rate of technological change
 rho(id)$temp1(id) = ((yi68(id) - ax19(id))/temp1(id))**(1/8) - 1;      in the coefficients for row i, rho(i).  this
                                                                        is applied in the row correction procedure
 Display xj60,ax60,aij60,xj68,yi68,ax19,temp1,rho;                      (in place of ras) to project the detailed
                                                                        transactions matrix for 1968.
 aij68(id,jdp) = ((1 + rho(id))**8)*aij60(id,jdp);

 ax68(id,jdp)  = aij68(id,jdp)*xj68(jdp);
 ax68(id,"exp") = ax19(id);
 Display aij68,ax68;

 Parameter rho2(id)  corrected rho - after subjective corrections to computed rho
           rhotp     rho for plan horizon;

 rho2(id)     = rho(id);                                                to project beyond 1968, the values of rho(i)
 rho2("mach") = .03;                                                    obtained above are adjusted subjectively in
 rho2("elec") = .03;                                                    certain cases.  it is assumed the historical
 rho2("mine") = -.03;                                                   rates cannot possibly be maintained in the
 rho2("imp")  = -.03;                                                   future.
 rhotp(id,te) = (1 + rho2(id))**(interval*(ord(te)-1));
 Display rho,rho2,rhotp;
$Maxcol 120

$Stitle i-o and consumption coefficients

 Parameter x0(j)        base (1968) year output of sector j (billions of 1960 pesos)
           a0(id,j)     i-o matrix for base year of optimization period (1968)
           a(id,tm,te)  i-o matrix for optimization horizon
           apc0(id)     average propensity to consume in base year (1968) - household & government
           apc(id,te)   average propensity to consume in year t - household and government
           apz0(id)     average propensity to consume item i by tourists in base year (1968)
           apz(id,te)   average propensity to consume item i by tourists in year t
           muc(te)      column correction factor for apc
           muz(te)      column correction factor for apz;

** i-o matrices and output levels **

 x0(j)              = t1968(j,"gvp");
 a0(id,j)           = aij68(id,j);
 a(id,j,te)         = rhotp(id,te)*a0(id,j);
 a(id,id,te)$t(te)  = a(id,id,te) - 1;
 Display x0,a0,a;

** consumption coefficients **

 Scalar total  gross consumption by households and government in base year (1968);
$Maxcol 72
 total                = sum(id, ax68(id,"hc") + ax68(id,"gc"));         the consumption expenditure coefficient for
                                                                        good i by domestic consumers (government &
 apc0(id)             = (ax68(id,"gc") + ax68(id,"hc"))/total;          household) is the gross 1968 expenditure
 muc(te)              = 1 / sum(id, (apc0(id) * rhotp(id,te))) ;        divided by total consumption outlay in 1968.
 apc(id,te)           = apc0(id) * rhotp(id,te) * muc(te) ;             to project these coefficients into the future
                                                                        we multiply by rho(i) (above) and mu(t) - mu(t)
 apz0(id)             = aij68(id,"tc") ;                                ensures that the coefficients sum to 1.
 muz(te)              = 1 / sum(id, (apz0(id) * rhotp(id,te))) ;
 apz(id,te)           = apz0(id) * rhotp(id,te) * muz(te) ;             similarly for tourists.
 Display  apc0,muc,apc,apz0,muz,apz,total;

$Stitle capital-output coefficients
$Maxcol 120

 Table b0(id,j) capital-output ratios for base year (1968) in billions of 1960 pesos

       agri  mine petrol food  text  wood  chem  n-met  b-met  mach  const  elec  comm  trans  serv

 agri  .934
 mine        .124
 petrol            .004
 food                    .048
 text                          .047
 wood                                .154
 chem                                      .102
 n-met                                           .088
 b-met                                                   .352
 mach  .207  .261  .395  .197  .155  .3    .203  .319    .263  .176  .085   .886  .189  1.634  .273
 const .588  .331  .615  .299  .145  .296  .232  .447    .275  .235  .015  2.109  .169  5.173 2.328
 elec                                                                       .462
 comm  .224  .204  .378  .193  .194  .307  .294  .279    .348  .234  .070   .707  .126  1.363  .199
 trans                                                                                   .159
 serv  .039                                                                              .196  .154
 imp   .262  .100  .339  .183  .264  .316  .455  .202    .497  .336  .042   .369  .011   .835  .055


 Parameter b(id,j,te)  ratio of capital originating in sector i per unit of gross output in sector j
           k(j,te)     capital coefficients of sector j
           bk(id,j,te) sector of origin ratios;

 b(id,j,te)   = rhotp(id,te) * b0(id,j) ;
 k(j,te)      = sum(id, b(id,j,te)) ;
 bk(id,j,te)  = b(id,j,te) / k(j,te) ;

 Display b,k,bk;

$Stitle labor data

 Parameter lreq0(s,j)    input requirement for labor skill s per unit output in sector j
           lreq(s,j,te)  input requirement for labor skill s per unit output in sector j year t
           sigt(s,j,te)  time trend factor for reduction of labor input s in sector j year t
           alr(te)       agricultural labor released per unit of cumulative capital
           pvv           producers price value

 Scalar    wage1960      wage of unskilled agri labor in 1960 - assumed to be marginal productivity  / 2400 /
           mpc           annual marginal productivity of capital in agriculture - assume constant (%)/   16 /
           mrs           marginal rate of substitution - pesos of capital per man-year

 Parameter csm(id)    commerce and service margins            / comm   .1125
                                                                serv   .0217  /;

 pvv  = 1 - sum(id, csm(id));
 Display pvv;


 Table labor(j,s)  1968 employment  in millions

               eng     tech     admin     man   unskill

 agri       .00541   .02705   .06222           7.02400
 mine       .00376   .00376   .00730   .09249
 petrol     .00437   .00611   .01746   .05937
 food       .00238   .00510   .03742   .29528
 text       .00189   .00631   .02650   .59632
 wood       .00143   .01061   .02122   .25344
 chem       .00585   .00704   .03629   .07020
 n-met      .00105   .00210   .00876   .10484
 b-met      .00152   .00228   .00718   .07347
 mach       .01857   .02837   .07831   .49140
 const      .00916   .02185   .07332   .60063
 elec       .00394   .00258   .02523   .04402
 comm       .00220   .03002   .29730  1.13501
 trans      .00182   .00684   .10212   .34511
 serv       .01365   .48598   .58137  1.28942


 Table  ls(te,s)  labor supply projection by year and skill (thousands of persons)

           eng   tech  admin     man  unskill

 1968     .077   .646  1.382   5.451   7.024
 1971     .097   .791  1.623   6.125   7.389
 1974     .117   .936  1.864   6.906   7.841
 1977     .137  1.081  2.105   7.827   8.321
 1980     .157  1.226  2.346   8.966   8.830
 1983     .177  1.371  2.587  10.291   9.370
 1986     .197  1.516  2.828  11.746   9.943
 1989     .217  1.661  3.069  13.416  10.552


 Table sigma(j,s) labor productivity changes (% per year)

            eng     tech    admin      man   unskill

 agri       1.0      1.0      1.5      2.0      2.0
 mine       1.0      1.0      1.5      1.5      1.5
 petrol     1.0      1.0      1.5      3.5      3.5
 food       1.0      1.0      1.5      3.5      3.5
 text       1.0      1.0      1.5      3.5      3.5
 wood       1.0      1.0      1.5      3.5      3.5
 chem       1.0      1.0      1.5      3.5      3.5
 n-met      1.0      1.0      1.5      3.5      3.5
 b-met      1.0      1.0      1.5      3.5      3.5
 mach       1.0      1.0      1.5      3.5      3.5
 const      1.0      1.0      1.5      1.5      1.5
 elec       1.0      1.0      1.5      3.5      3.5
 comm       1.0      1.0      1.5      3.5      3.5
 trans      1.0      1.0      1.5      1.5      1.5
 serv       1.0      1.0      1.5      1.5      1.5



 Table sf(eit,s,l,s) coefficients for human capital formation activities
$Maxcol 80

                 2.eng   1.eng    0.eng   1.tech   0.tech  1.admin   0.admin     view the columns as processes.  for
                                                                                 example, the engineering education
 change.eng                        1.0                                           process two years before an engineer
 change.tech                        .3              1.0                          is "produced" would require certain
 change.admin    -2.0      .6       .1     -1.9      .9                1.0       inputs.  there are 2 types of inputs -
 change.man                                                   -2.0     1.0       "input" which are short-term - only in
 input.eng        -.17    -.14              -.02                                 that period as support - and "change"
 input.tech       -.09                      -.18               -.16              which is transformed permenantly into
 input.admin                                                   -.04              into a new kind of labor or reverts
                                                                                 to its old classification.  in the
                                                                                 model these permenant changes ("flows")
                                                                                 are then summed up (a "stock").

$Maxcol 72


 Table ldg(s,s)  labor downgrading coefficients
                                                                        the labor downgrading and upgrading mechanisms
                 eng   tech   admin    man                              are only for short-term (annual) adjustments.

 eng            -1.0                                                    labor downgrading can occur throughout the
 tech            1.0   -1.0                                             model horizon and is a one-to-one replacement.
 admin                  1.0    -1.0
 man                            1.0   -1.0                              labor upgrading on the other hand is costly to
 unskill                               1.0                              the economy (eg. to replace 1 engineer requires
                                                                        1 technician, .5 administrators and 4 manuals)
                                                                        and is applicable in the first 2 periods only
 Table lug(s,s)  labor upgrading coefficients                           (after when the endogenous educational activi-
                                                                        ties come on stream).  the exception is the
                 eng   tech   admin    man                              movement of unskilled rural labor into the
                                                                        urban labor force which can occur through the
 eng             1.0                                                    entire model horizon.  the cost to the economy
 tech           -1.0    1.0                                             is reflected in the requirement of inputs by
 admin          -0.5   -1.0    1.0                                      the service sector (parameter ssr and material
 man            -4.0   -2.0   -3.0     1.0                              balance constraint).  the time nature of labor
 unskill                              -1.0                              upgrading is set in the parameter lugt below.

$Maxcol 120

 Parameter lugt(s,sp,te) time allowed labor upgrading coefficients ;
 lugt(s,sp,te)             = lug(s,sp)$sst(te,sp);

 lreq0(s,j)$t1968(j,"gvp") = labor(j,s) / t1968(j,"gvp") ;
 sigt(s,j,te)              = (1/(1 + sigma(j,s)/100))**(interval*(ord(te)-1)) ;
 lreq(s,j,te)              = sigt(s,j,te) * lreq0(s,j) ;

 mrs                       = wage1960/(mpc/100);
 alr(te)                   = 1 / ((mrs/1000) * (1 + sigma("agri","unskill")/100)**(8+(interval*(ord(te)-1))));

 Display lugt,lreq0,lreq,sigt,mrs,alr;
 Parameter length; length(s) = max(0, smax((sp,l)$sf("change",sp,l,s), ord(l)));
 Display length;

$Stitle trade and capital data

 Set       rsfdp(te) reset limits on capital inflows in case 7 for following periods /

                     1974, 1977, 1980, 1983 /

 Parameter pfc(te)   foreign concessional capital inflows (billions of 1960 pesos) /

                     1968   2.1,  1971   4.3,  1974   4.7,  1977   4.3,  1980   3.1,  1983   1.5,  1986   -.5    /

           infc(te)  interest on fc (billions of 1960 pesos) /

                     1968   -1.4, 1971   -1.9, 1974   -2.7, 1977   -3.4, 1980   -4.0, 1983   -4.4, 1986   -4.2   /

           es(i)     export share of subsidized high-cost export manufactures in 1986 /

                     food   .409, text   .064, wood   .044, chem   .183, n-met   .022, b-met   .064, mach   .214 /

           fdpup(t)  upper bound on direct foreign capital inflows during each period /

                     1971   5, 1974   5.5, 1977   5.5, 1980   5.5, 1983   5.5, 1986   5.0 /

           zmi(te,tep)  linear decreasing factor for nominal implicit protection rate

 Scalar    dpc          cost level of high cost manufacture relative to foreign exch earnings (1)       /  1.3   /
           rcd          rate of change of cost differential from 30% to 0 (% points each interval)
           cfdp         upper bound on cumulative foreign direct inflows                                / 30     /;

 rcd       = (dpc - 1)/card(t);
 zmi(t,tp) = dpc - rcd*(ord(t) - ord(tp));
 Display rcd,zmi;

 Table begr(*,*) bounds on export growth rates

                    lower    upper
 agri                2.0      6.0
 mine                         4.0
 petrol                       1.5
 food                         6.0
 text                         4.5
 wood                         6.0
 chem                        10.0
 n-met                        7.5
 b-met                       10.0
 mach                        12.0
 tourism             8.0     13.0

 Parameter e0(i)       base year (1968) export levels (billions of 1960 pesos)
           elo(i,te)   lower bound on export levels (billions of 1960 pesos)
           eup(i,te)   upper bound on export levels (billions of 1960 pesos)
           z0          base year (1968) earnings from tourism (billions of 1960 pesos)
           zlo(te)     lower bound on earnings from tourism (billions of 1960 pesos)
           zup(te)     upper bound on earnings from tourism (billions of 1960 pesos);

 e0(i)         = ax68(i,"exp");
 elo(i,te)     = e0(i) * (1 + begr(i,"lower")/100)**(interval*(ord(te)-1)) ;
 eup(i,te)     = e0(i) * (1 + begr(i,"upper")/100)**(interval*(ord(te)-1)) ;

 z0           = sum(i, ax68(i,"tc"));
 zlo(te)      = z0 * (1 + begr("tourism","lower")/100)**(interval*(ord(te)-1)) ;
 zup(te)      = z0 * (1 + begr("tourism","upper")/100)**(interval*(ord(te)-1)) ;
 Display e0, elo,eup,z0,zlo,zup;

$Stitle "special" initial and terminal conditions

 Parameter deltae      post-terminal year increment in exports (billions of 1960 pesos)
           deltaz      post-terminal year increment in tourist expenditures(billions of 1960 pesos)

 Scalar    con68     aggregate consumption  in 1968                                  / 208.8 /
           inv68     aggregate investment in 1968                                    /  55   /
           sav68     aggregate savings in 1968                                       /  52.1 /
           gdp68     gross domestic product in 1968                                  / 260.9 /
           infdpt    interest & profit remitaances on capital borrowed prior to plan /   4.9 /
           rgap68    resource gap in 1968                                            /   2.9 /
           eazt68    foreign exchange earned from exports and tourism in 1968        / -18.1 /
           fc68      concessional capital inflow in 1968                             /   2.1 /
           fdp68     direct foreign capital inflow in 1968                           /   6.0 /
           infdp68   interest & profit remittances in 1968 on foreign direct capital /  -3.8 /;

 deltae(im)       = eup(im,"1989") - eup(im,"1986");
 deltae("total")  = sum(im, deltae(im));
 deltae(i)$csm(i) = csm(i)*deltae("total");

 deltaz(id)     = zlo("1989")*apz(id,"1989") - zlo("1986")*apz(id,"1986");

 Display deltae,deltaz;

$Stitle model parameterizations

 Scalar mps      marginal propensity to save                                        /  .3  /
        g        growth rate - annual                                               /  .07 /
        r        discount rate                                                      /  .15 /
        beta     present value
        betatr   present value for year 7 in discounted maximand
        gamma    growth factor - three year period
        gv3      growth rate - three year period for incremental capacity variable
        acc      annual cost of capital - for private foreign capital (%)           /  .15 /
        pci      income payments for capital inflows within the horizon
        initial  initial period in model                                            / 1    /
        last     last period of optimization horizon                                / 7    /


 Parameter ts(te,tep)   time summation matrix
           ts2(te,tep)  time summation matrix - for tau from t equal 1 to t-1
           ssr(i,s)     service sector requirements to convert rural to urban labor
           betat(te)    present value
           w1(te)       weight for objective function 1
           w2a(te)      weight for first component of objective function 2
           w2b(te)      weight for second component of objective function 2
           w3(te)       weight for objective function 3;

 gamma             = (1 + g)**interval;
 gv3               = gamma - 1;
 pci               = (1 + acc)**interval - 1;
 beta              = (1 + r)**(-interval);
 betat(te)         = (1 + r)**(-(interval*(ord(te)-1)));
 betatr            = betat("1989")/(1 - beta*gamma);
 ssr("serv","man") = 2.4;

 ts(te,tep)        = 1$(ord(te) ge ord(tep));
 ts2(te,tep)       = 1$(ord(te) gt ord(tep));

 w1(te)   = 0; w1("1971") = 1;
 w2a(te)  = 0; w2a(t)     = betat(t); w2b(te)   = 0; w2b("1989")  = betatr;
 w3(te)   = 0; w3("1989") = 1;
 Display ts,ts2,mps,g,r,beta,betat,betatr,gamma,gv3,acc,pci,ssr,w1,w2a,w2b,w3;

$Stitle model definition

 Equations

  mb(i,te)     material balance constraint                                       (10e9 pesos)
  cap(j,te)    capacity constraint                                               (10e9 pesos)
  tic(i,te)    terminal year investment constraint                               (10e9 pesos)
  ldsc(s,te)   labor demand and supply constraint                                (10e6 man y)
  drql(s,te)   definition of labor requirements                                  (10e6 man y)
  trql(s,te)   terminal year labor requirements                                  (10e6 man y)
  exdef(te)    exports definition                                                (10e9 pesos)
  fexch(te)    foreign exchange constraint                                       (10e9 pesos)
  fgap(te)     resource gap definition                                           (10e9 pesos)
  ffdp         bound on cumulative direct private capital inflows                (10e9 pesos)
  ginv(te)     aggregate investment definition                                   (10e9 pesos)
  gsav(te)     gross savings definition                                          (10e9 pesos)
  ggdp(te)     gross domestic product definition                                 (10e9 pesos)
  h(te)        gradualist consumption path                                       (10e9 pesos)
  tcc(te)      terminal conditions on consumption - in place of h                (10e9 pesos)
  dsc(te)      domestic savings constraint                                       (10e9 pesos)
  obj1         objective function: base case - maximize initial consumption      (10e9 pesos)
  obj2         objective function: case 3 - maximize discounted consumption      (10e9 pesos)
  obj3         objective function: case 4 - maximize terminal consumption        (10e9 pesos)


 Variables

  rgap(te)     resource gap in year t                                            (10e9 pesos)
  max1         maximand: maximization of initial consumption                     (10e9 pesos)
  max2         maximand: maximization of discounted consumption                  (10e9 pesos)
  max3         maximand: maximization of terminal consumption                    (10e9 pesos)


 Positive Variables

  x(jd,te)     gross output of sector j in year t                                (10e9 pesos)
  v(jd,te)     one-year increase in cap of sector - investment resources expended(10e9 pesos)
  ld(s,te)     labor downgraded from category s in year t                        (10e6 man y)
  ul(s,te)     labor upgraded into category s in year t                          (10e6 man y)
  ka(te)       capital added to agriculture in substitution for unskilled labor  (10e9 pesos)
  ed(s,te)     education processes for human capital - skill s first available   (10e6 man y)
  rql(s,te)    requirements for labor skill s in year t                          (10e6 man y)
  e(i,te)      exports of item i in year t                                       (10e9 pesos)
  em(te)       exports of high-cost manufactures - first exported in year t      (10e9 pesos)
  ea(te)       aggregate merchandize exports in year t                           (10e9 pesos)
  zt(te)       earning from tourism in year t                                    (10e9 pesos)
  fdp(te)      foreign direct private capital inflows net of amortization        (10e9 pesos)
  inv(te)      gross domestic investment in year t                               (10e9 pesos)
  sav(te)      gross domestic savings in year t                                  (10e9 pesos)
  con(te)      aggregate consumption expenditures - household & government       (10e9 pesos)
  gdp(te)      gross domestic product in year t                                  (10e9 pesos)
  infdp        interest & profit remittances on foreign direct capital- prior    (10e9 pesos)
  fc(te)       concessional foreign capital inflows - net of amortization        (10e9 pesos) ;

$Eject
$Double

 mb(i,t).. sum(j, a(i,j,t)*x(j,t) + b(i,j,t)*v(j,t)) + bk(i,"agri",t)*ka(t) + apc(i,t)*con(t) + apz(i,t)*zt(t)
         + es(i)*sum(tep$ts(t,tep), zmi(t,tep)*em(tep)) + e(i,t)$im(i) + csm(i)*ea(t) + sum(s, ssr(i,s)*ul(s,t)) =l= 0;

 cap(j,t).. x(j,t) =l= x0(j) + interval*sum(te$ts2(t,te), v(j,te));

 tic(i,te)$(ord(te) gt last)..
  apc(i,te-1)*(con(te) - con(te-1)) + gv3*sum(j, b(i,j,te-1)*v(j,te-1)) + deltae(i) + deltaz(i)
                                                             =l= interval*sum(j, -a(i,j,te-1)*v(j,te-1));

 drql(s,t).. sum(j, lreq(s,j,t)*x(j,t)) - alr(t)*(ka(t) + interval*sum(te$ts2(t,te), ka(te)))$sun(s) =e= rql(s,t);

 trql(s,te)$(ord(te) gt last)..
 sum(j, lreq(s,j,te)*(x(j,te-1) + interval*v(j,te-1))) - interval*alr(te)*sum(tep$ts2(te,tep), ka(tep))$sun(s)
                                 =e= rql(s,te);
$Maxcol 73
$Single

 ldsc(s,te)$(ord(te) gt initial)..
  rql(s,te) =l=                                                          requirement of s is less than or equal to
      ls(te,s)                                                                supply of s
    + sum(sp, ldg(s,sp)*ld(sp,te) + lugt(s,sp,te)*ul(sp,te))             plus labor downgraded out of s
                                                                         plus labor upgraded out of s
    + sum((tep,sp,l)$(((ord(tep)+(ord(l)-1)) gt length(sp))$ts(te,tep)), plus the sum of the net change in s due to
                     sf("change",s,l,sp)*ed(sp,tep+(ord(l)-1)))               education over the sets tep(years), sp
                                                                              (other labor groups) and l (lag) such
                                                                              that these activities are possible in t
    + sum((sp,l)$((ord(te)+(ord(l)-1)) gt length(sp)),                   plus the sum of the inputs of s required for
                 sf("input",s,l,sp)*ed(sp,te+(ord(l)-1)));                    education over the sets sp (other labor)
                                                                              and l such that these actvities are
                                                                              possible in year t.
$Double
$Maxcol 120

 exdef(t)..      pvv*ea(t) =e= sum(im, e(im,t)) + sum(tp$ts(t,tp), em(tp));

 fexch(t)..      sum(inc, apc(inc,t)*con(t) + bk(inc,"agri",t)*ka(t)
                        + sum(j, a(inc,j,t)*x(j,t) + b(inc,j,t)*v(j,t)) ) =e= ea(t) + zt(t) + rgap(t);

 fgap(t)..       rgap(t) - fc(t) - fdp(t) + infdp + pci*sum(tp$ts2(t,tp),  fdp(tp)) =e= infc(t);

 ffdp..          sum(t, fdp(t)) =l= cfdp;

 ginv(te)$(ord(te) le last)..  sum(j, k(j,te)*v(j,te)) + ka(te) =e= inv(te);

 gsav(t)..       inv(t) =e= sav(t) + rgap(t);

 ggdp(t)..       con(t) + sav(t) =e= gdp(t);

 dsc(te)$t(te).. sav(te) - sav(te-1) =l= mps*(gdp(te) - gdp(te-1));

 h(te)$t(te)..   con(te+1) - con(te) =e= gamma * (con(te) - con(te-1));

 tcc(te)$(ord(te) gt last).. con(te) =e= gamma*con(te-1);

 obj1..          max1 =e= sum(te, w1(te)*con(te));

 obj2..          max2 =e= sum(te, (w2a(te) + w2b(te))*con(te));

 obj3..          max3 =e= sum(te, w3(te)*con(te));

$Single

$Stitle model definitions and bounds

*initial conditions:
 con.fx("1968") = con68;
 inv.fx("1968") = inv68;
 sav.fx("1968") = sav68;
 gdp.fx("1968") = gdp68;

 fdp.up(t)      = fdpup(t);

 infdp.fx       = infdpt;
 fc.fx(t)       = pfc(t);

 e.lo(im,t)     = elo(im,t);
 e.up(im,t)     = eup(im,t);

 zt.lo(t)       = zlo(t);
 zt.up(t)       = zup(t);

 Model din0  dinamico base case modeland manne cases 6 and 8 /

             mb, cap, tic, ldsc, drql, trql, exdef, fexch, fgap, ffdp, ginv, gsav, ggdp, dsc, h, obj1, obj2, obj3 /

       din1  dinamico model for manne cases 3 and 4 /

             mb, cap, tic, ldsc, drql, trql, exdef, fexch, fgap, ffdp, ginv, gsav, ggdp, dsc, tcc, obj1, obj2, obj3 /

       din2  dinamico model for manne case 7  /

             mb, cap, tic, exdef, fexch, fgap, ffdp, ginv, gsav, ggdp, dsc, h, obj1, obj2, obj3 /

$Stitle d i n a m i c o - report for macro model of mexico: declarations

 Set t1(te)       / 1968, 1971, 1974, 1977, 1980, 1983, 1986 /
     ji           / agri-ka, agri-total, agri, mine , petrol, food, text , wood, chem,
                    n-met  , b-met     , mach, const, elec  , comm, trans, serv      /
     sm1          / g-d-p, consumed, savings, r-gap, investment, gdp-gr, con-gr, sav-gr, inv-gr /
     sm2          / g-d-p, consumed, savings, r-gap, investment  /
     sm3          / gdp-gr, con-gr, sav-gr, inv-gr /
     sf1          / imports, ea+zt, rgap-fexch,fcl,fdpl,infcl,infdpl,rgap-fgap /
     sf2          / imports, ea+zt, fcl, fdpl, infcl, infdpl          /
     mm(sm2,sm3)  / g-d-p.gdp-gr, consumed.con-gr, savings.sav-gr, investment.inv-gr /
     tb           / 1968-71, 1971-74, 1974-77, 1977-80, 1980-83, 1983-86 /
     mtb(tb,t1)   / 1968-71.1971, 1971-74.1974, 1974-77.1977, 1977-80.1980, 1980-83.1983, 1983-86.1986 /
     sl1          / employed, eff-sl1, dual, ori-74-80 /

     runset       / gradualist, discounted, terminal, alternate6, alternate7, alternate8 /
     run(runset)
     y74(te)      / 1974 /
     y80(te)      / 1980 /
     y7480(te)    / 1974, 1980 /
     mac11        / g-d-p, consumed, savings, investment /

 Parameter macroecon1      macroeconomic results (billions of 1960 pesos) - (table 6 pg 134)
           macroecon2      growth rates of macroeconomic variables - (table 6 pg 134)
           forexch         foreign exchange (billions of 1960 pesos) - (table 7 pg 136)
           production      levels (billions of 1960 pesos) - (table 8 pg 138)
           investment      percentage composition of net investment by sector of destination - (pg 139)
           effprices       efficiency prices of foreign exchange and tradeable manufactures - pg 141
           laborc          efficiency wages & dual variables for labor constraint ldsc - (pg 143)

           macrorun        macroeconomic results (billions of 1960 pesos) - pg 153
           resource        resource gap - financial flows (billions of 1960 pesos) - pg 155
           epfe            efficiency prices of foreign exchange and foreign aid - pg 158
           fep80           foreign exchange projections for 1980 (billions of 1960 pesos) - pg 157
           gpl80           gross production levels in 1980 (billions of 1960 pesos) - pg 159
           efw80           employment and income - pg 160;

$Stitle solution scenario and report definition: number 1

 run(runset) = no; run("gradualist") = yes;

 Solve din0 maximizing max1 using lp;

** detailed scenario report **

 macroecon1("g-d-p",t1)      = gdp.l(t1);
 macroecon1("consumed",t1)   = con.l(t1);
 macroecon1("savings",t1)    = sav.l(t1);
 macroecon1("r-gap",t1)      = rgap.l(t1);
 macroecon1("investment",t1) = inv.l(t1);
 macroecon1("r-gap","1968")  = rgap68;
 macroecon1("aps",t1)        = round(100*sav.l(t1)/gdp.l(t1),1);
 macroecon1(sm2,t1)          = round( macroecon1(sm2,t1),1);

 macroecon2(sm3,tb)          = sum((sm2,t1)$(mtb(tb,t1)*mm(sm2,sm3)),
                                   100*((macroecon1(sm2,t1)/macroecon1(sm2,t1-1))**(1/3) - 1) );
 macroecon2(sm3,"1968-86")   = sum(sm2$mm(sm2,sm3), 100*((macroecon1(sm2,"1986")/macroecon1(sm2,"1968"))**(1/18) -1) );
 macroecon2(sm3,tb)          = round( macroecon2(sm3,tb),1);
 macroecon2("inc-k-o",tb)    = round( 100*sum(t1$mtb(tb,t1), (inv.l(t1)-inv.l(t1-1))/sum(j,x.l(j,t1)-x.l(j,t1-1))), 1);
 macroecon2("mps",tb)        = round( 100*sum(t1$mtb(tb,t1), (sav.l(t1)-sav.l(t1-1))/(gdp.l(t1)-gdp.l(t1-1))), 1);

 forexch("imports",t1)     = sum(inc, apc(inc,t1)*con.l(t1) + sum(j, a(inc,j,t1)*x.l(j,t1) + b(inc,j,t1)
                            *v.l(j,t1)) + bk(inc,"agri",t1)*ka.l(t1));
 forexch("ea+zt",t1)       = -ea.l(t1) - zt.l(t1);
 forexch("imports","1968") = t1968("imp","gvp");
 forexch("ea+zt","1968")   = eazt68;
 forexch("rgap-fexch",t1)  = forexch("imports",t1) + forexch("ea+zt",t1);
 forexch("fcl",t1)         = fc.l(t1);
 forexch("fdpl",t1)        = fdp.l(t1);
 forexch("infcl",t1)       = infc(t1);
 forexch("infdpl",t1)      = -(infdp.l + pci*sum(tep$ts2(t1,tep), fdp.l(tep)));
 forexch("fcl","1968")     = fc68;
 forexch("fdpl","1968")    = fdp68;
 forexch("infcl","1968")   = infc("1968");
 forexch("infdpl","1968")  = infdp68;
 forexch("rgap-fgap",t1)   = forexch("fcl",t1) + forexch("fdpl",t1) + forexch("infcl",t1) + forexch("infdpl",t1);
 forexch(sf1,t1)           = round(forexch(sf1,t1),1);

 production(j,t1)        = round( x.l(j,t1), 1);
 production(j,"1968")    = t1968(j,"gvp");
 production(j,"1960-68") = round( 100*((t1968(j,"gvp")/xj60(j))**(1/8)-1),1);
 production(j,"1968-80") = round( 100*((production(j,"1980")/production(j,"1968"))**(1/12)-1),1);

 investment("agri-ka",t1)    = 100*ka.l(t1)/inv.l(t1);
 investment(j,t1)            = 100*(k(j,t1)*v.l(j,t1))/inv.l(t1);
 investment("agri-total",t1) = investment("agri-ka",t1) + investment("agri",t1);
 investment("**total**",t1)  = sum(j, investment(j,t1)) + investment("agri-ka",t1);
 investment(ji,t1)           = round(investment(ji,t1),1);

 effprices("for-exch",t)  =  - round(fexch.m(t)*1000,2);
 effprices("trad-manu",t) =  - round(sum(i, 1000*mb.m(i,t)*es(i)),2);
 effprices("ratio",t)     = round(effprices("for-exch",t)/effprices("trad-manu",t),2);
 effprices("for-exch","ori-74-80") = round(100*((effprices("for-exch","1974")/effprices("for-exch","1980"))**(1/6)
                                              - 1),1);
 effprices("trad-manu","ori-74-80") = round(100*((effprices("trad-manu","1974")/effprices("trad-manu","1980"))**(1/6)
                                              - 1),1);

 laborc(s,t,"eff-sl1")    = - round(ldsc.m(s,t),3);
 laborc(s,t,"dual")       = round(ldsc.m(s,t)/(sum(i, apc(i,t)*mb.m(i,t)) + apc("imp",t)*fexch.m(t)),1);
 laborc(s,"ori-74-80","eff-sl1") = round(100*((laborc(s,"1974","eff-sl1")/laborc(s,"1980","eff-sl1"))**(1/6) - 1));


** comparative report **

 macrorun(run,y7480,mac11)        = macroecon1(mac11,y7480);
 macrorun(run,"1968-80","mps")    = round(100*(sav.l("1980")-sav.l("1968"))/(gdp.l("1980")-gdp.l("1968")),1);
 macrorun(run,"1968-80","gdp-gr") = round(100*((gdp.l("1980")/gdp.l("1968"))**(1/12) - 1),1);

 resource(run,t,"fdpl")     = fdp.l(t);
 resource(run,t,"infdpl")   = forexch("infdpl",t);
 resource(run,t,"fc-infc")  = fc.l(t) + infc(t);
 resource(run,t,"res-gap")  = forexch("rgap-fgap",t);

 epfe(run,y7480,"fexch-m")      = -round(1000*fexch.m(y7480),2);
 epfe(run,y7480,"fgap-m")       = -round(1000*fgap.m(y7480),2);
 epfe(run,y7480,"relative")     = effprices("ratio",y7480);

 fep80(run,"imports","imports")   = round(forexch("imports","1980"),2);
 fep80(run,im,"export-e")         = round(e.l(im,"1980"),2);
 fep80(run,"zm4","high-cost")     = round( em.l("1971") + em.l("1974") + em.l("1977") + em.l("1980"), 2);
 fep80(run,"za4","earnings")      = ea.l("1980");
 fep80(run,"zt4","earnings")      = zt.l("1980");
 fep80(run,"resource","gap")      = forexch("rgap-fexch","1980");
 fep80("lower-bd",im,"export-e")     = e.lo(im,"1980");
 fep80("upper-bd",im,"export-e")     = e.up(im,"1980");
 fep80("lower-bd","zt4","earnings")  = zt.lo("1980");
 fep80("upper-bd","zt4","earnings")  = zt.up("1980");

 gpl80(run,j)  = round(x.l(j,"1980"),1);

 efw80(run,s,"employed")           = rql.l(s,"1980");
 efw80(run,"total-1-4","employed") = sum(s$(not sun(s)), rql.l(s,"1980"));
 efw80(run,"total-1-5","employed") = sum(s, rql.l(s,"1980"));
 efw80(run,s,"eff-wages")          = round((ldsc.m(s,"1977")+ldsc.m(s,"1980")+ldsc.m(s,"1983"))/
                                              (3*(sum(i, apc(i,"1980")*mb.m(i,"1980"))
                                                + apc("imp","1980")*fexch.m("1980"))),1);
 efw80(run,s,"income")             = round(rql.l(s,"1980")*efw80(run,s,"eff-wages"),1);
 efw80(run,"total-1-5","income")   = sum(s, efw80(run,s,"income"));
 efw80(run,"con4","aggregate")     = con.l("1980");
 efw80(run,"con4","income-t")      = round(100*efw80(run,"total-1-5","income")/efw80(run,"con4","aggregate"));
 Display macroecon1,macroecon2,forexch,production,investment,effprices,laborc,macrorun,resource,epfe,fep80,gpl80,efw80;