GAMS [ Home | Support | Sales | Solvers | Documentation | Model Libraries | Search | Contact Us ]

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


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

Reference:
Large Model of Type: LP
$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;