$title Energy Emissions Model with Bottomup Technologies $ontext Microconsistent matrix describes benchmark transactions: X Y E RA ---------------------------------------- PX 15 -15 PY 100 -100 PE -2 -1 5 -2 PL -8 -59 -3 100-30 PK -5 -40 45 PR -2 2 Functional forms (nested CES / CD): f(E,g(K,L)) f:CES(0.5) g:CD U(c(E,h(X,Y)),L) U:cd c:CES(0.5) h:cd H(L,R) : H:CES(sigma) $offtext set g Goods /x,y/ k Technologies / ff Fossil fuel, k1*k10 /; alias (k,kk); parameter mf(k,g) Maximum fraction of supply fe(k,g) Fossil energy inputs, xcost(k,g) Marginal technology cost (capital requirement); * Generate some random technologies: mf(k,g) = uniform(0,0.15); fe(k,g) = uniform(0,0.4); xcost(k,g) = max(0, uniform(1.1,1.5) - fe(k,g)); * No limits on fossil fuel energy supply other than carbon: mf("ff",g) = 0; fe("ff",g) = 1; xcost("ff",g) = 0; * Experiment with one low-cost alternative energy source: mf("k1",g) = 0; fe("k1",g) = 0; xcost("k1",g) = 1.05; parameter y0(g) Output /x 15, y 100/, ed0(g) Energy demand /x 2, y 1/ ld0(g) Labor demand /x 8, y 59/ kd0(g) Capital demand /x 5, y 40/ c0 Consumption /117/ ec0 Energy in final consumption /2/ cd0(g) Consumption of goods /x 15, y 100/ sigma Elasticity in consumption /0.4/, t(g) Energy tax rates tc Energy tax in consumption /0/ etarget Emissions target /1/; t(g) = 0; $ontext $model:energy $sectors: Y(g) ! Non-energy production X(k,g) ! Energy using technologies C ! Final consumption E ! Energy supply $commodities: PC ! Composite price of consumption P(g) ! Goods prices PEN(g) ! Price of energy services MU(k,g)$mf(k,g) ! Shadow price on supply by technology PE ! Energy price PL ! Wage rate PK ! Capital price PR ! Energy resource price $consumers: RA ! Representative agent $auxiliary: TAU ! Tax multiplier $prod:Y(g) s:0.5 kl:1 o:P(g) q:y0(g) i:PEN(g) q:ed0(g) i:PL q:ld0(g) kl: i:PK q:kd0(g) kl: * Backstop energy technologies: $prod:X(k,g) s:0 o:PEN(g) q:ed0(g) o:MU(kk,g) q:(ed0(g)*mf(kk,g)) i:PE q:(ed0(g)*fe(k,g)) a:RA n:TAU m:t(g) i:PK q:(ed0(g)*xcost(k,g)) i:MU(k,g)$mf(k,g) q:ed0(g) * Maximum share for technology t is defined * by mf: * X(k,g) =L= mf(k,g) * sum(kk, X(kk,g)) $prod:C s:0.5 c:1 o:PC q:c0 i:PE q:ec0 a:RA n:TAU m:tc i:P(g) Q:cd0(g) c: $prod:E s:sigma o:PE q:5 i:PL q:3 i:PR q:2 $demand:RA s:1 d:PC q:c0 d:PL q:30 e:PL q:100 e:PK q:45 e:PR q:2 $report: v:w W:RA $constraint:TAU etarget =g= E; $offtext $sysinclude mpsgeset energy * Begin with uniform taxes at rate TAU: t(g) = 1; tc = 1; * but no taxes in the benchmark: TAU.L = 0; X.L(k,g)$(not sameas(k,"ff")) = 0; MU.L(k,g) = 0; energy.iterlim =0; $include energy.gen solve energy using mcp; abort$round(energy.objval,4) "Problem with benchmark of the MGE model."; energy.iterlim =10000; etarget = 0.2; $include energy.gen solve energy using mcp;