Description
Accounting for Economic Growth with New Inputs.
Large Model of Types : MPSGE mcp
Category : GAMS Model library
Main file : dmcmge.gms
$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;