* 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;