** Model is d121898.gms ** New base DICE-98 as of December 18, 1998. ** Calibrated to RICE1213. SETS T Time periods /1*40/ TFIRST(T) First period TLAST(T) Last period tearly(T) First 20 periods TLATE(T) Second 20 periods; SCALARS SRTP Initial rate of social time preference per year /.03/ DR Decline rate of social time preference per year /.0025719/ GL0 Growth rate of population per decade /.157/ DLAB Decline rate of pop growth per decade /.2220/ A0 Initial level of total factor productivity /.01685/ GA0 Initial growth rate for technology per decade /.055/ DELA Decline rate of technol. change per decade /.0016/ SIG0 CO2-equivalent emissions-GNP ratio /.272/ GSIGMA Growth of sigma per decade /-.13/ desig Decline rate of decarbonization /.016/ desig2 Quadratic term in decarbonization /-.00052/ DK Depreciation rate on capital per year /.10/ GAMA Capital elasticity in production function /.30/ MAT1990 Concentration in atmosphere 1990 (b.t.c.) /735/ MU1990 Concentration in upper strata 1990 (b.t.c) /781/ ML1990 Concentration in lower strata 1990 (b.t.c) /19230/ b11 Carbon cycle transition matrix /0.66616/ b12 Carbon cycle transition matrix /0.33384/ b21 Carbon cycle transition matrix /0.27607/ b22 Carbon cycle transition matrix /0.60897/ b23 Carbon cycle transition matrix /0.11496/ b32 Carbon cycle transition matrix /0.00422/ b33 Carbon cycle transition matrix /0.99578/ TL0 1985 lower strat. temp change (C) from 1900 /.06/ T0 1985 atmospheric temp change (C)from 1900 /.43/ Q0 1990 world gross output trill 90 US dollars /21.08/ LL0 1990 world population millions /5632.7/ K0 1990 value capital trill 1990 US dollars /47/ C1 Climate-equation coefficient for upper level /.226/ LAM Climate feedback factor /1.41/ C3 Transfer coeffic. upper to lower stratum /.440/ C4 Transfer coeffic for lower level /.02/ A1 Damage coeff linear term /.00071/ A2 Damage coeff quadratic term /.00242/ COST10 Intercept control cost function /.045/ COST2 Exponent of control cost function /2.15/ ET0 C Emiss from deforest (bill tons per dec) /11.28/ dmiufunc Decline in cost of abatement function (per decade) /.26/ decmiu Change in decline of cost function /.02/ coefopt1 Scaling coefficient in the objective function /.333187/ coefopt2 Scaling coefficient in the objective function /5135680.6/ ; PARAMETERS L(T) Level of population and labor AL(T) Level of total factor productivity SIGMA(T) CO2-equivalent-emissions output ratio R(T) Instantaeous rate of social time preference RR(T) Average utility social discount rate GA(T) Growth rate of productivity from 0 to T FORCOTH(T) Exogenous forcing for other greenhouse gases GL(T) Growth rate of labor 0 to T gcost1 GSIG(T) Cumulative improvement of energy efficiency ETREE(T) Emissions from deforestation cost1(t) cost function for abatement ; TFIRST(T) = YES$(ORD(T) EQ 1); TLAST(T) = YES$(ORD(T) EQ CARD(T)); TEARLY(T) = YES$(ORD(T) LE 20); TLATE(T) = YES$(ORD(T) GE 21); DISPLAY TFIRST, TLAST; GL(T) = (GL0/DLAB)*(1-exp(-DLAB*(ord(t)-1))); L(T)=LL0*exp(GL(t)); ga(T)=ga0*EXP(-dela*10*(ORD(T)-1)); al("1") = a0; LOOP(T, al(T+1)=al(T)/((1-ga(T))); ); gsig(T)=gsigma*EXP ( -desig*10*(ORD(T)-1) - desig2*10* ((ord(t)-1)**2) ) ; sigma("1")=sig0; LOOP(T, sigma(T+1)=(sigma(T)/((1-gsig(T+1)))); ); gcost1(T)=dmiufunc*EXP(-decmiu*10*(ORD(T)-1)); cost1("1")=cost10; LOOP(T, cost1(T+1)=cost1(T)/((1+gcost1(T+1))); ); ETREE(T) = ET0*(1-0.1)**(ord(T)-1); R(T)=srtp*EXP(-DR*10*(ORD(T)-1)); RR("1")=1; LOOP(T, RR(T+1)=RR(T)/((1+R(T))**10); ); FORCOTH(T)=(-0.15-0.02285*(ORD(T)-1)+0.0077*(ORD(T)-1)**2)$ (ORD(T) LT 12) + 0.53$(ORD(T) GE 12); VARIABLES MIU(T) Emission control rate GHGs FORC(T) Radiative forcing, W per m2 TE(T) Temperature, atmosphere C TL(T) Temperature, lower ocean C MAT(T) Carbon concentration in atmosphere (b.t.c.) MU(T) Carbon concentration in shallow oceans (b.t.c.) ML(T) Carbon concentration in lower oceans (b.t.c.) E(T) CO2-equivalent emissions bill t C(T) Consumption trill US dollars K(T) Capital stock trill US dollars CPC(T) Per capita consumption thousands US dol PCY(t) Per capita income thousands US dol I(T) Investment trill US dollars S(T) Savings rate as fraction of GWP RI(T) Real interest rate per annum Y(T) Output UTILITY; POSITIVE VARIABLES MIU, TE, E, Mat, mu, ml, Y, C, K, I ; EQUATIONS UTIL Objective function YY(T) Output equation CC(T) Consumption equation KK(T) Capital balance equation KK0(T) Initial condition for K KC(T) Terminal condition for K CPCE(t) Per capita consumption definition PCYE(T) Per capita income definition EE(T) Emissions process SEQ(T) Savings rate equation RIEQ(T) Interest rate equation FORCE(T) Radiative forcing equation MMAT0(T) Starting atmospheric concentration MMAT(T) Atmospheric concentration equation MMU0(T) Initial shallow ocean concentration MMU(T) Shallow ocean concentration MML0(T) Initial lower ocean concentration MML(T) Lower ocean concentration TTE(T) Temperature-climate equation for atmosphere TTE0(T) Initial condition for atmospheric temperature TLE(T) Temperature-climate equation for lower oceans TLE0(T) Initial condition for lower ocean ; ** Equations of the model KK(T).. K(T+1) =L= (1-DK)**10 *K(T)+10*I(T); KK0(TFIRST).. K(TFIRST) =E= K0; KC(TLAST).. .02*K(TLAST) =L= I(TLAST); EE(T).. E(T)=G=10*SIGMA(T)*(1-MIU(T))*AL(T)*L(T)**(1-GAMA)*K(T)**GAMA + ETREE(T); FORCE(T).. FORC(T) =E= 4.1*((log(Mat(T)/596.4)/log(2)))+FORCOTH(T); MMAT0(TFIRST).. MAT(TFIRST) =E= MAT1990; MMU0(TFIRST).. MU(TFIRST) =E= MU1990; MML0(TFIRST).. ML(TFIRST) =E= ML1990; MMAT(T+1).. MAT(T+1) =E= MAT(T)*b11+E(T)+MU(T)*b21; MML(T+1).. ML(T+1) =E= ML(T)*b33+b23*MU(T); MMU(T+1).. MU(T+1) =E= MAT(T)*b12+MU(T)*b22+ML(T)*b32; TTE0(TFIRST).. TE(TFIRST) =E= T0; TTE(T+1).. TE(T+1) =E= TE(t)+C1*(FORC(t)-LAM*TE(t)-C3*(TE(t)-TL(t))); TLE0(TFIRST).. TL(TFIRST) =E= TL0; TLE(T+1).. TL(T+1) =E= TL(T)+C4*(TE(T)-TL(T)); YY(T).. Y(T) =E= AL(T)*L(T)**(1-GAMA)*K(T)**GAMA*(1-cost1(t)*(MIU(T)**cost2)) /(1+a1*TE(T)+ a2*TE(T)**2); SEQ(T).. S(T) =e= I(T)/(.001+Y(T)); RIEQ(T).. RI(T) =E= GAMA*Y(T)/K(T)- (1-(1-DK)**10)/10 ; CC(T).. C(T) =E= Y(T)-I(T); CPCE(T).. CPC(T) =e= C(T)*1000/L(T); PCYE(T).. PCY(T) =e= Y(T)*1000/L(T); UTIL.. UTILITY =E= SUM(T, 10 *RR(T)*L(T)*LOG(C(T)/L(T))/coefopt1)+ coefopt2 ; ** Upper and Lower Bounds: General conditions imposed for stability MIU.up(T) = 1.0; MIU.lo(T) = 0.000001; K.lo(T) = 1; TE.up(t) = 12; MAT.lo(T) = 10; MU.lo(t) = 100; ML.lo(t) = 1000; C.lo(T) = 2; ** Emissions control policy. Current setting is for optimal policy. ** Reinstate equation "Miu.fx(t) = .0" for no-control run. *MIU.fx(t)=.0; ** Solution options option iterlim = 99900; option reslim = 99999; option solprint = on; option limrow = 0; option limcol = 0; model CO2 /all/; solve CO2 maximizing UTILITY using nlp ; solve CO2 maximizing UTILITY using nlp ; solve CO2 maximizing UTILITY using nlp ; ** Display of results display y.l, c.l, s.l, k.l, miu.l, e.l, te.l, forc.l, ri.l; display cc.m, ee.m, kk.m, tte.m, cpc.l, tl.l, pcy.l, i.l; display sigma, rr, l, al, forcoth, etree; display mat.l,mu.l,ml.l; Parameters Year(t) Date Indem(t) Industrial emissions (b.t.c. per year) Wem(t) Total emissions (b.t.c. per year); Year(t) = 1995 +10*(ord(t)-1); Indem(t) = e.l(t)-etree(t); Wem(t) = e.l(t); Parameters Tax(t) Carbon tax ($ per ton) damtax(t) Concentration tax ($ per ton) dam(t) Damages cost(t) Abatement costs; tax(t) = -1*ee.m(t)*1000/(kk.m(t)); damtax(t) = -1*mmat.m(t)*1000/kk.m(t); dam(t) = y.l(t)*(1-1/(1+a1*te.l(t)+ a2*te.l(t)**2)); cost(t) = y.l(t)*(cost1(t)*(miu.l(t)**cost2)); File d98oute; D98oute.pc=5; D98oute.pw=250; Put d98oute; Put / "base (no control) run"; Put / "year"; Loop (tearly, put year(tearly)::0); Put / "output"; Loop (tearly, put y.l(tearly)::3); Put / "pccon"; Loop (tearly, put cpc.l(tearly)::3); Put / "savrate"; Loop (tearly, put s.l(tearly)::4); Put / "indem"; Loop (tearly, put indem(tearly)::4); Put / "sigma"; Loop (tearly, put sigma(tearly)::4); Put / "temp"; Loop (tearly, put te.l(tearly)::3); Put / "conc"; Loop (tearly, put mat.l(tearly)::3); Put / "ctax"; Loop (tearly, put tax(tearly)::2); Put / "intrate"; Loop (tearly, put ri.l(tearly)::3); Put / "discrate"; Loop (tearly, put rr(tearly)::5); Put / "prod"; Loop (tearly, put al(tearly)::3); Put / "exogforc"; Loop (tearly, put forcoth(tearly)::3); Put / "pop"; Loop (tearly, put l(tearly)::3); Put / "etree"; Loop (tearly, put etree(tearly)::4); Put / "margy"; Loop (tearly, put yy.m(tearly)::3); Put / "margc"; Loop (tearly, put cc.m(tearly)::3); Put / "miu"; Loop (tearly, put miu.l(tearly)::3); Put / "total emissions"; Loop (tearly, put wem(tearly)::3); Put / "interest rate"; Loop (tearly, put ri.l(tearly)::4); Put / "damages"; Loop (tearly, put dam(tearly)::5); Put / "abatement cost"; Loop (tearly, put cost(tearly)::5); Put /"objective function"; Put utility.l::3; File d98outL; D98outL.pc=5; D98outL.pw=250; Put d98outL; Put / "base (no control) run"; Put / "year"; Loop (tlate, put year(tlate)::0); Put / "output"; Loop (tlate, put y.l(tlate)::3); Put / "pccon"; Loop (tlate, put cpc.l(tlate)::3); Put / "savrate"; Loop (tlate, put s.l(tlate)::4); Put / "indem"; Loop (tlate, put indem(tlate)::4); Put / "sigma"; Loop (tlate, put sigma(tlate)::4); Put / "temp"; Loop (tlate, put te.l(tlate)::3); Put / "conc"; Loop (tlate, put mat.l(tlate)::3); Put / "ctax"; Loop (tlate, put tax(tlate)::2); Put / "intrate"; Loop (tlate, put ri.l(tlate)::3); Put / "discrate"; Loop (tlate, put rr(tlate)::5); Put / "prod"; Loop (tlate, put al(tlate)::3); Put / "exogforc"; Loop (tlate, put forcoth(tlate)::3); Put / "pop"; Loop (tlate, put l(tlate)::3); Put / "etree"; Loop (tlate, put etree(tlate)::4); Put / "margy"; Loop (tlate, put yy.m(tlate)::3); Put / "margc"; Loop (tlate, put cc.m(tlate)::3); Put / "miu"; Loop (tlate, put miu.l(tlate)::3); Put / "total emissions"; Loop (tlate, put wem(tlate)::3); Put / "interest rate"; Loop (tlate, put ri.l(tlate)::4); Put / "damages"; Loop (tlate, put dam(tlate)::5); Put / "abatement cost"; Loop (tlate, put cost(tlate)::5); display gsig, sigma; display ga, al, cost1, gcost1, tax;