* SEEP Model of William D. Nordhaus
* This is the GAMS programming model used for the runs described in
* William D. Nordhaus, The Swedish Nuclear Dilemma: Energy and the Environment,
* Resources for the Future, Washington, D.C., 1997. (Also published in
* Swedish as Krnkraft och Milj ù ett Svenskt Dilemma, SNS Frlag, Stockholm, 1996.)
* This is the base case with nuclear discontinuation in 2010.
* Program name is "nfbase"
* Gams program for Swedish nuclear power phaseout as of September 20, 1995.
* Note that initial period (T=1) is 1994 and terminal period (T=37) is 2030 reflecting maximum
50 year lifetime.
* All economic data in 1990 Swedish kroner at exchange rate of 7 kronor to US dollar.
* Note: T = 1 for 1994 ; T = 7 for 2000 ; T = 17 for 2010 ; T = 37 for 2030
SETS T Time periods /1*37/
TFIRST(T) First period
TLAST(T) Last period
SCALARS
NUCCAP Nuclear capacity in TWH /70.2/
YRPHASE Year of nuclear phaseout 27 equals 2020 /17/
R Discount rate /.05/
GA0 Initial growth rate of GDP per year 1994 to 2010 /.0195/
DELA Decline rate of technology per year /.0010 /
Q0 1994 Swedish GDP billions of 90 SKR /1319/
UTIL0 Intercept of the felicity function /1319/
UTILCON Constant of utility function /177.85/
A0 Intercept of productivity function /1/
Sigmane Elasticity of substitution in nonelectric /2/
CESoilne Share coefficient oil in the CES /.30/
CESelne Share coefficient elec in the CES /.19/
CESgasne Share coefficient gas in the CES /.06/
CEScolne Share coefficient coal in the CES /.06/
CESbione Share coefficient biofuels in the CES /.19/
ALFELEC Share or exponent of electricity in util /.0218/
ALFNONEL Share or exponent of nonelectricity in util /.0715 /
ALFtrans Share or exponent of transportation in util /.049/
ELAStran Demand elasticity for transport sector /.5/
ELASel Demand elasticity for electric sector /.5/
ELASoth Demand elasticity for other sector /.5/
DEMtrans Initial demand for transport sector /96.2/
DEMel Initial demand for electric sector /75.5/
DEMoth Initial demand for other sector thermal /402.3/
EMCO2GAS CO2 emiss of gas mill t CO2 per TwhThermal /.1813/
EMCO2COL CO2 emissions of coal /.3182/
EMCO2OIL CO2 emissions of oil /.251/
EMCO2oth CO2 emissions from other elect per TWe /.59/
EMCO2bio CO2 emissions of biofuels /.0/
EMSO2GAS SO2 emissions of gas thous t SO2 per Twh /.0/
EMSO2COL SO2 emissions of coal /.5/
EMSO2OIL SO2 emissions of oil /.38/
EMSO2oth SO2 emissions from other elect per TWe /.25/
INTCES Intercept of CES function /5/
SC Scaling factor inside CES /1.40/
PHICO2 Shadow price for CO2 SEK per ton /.00 /
PHISO2 Shadow price for SO2 SEK per ton /0/
* Note taxes are included in distribution costs
* Note environmental taxes are excluded but shadow prices are included
DISOILTR Distribution cost for oil in trans SK per TWH /.478/
DISELEL Distribution cost for elec in spec elec /.233/
DISELne Distribution cost for elec in nonelec /.188/
DISoilne Distribution cost for oil in nonelect /.221/
DISgasne Distribution cost for gas in nonelec /.221/
DIScolne Distribution cost for coal in nonelec /.14/
DISbione Distribution cost for biofuels in nonelec /.0/
OILCOST Price of oil /.196/
GASCOST Price of gas /.196/
COALCOST Price of coal /.0365/
BIOCOST Price of biofuels /.087/
NWGASCST Generation cost new gas fired /.275/
NWCOLCST Generation cost new coal fired /.342/
NWNUCCST Generation cost new nuclear /.302/
OldNUCCT Marginal cost existing nuclear /.10/
OldHYDCT Marginal cost hydro /.05/
COldoth1 Marginal cost other electricity old1 /.2/
COldoth2 Marginal cost other electricity old2 /.25/
COldoth3 Marginal cost other electricity old3 /.3/
DECOMM Costs of decommissioning per TWH /.215/ ;
PARAMETERS
AL(T) Level of Total factor productivity
RR(T) Discount factor
GA(T) Growth rate of T. F. P. from 0 to T
DUM(T) dummy variable 0 except 1 in last period
decommct total decommissioning cost;
TFIRST(T) = YES$(ORD(T) EQ 1);
TLAST(T) = YES$(ORD(T) EQ CARD(T));
DISPLAY TFIRST, TLAST;
GA(T) = (GA0/DELA)*(1-exp(-DELA*(ord(t)-1)));
AL(T) = a0*exp(GA(t));
RR(T) = (1+R)**((1-ord(t)));
Decommct = decomm*nuccap*(1+R)**(-YRPHASE+1);
VARIABLES
EMCO2(T) CO2 emissions millions tons
EMSO2(T) SO2 emissions thousands tons
ELEC(T) Electricity generation TWH
NONELEC(T) Nonelectric energy consumption
elecnone(T) electricity to nonelectric sector
oilnone(T) oil to nonelectric sector
gasnone(T) gas to nonelectric sector
bionone(T) bio to nonelectric sector
coalnone(T) coal to nonelectric sector
elecelec(T) electricity to electric sector
IMPORTEL(T) Imports of electricity
COST(T) Cost of producing energy
oldHYDRO(T) Old hydro generation
oldNUC(T) Old nuclear generation
Oldoth1(T) Old other generation type 1
Oldoth2(T) Old other generation type 2
Oldoth3(T) Old other generation type 3
noneTW(T) Energy in nonelectric sector
newGAS(T) New gas fired generation
newCOAL(T) New coal fired generation
newNUC(T) New nuclear generation
TRANS(T) Transportation
Oiltrans(T) Oil to transportation
FELICITY(T) Felicity function at time t
UTILITY;
POSITIVE VARIABLES EMCO2, EMSO2, ELEC, NONELEC, elecnone,
oilnone, gasnone, bionone, coalnone, elecelec, IMPORTEL, COST, oldHYDRO,
oldNUC, Oldoth1, oldoth2, oldoth3, noneTW, newGAS, newCOAL, newNUC, TRANS, Oiltrans,
FELICITY;
EQUATIONS
UTIL Utility function
COSTEQ(T) Cost equation
ELECprEQ(T) Electricity production equation
elecdreq(T) Electricity distribution equation
FELICEQ(T) Felicity equation
TRANSEQ(T) Transport equation
noneTWeq(T) Equation for energy in nonelectric
SO2EMEQ(T) SO2 emissions equation
CO2EMEQ(T) CO2 emissions equation
NOELECEQ(T) Other energy equation;
COSTEQ(T).. Cost(T) =E=
OLDNUCCT*oldNUC(T)+OLDHYdCT*oldHYDRO(T) +COLDoth1*oldoth1(T)
+COLDoth2*oldoth2(T)+COLDoth3*oldoth3(T)
+NwnucCsT*newnuc(T)+nwgasCsT*newgas(T)+nwcolCsT*newcoal(T)
+ (OILCOST+disoiltr)*OILtrans(T)
+ (oilcost+DISoilne)*oilnone(T)+diselne*elecnone(T)
+ (gascost+DISgasne)*gasnone(T) + (biocost+DISgasne)*bionone(T)
+ (coalcost+DIScolne)*coalnone(T)+ diselel*elecelec(T)
+ emso2(t)*phiso2 + emco2(t)*phico2;
noneTWeq(T).. nonetw(T) =E= OILnone(T)+ elecnone(T)*3 +
gasnone(T)+coalnone(T)+bionone(T);
NOELECEQ(T).. Nonelec(T)
=E= INTCES* (CESoilne*SC*OILnone(T)**(1-1/sigmane) +
CESelne*SC*elecnone(T)**(1-1/sigmane) +
CESgasne*SC*gasnone(T)**(1-1/sigmane)+
CEScolne*SC*coalnone(T)**(1-1/sigmane)+
CESbione*SC*bionone(T)**(1-1/sigmane))**(sigmane/(sigmane-1));
ELECprEQ(T)..Elec(T) =E= oldNUC(T) + oldHYDRO(T) + OLDOTH1(T)+oldoth2(T)+oldoth3(t)
+newnuc(t) +newgas(t) +newcoal(t);
Transeq(T).. Trans(T) =E= oiltrans(T);
elecdreq(T).. elec(t) =E= elecelec(T) + elecnone(T);
SO2EMEQ(T).. EMCO2(T) =E= EMCO2GAS*newGAS(T) *2
+ EMCO2OIL*OILnone(T) + EMCO2COL*newCOAL(T)*2.5
+ EMCO2OIL*OILtrans(T) + EMCO2oth*(oldoth1(T)+oldoth2(T)+oldoth3(T));
CO2EMEQ(T).. EMSO2(T) =E= EMSO2GAS*newGAS(T) *2
+ EMSO2OIL*OILnone(T) + EMSO2COL*newCOAL(T)*2.5
+ EMSO2OIL*OILtrans(T) + EMsO2oth*(oldoth1(T)+oldoth2(T)+oldoth3(T));
FELICEQ(T).. Felicity(T) =E= al(t)*util0*((ELECelec(T))/(Demel))**ALFELEC
*((NONELEC(T))/(demoth))**ALFNONEL
*((TRANS(T))/(Demtrans))**ALFTRANS ;
UTIL.. UTILITY =E= SUM(T,(Felicity(T)-Cost(T)+utilcon)*RR(T));
* LOWER BOUNDS AND STABILITY CONSTRAINTS
elec.lo(T) = 10;
nonelec.lo(T) = 10;
trans.lo(T) = 10;
trans.up(T) =20000;
elec.up(T) = 20000;
nonelec.up(T) = 20000;
Oldoth1.up(T) = 3.1;
Oldoth2.up(T) = 3.1;
Oldoth3.up(T) = 3.1;
OILnone.lo(T) = 1;
elecnone.lo(T) = 1;
elecelec.lo(T) = 1;
oilnone.lo(T) = 1;
gasnone.lo(T) = 1;
coalnone.lo(T) = 1;
bionone.lo(T) = 1;
ELECelec.lo(T) = 2;
nonelec.lo(T) = 2;
trans.lo(T) = 2;
* POLICY CONSTRAINTS
oldnuc.up(T) = nuccap;
newnuc.up(T) = 0;
*emco2.up(T) = 50.525;
oldhydro.up(t) = 67.8;
oldnuc.up(t)$(ord(T) gt (yrphase-1)) = 0;
* SOLUTION OPTIONS
option iterlim = 99900;
option reslim = 99999;
* option solprint = off;
option limrow = 0;
option limcol = 0;
model nucLEAR /all/;
solve NUCLEAR maximizing UTILITY using nlp ;
display oilnone.l, elecnone.l, oldnuc.l, elecpreq.m;
display nonelec.l, elecdreq.m, transeq.m, noeleceq.m;
Parameters pelec(T), pnonelec(T), ptrans(T), gdp(t), energy(T),pind(T),pres(T);
gdp(T) = q0*al(t);
pelec(T) =elecpreq.m(T)/rr(T);
pnonelec(T) = noeleceq.m(T)/rr(T);
ptrans(T) = transeq.m(T)/rr(T) ;
energy(T) = trans.l(T)+nonetw.l(T)+3*elecelec.l(T);
pind(T) = pelec(T)+.088+.047;
pres(T) = pelec(T) + .407+.047;
display rr, al;
display NONELEC.l;
display COST.l;
display FELICEQ.m, TRANSEQ.m, noneTWeq.m, SO2EMEQ.m, CO2EMEQ.m, NOELECEQ.m;
display UTIL.m, COSTEQ.m,ELECprEQ.m, elecdreq.m;
display FELICITY.l, gdp;
display oldnuc.l, oldhydro.l, oldoth1.l, oldoth2.l, oldoth3.l;
display newgas.l,newcoal.l, newnuc.l;
display emco2.l, emso2.l;
display pelec, pnonelec, ptrans,pind,pres;
display elecelec.l, trans.l, nonetw.l, elec.l;
display trans.l, elecelec.l, nonetw.l, nonelec.l,energy;
DISPLAY oilnone.l, elecnone.l, gasnone.l, coalnone.l, bionone.l;