$title Accounting for Economic Growth with New Inputs (DMCMGE,SEQ=143) $onText Accounting for Economic Growth with New Inputs. Markusen, J R, and Feenstra, R, Accounting for Growth with New Inputs, 1993. Keywords: mixed complementarity problem, economic development, economic growth model, GAMS - MPSGE framework, economic resources $offText Set T 'time periods' / 1*12 /; Alias (T,TP); Scalar S0 / 4 / LS0 / 2 / KS0 / 1 / RS0 / 1 / X0 / 10 / LX0 / 4 / KX0 / 6 / N0 / 2 / LN0 / .8 / KN0 / 1.2 / Z0 / 12 / XZ0 / 10 / FZ0 / 2 / LSK0 / 1 / U0 / 2 / CU0 / 1 / CZU0 / 1 / SIGMA 'substitution elasticity' / 6 / BETA 'substitution exponent' DELTA 'depreciation rate' / 0.1 / RHO 'discount rate' / 0.25 / SL0 'base year labor' /100 / GLLOW 'lower bound on labor growth rate' / 0.02 / GLHIGH 'upper bound on labor growth rate' / 0.03 / SR0 'base year resources' / 50 / GRLOW 'lower bound on resource growth' / 0.01 / GRHIGH 'upper bound on resource growth' / 0.03 /; BETA = (SIGMA - 1)/SIGMA; Parameter SL(T) 'labor supply (noisy)' SR(T) 'resource supply (noisy)'; SL("1") = SL0; SR("1") = SR0; option SEED = 1001; loop(T, SL(T+1) = SL(T)*(1 + GLLOW + (GLHIGH - GLLOW)*uniform(0,1)); SR(T+1) = SR(T)*(1 + GRLOW + (GRHIGH - GRLOW)*uniform(0,1)); ); $onText $MODEL:DMC $SECTORS: S(T) X(T) N(T) Z(T) SK(T) UTIL(T) W $COMMODITIES: UTOT L(T) K(T) R(T) CX(T) FC(T) C(T) CZ(T) U(T) $CONSUMERS: CONS $AUXILIARY: SUB(T) EXPAN(T) $PROD:S(T) s:1 O:C(T) Q:S0 I:L(T) Q:LS0 I:K(T) Q:KS0 I:R(T) Q:RS0 $PROD:X(T) s:1 O:CX(T) Q:X0 I:L(T) Q:LX0 I:K(T) Q:KX0 $PROD:N(T) t:0 s:1 O:FC(TP)$(ord(TP) >= ord(T)) Q:N0 I:L(T) Q:LN0 I:K(T) Q:KN0 $PROD:Z(T) s:1 O:CZ(T) Q:Z0 A:CONS N:SUB(T) M:-1 I:CX(T) Q:XZ0 I:FC(T) Q:FZ0 $PROD:SK(T) O:K(TP)$(ord(TP) >= ord(T)) Q:((1 - DELTA)**(ord(TP) - ord(T))) I:L(T) Q:LSK0 $PROD:UTIL(T) s:1 O:U(T) Q:U0 I:C(T) Q:CU0 I:CZ(T) Q:CZU0 $PROD:W s:1.5 O:UTOT I:U(T) Q:((1 + RHO)**(1 - ord(T))) $DEMAND:CONS E:L(T) Q:SL(T) E:R(T) Q:SR(T) E:CZ(T) R:EXPAN(T) D:UTOT $CONSTRAINT:EXPAN(T) EXPAN(T) =g= Z0**(1/BETA)*Z(T)**(1/BETA) - Z0*Z(T); $CONSTRAINT:SUB(T) SUB(T) =g= EXPAN(T)/(Z0*Z(T)); $offText $sysInclude mpsgeset DMC * OMIT THE IRTS STUFF FOR THE FIRST PASS: EXPAN.fx(T) = 0; SUB.fx(T) = 0; * SPECIFY A NUMERAIRE: UTOT.fx = 1; * GENERATE AND SOLVE THE CRTS MODEL: $include DMC.GEN solve DMC using mcp; EXPAN.up(T) = +inf; SUB.up(T) = +inf; EXPAN.l(T) = Z0**(1/BETA)*Z.l(T)**(1/BETA) - Z0*Z.l(T); SUB.l(T) = EXPAN.l(T)/(Z0*Z.l(T)); * GENERATE AND SOLVE: $include DMC.GEN solve DMC using mcp;