results files are updated
This commit is contained in:
parent
21c24e1d77
commit
906da330d3
529
Results/Fuel_Prices_JRC.gms
Normal file
529
Results/Fuel_Prices_JRC.gms
Normal file
@ -0,0 +1,529 @@
|
|||||||
|
$TITLE Small routine to generate consumer prices from long-term marginal costs and average costs
|
||||||
|
option limcol=99999, limrow=99999, solprint=on,cns=conopt4;
|
||||||
|
$onlisting
|
||||||
|
|
||||||
|
$if not set scenario $abort --scenario name is missing
|
||||||
|
|
||||||
|
sets process, commodity, region, attribute, t, v, ts, userconstraint, io/in,out/,bd;
|
||||||
|
parameter
|
||||||
|
veda_vdd(attribute, commodity, process, t, region, v, ts, userconstraint) all veda results
|
||||||
|
prc_capact(region,process) capacity to activity conversion factor
|
||||||
|
coef_af(region,v,t,process,ts,bd)
|
||||||
|
g_yrfr(region,ts) year fraction of timeslice ts
|
||||||
|
out_etsco2(commodity,t) EU-wide average ETS price
|
||||||
|
|
||||||
|
|
||||||
|
$gdxin %scenario%.gdx
|
||||||
|
$load process
|
||||||
|
$load commodity
|
||||||
|
$load region
|
||||||
|
$load attribute
|
||||||
|
$load t
|
||||||
|
$load v
|
||||||
|
$load ts
|
||||||
|
$load userconstraint
|
||||||
|
$load veda_vdd
|
||||||
|
$load bd
|
||||||
|
$load prc_capact
|
||||||
|
$load coef_af
|
||||||
|
$load g_yrfr
|
||||||
|
$load out_etsco2
|
||||||
|
$gdxin
|
||||||
|
;
|
||||||
|
|
||||||
|
parameter
|
||||||
|
afv(region,v,t,process) maximum capacity factor at annual level for a process
|
||||||
|
af(region,t,process) maximum capacity factor at annual level for a process
|
||||||
|
;
|
||||||
|
|
||||||
|
afv(region,v,t,process) = coef_af(region,v,t,process,"ANNUAL","UP")+coef_af(region,v,t,process,"ANNUAL","FX");
|
||||||
|
|
||||||
|
afv(region,v,t,process)$(sum(ts$(coef_af(region,v,t,process,ts,"UP")+coef_af(region,v,t,process,ts,"FX")),1) $(not afv(region,v,t,process))) = sum(ts, g_yrfr(region,ts)*(coef_af(region,v,t,process,ts,"UP")+coef_af(region,v,t,process,ts,"FX")));
|
||||||
|
|
||||||
|
af(region,t,process)$sum(v,afv(region,v,t,process)) = smax(v,afv(region,v,t,process));
|
||||||
|
|
||||||
|
sets
|
||||||
|
milestone(t) milestone years /2019,2020,2025,2030,2035,2040,2045,2050/
|
||||||
|
trun(t) running years /2020,2025,2030,2035,2040,2045,2050/
|
||||||
|
* trun(t) running years /2020/
|
||||||
|
r(region) regions for which the model is running /AT,BE,BG,CY,CZ,DE,DK,EE,ES,FI,FR,EL,HU,IE,IT,LT,LU,LV,MT,NL,PL,PT,RO,SE,SI,SK,UK,CH,NO,HR/
|
||||||
|
* r(region) regions for which the model is running /CH/
|
||||||
|
|
||||||
|
top(region,process,commodity,t,io)
|
||||||
|
sc_attr_long(attribute) system cost attributes /COST_act,COST_comx,Cost_Fixx, COST_flo,COST_flox,COST_fom,COST_inv,Cost_Dec,COST_invx
|
||||||
|
* Cost_Ire (this is not to be included in the equation)
|
||||||
|
/
|
||||||
|
sc_attr_short(attribute) system cost attributes /COST_act,COST_comx,COST_flo,COST_flox
|
||||||
|
* Cost_Ire (this is not to be included in the equation)
|
||||||
|
/
|
||||||
|
sc_attr_com(attribute) system cost attributes related only to commodity /cost_comx,cost_flo,cost_flox
|
||||||
|
* cost_ire (this is not to be included in the equation)
|
||||||
|
/
|
||||||
|
|
||||||
|
aux_c(commodity) commodities not be accounted in the calculations / ABRCO2c,BIOGLY1,GreenCert-TRA,INDHTHDUM,TOTCH4,AGRCO2N,AGRCO2c,AGRCO2v,AGRSCO2N,AUX_COMBATS01,AUX_COMBATS02,AUX_COMBATS03,AUX_ESTBATS101,
|
||||||
|
AUX_ESTBATS102,AUX_ESTBATS103,AUX_ESTBATS201,AUX_ESTBATS202,AUX_ESTCAESS00,AUX_ESTCAESS101,AUX_ESTCAESS102,AUX_ESTCAESS201,AUX_ESTHYDPS101,AUX_ESTHYDPS201,AUX_RSDBATS01,AUX_RSDBATS02,AUX_RSDBATS03,AUX_TRABAT,
|
||||||
|
BIODDGS,BIOGLY2,BIOPULP,BIOSAP,BIOSTIL,BRFCA1,BRFCA2,BRFCA3,BRFCO2,BRFEZ1,BRFEZ2,BRFEZ3,BRFEZ4,BRFWAT,CATACHEM,CCUCO2,CCUGCO2,CO2WOT,COMCH4N,COMCO2N,COMCO2c,COMCO2v,COMCOXN,COMCXFN,COMN2ON,COMNOXN,COMPMAN,COMPMBN,
|
||||||
|
COMSCO2N,COMSF6N,COMSO2N,COMVOCN,DUMGrw,DUM_ELCCO2N,DUM_SUPCO2N,ELCCH4N,ELCCO2I,ELCCO2N,ELCCO2P,ELCCO2c,ELCCO2v,ELCCOXN,ELCLossInTransmsn,ELCN2ON,ELCNOXI,ELCNOXN,ELCNUC,ELCNUCA,ELCPMAI,ELCPMAN,ELCPMBI,ELCPMBN,ELCSCO2GN,
|
||||||
|
ELCSCO2N,ELCSO2I,ELCSO2N,ELCVOCI,ELCVOCN,ETS2CO2,ETSCO2,GHG,GreenCert-ELC,GreenCert-FEL,GreenCert-FGH,GreenCert-FHT,GreenCert-FIN,GreenCert-HTH,INDCBL,INDCH4N,INDCH4P,INDCO2N,INDCO2P,INDCO2c,INDCO2v,INDCOXN,INDCOXP,
|
||||||
|
INDCXFN,INDCXFP,INDN2ON,INDN2OP,INDNETSCO2,INDNOXN,INDNOXP,INDPMAN,INDPMAP,INDPMBN,INDPMBP,INDSCO2GN,INDSO2N,INDSCO2N,INDSCO2P,INDSF6N,INDSF6P,INDSO2P,INDVOCN,INDVOCP,ISOBUTYL,MALBAU,MALCAL,MALSCR,MCMCLK,MCUORE,MCUSCR,
|
||||||
|
MCUSCU,MGHRYC,MISBFS,MISCST,MISDIR,MISORE,MISOXY,MISPLT,MISQLI,MISRFC,MISRIR,MISSCR,MISSNT,MLMSTN,MPPGYP,MPPKAO,MPPNOH,MPPOXY,MPPPUP,MPPRYC,MPPWOO,NONCO2,NUCAGR,NUCCONC,NUCCONS,NUCENRE,NUCENRU1,NUCENRU2,NUCLWR,NUCU308,
|
||||||
|
Penalty_REQ,RAGCAKE,RSDCH4N,RSDCO2N,RSDCO2c,RSDCO2v,RSDCOXN,RSDCXFN,RSDN2ON,RSDNOXN,RSDPMAN,RSDPMBN,RSDSF6N,RSDSO2N,RSDVOCN,SE_TRACH4P,SE_TRACH4N,SE_AGRCO2N,SE_COMCO2N,SE_INDCO2N,SE_RSDCO2N,SE_TRACO2N,SE_TRACO2Nintl,SE_TRACO2P,
|
||||||
|
SE_TRACOXN,SE_TRACOXP,SE_TRACXFN,SE_TRACXFP,SE_TRAN2ON,SE_TRAN2OP,SE_TRANOXN,SE_TRANOXP,SE_TRAPMAN,SE_TRAPMAP,SE_TRAPMBN,SE_TRAPMBP,SE_TRASF6N,SE_TRASF6P,SE_TRASO2N,SE_TRASO2P,SE_TRAVOCN,SE_TRAVOCP,SNKAFF,SNKCB1,SNKCB2,SNKCB3,
|
||||||
|
SNKCO2GN,SNKCO2N,SNKDGF,SNKDGO,SNKDOF,SNKDOGF,SNKDOGO,SNKDOO,SNKDSAOF,SNKDSAON,SNKEOR,SUBS-REN_FeedIn,SUBS-REN_FeedInBiog,SUBS-REN_FeedInBiogCHP,SUBS-REN_FeedInBiom,SUBS-REN_FeedInBiomCHP,SUBS-REN_FeedInGeo,SUBS-REN_FeedInLaHyd,
|
||||||
|
SUBS-REN_FeedInOce,SUBS-REN_FeedInPV,SUBS-REN_FeedInSmHyd,SUBS-REN_FeedInSolTh,SUBS-REN_FeedInWaste,SUBS-REN_FeedInWindN,SUBS-REN_FeedInWindO,SUBS-REN_INV,SUBS-REN_INVBiog,SUBS-REN_INVBiom,SUBS-REN_INVGeo,SUBS-REN_INVLaHyd,SUBS-REN_INVOce,
|
||||||
|
SUBS-REN_INVPV,SUBS-REN_INVSmHyd,SUBS-REN_INVSolTh,SUBS-REN_INVWaste,SUBS-REN_INVWind,SUPCH4N,SUPCH4P,SUPCO2N,SUPCO2P,SUPCO2c,SUPCO2v,SUPCOXN,SUPCOXP,SUPCXFN,SUPCXFP,SUPN2ON,SUPN2OP,SUPNETSCO2,SUPNOXN,SUPNOXP,SUPPMAN,SUPPMAP,SUPPMBN,SUPPMBP,SUPSCO2GN,
|
||||||
|
SUPSCO2N,SUPSF6N,SUPSF6P,SUPSO2N,SUPSO2P,SUPVOCN,SUPVOCP,TBioFS,TBioFuel,TBiofuel-g1,TBiofuel-g2,TOTCO2,TOTGHG,TOTN2O,TRACH4N,TRACH4P,TRACO2N,TRACO2Nintl,TRACO2P,TRACOXN,TRACOXP,TRACXFN,TRACXFP,TRAN2ON,TRAN2OP,TRANOXN,TRANOXP,TRAPMAN,TRAPMAP,TRAPMBN,
|
||||||
|
TRAPMBP,TRASF6N,TRASF6P,TRASO2N,TRASO2P,TRAVOCN,TaxPEC,TRAVOCP,TradeA
|
||||||
|
AUX_STH2SDT,AUX_STH2SGT,AUX_STH2SUG,AUX_VARSOUT
|
||||||
|
* Exclude also demand commodities
|
||||||
|
NEU,NR_BuildLight,R_Flat,TAvi_Pas_Intra-EU,RCDR,GDP,IAL,IAM,ICH,ICL,ICM,ICU,IGF,IGH,IIS,ILM,INM,IOI,IPH,NR_ICTM,NR_ShopS,NR_SpoRecr,NR_StLight,IPL,TAvi_Pas_Extra-EU,TBunk,THDT,TLCV,NR_BuildTech,NR_Hosp,TRai_Frt,NR_Refrig,NR_ShopL,AGR_Agr_For_Fis,POP,INF,
|
||||||
|
NR_HoRest,NR_Offic,NR_Vent,RCWA,RDWA,RLIG,ROEL,RREF,R_DetH,R_SDetH,TAvi_Frt_Extra-EU,TAvi_Frt_Intra-EU,TAvi_Pas_Dom,TBus,TCar,TMop,TMot,TNav,TRai_Pas_Conv,TRai_Pas_Hspd,TRai_Pas_Metro
|
||||||
|
ELCForPeak,INDFINOIL,INDFINGAS
|
||||||
|
* GN1
|
||||||
|
|
||||||
|
* Additional commodities (e.g., demands) not to be considered in the price calculation
|
||||||
|
AGR_Low_Ent_Het,ITOT_AHT,ITOT_BDL,ITOT_BIO,ITOT_COA,OUT_TRABAT,ITOT_BGS,Bldg_DETPre45-Wal,Bldg_SDEPre45-Wal,COMFINOIL,EUVAR1DUM,INDFINSOLID,AGR_Lig,AGR_Ven,ITOT_OIL,ITOT_REN,NR_ES-HO-Cook,ITOT_ELC,NR_ES-HO-SpCool-I,NR_ES-HR-SpCool,
|
||||||
|
NR_ES-SR-WatHeat,Bldg_FLTPre99-Win,Bldg_HoRest-Cei,Bldg_Hosp-Win,Bldg_SDEPre89-Cei,Bldg_SDEPre89-Wal,Bldg_DETPre09-Wal,Bldg_DETPre69-Wal,Bldg_DETPre79-Cei,Bldg_DETPre99-Cei,Bldg_FLTPre69-Wal,Bldg_Offic-Cei,RSDFINOIL,R_ES-SD-Cook,R_ES-SD-SpCool-I,
|
||||||
|
SER_BGS,SER_BIO,EUVAR5DUM,FINOIL,ITOT_HH2,RSDNRG,TRAFINOIL,NR_ES-OF-Cook,NR_ES-SL-SpHeat,NR_ES-SS-SpHeat-I,TRA_GAS,TRA_GASintl,TRA_H2intl,NR_ES-SS-SpHeat,NR_ES-SS-WatHeat,RES_AHT,AGR_Far_Mac_Dri,AGR_Pum_Dev_Dis,AGR_Pum_Dev_Ele,AGR_Spe_Ele_Use,AGR_Spe_Het_Use,
|
||||||
|
RES_OIL,RES_REN,R_ES-DH-SpCool,R_ES-FL-SpHeat-I,Bldg_DETPre09-Cei,Bldg_DETPre09-Win,Bldg_DETPre45-Cei,R_ES-SD-SpCool,Bldg_DETPre45-Win,Bldg_DETPre69-Cei,Bldg_DETPre69-Win,Bldg_DETPre79-Wal,SER_HET,Bldg_DETPre79-Win,Bldg_DETPre89-Cei,Bldg_DETPre89-Wal,Bldg_DETPre89-Win,
|
||||||
|
Bldg_DETPre99-Wal,Bldg_DETPre99-Win,Bldg_FLTPre09-Cei,SER_COA,SER_ELC,Bldg_FLTPre09-Wal,Bldg_FLTPre09-Win,Bldg_FLTPre45-Cei,Bldg_FLTPre45-Wal,Bldg_FLTPre45-Win,Bldg_FLTPre69-Cei,Bldg_FLTPre69-Win,Bldg_FLTPre79-Cei,Bldg_FLTPre79-Wal,Bldg_FLTPre79-Win,Bldg_FLTPre89-Cei,Bldg_FLTPre89-Wal,
|
||||||
|
Bldg_FLTPre89-Win,Bldg_FLTPre99-Cei,Bldg_FLTPre99-Wal,Bldg_HoRest-Wal,Bldg_HoRest-Win,Bldg_Hosp-Cei,Bldg_Hosp-Wal,Bldg_Offic-Wal,Bldg_Offic-Win,Bldg_SDEPre09-Cei,Bldg_SDEPre09-Wal,Bldg_SDEPre09-Win,Bldg_SDEPre45-Cei,Bldg_SDEPre45-Win,Bldg_SDEPre69-Cei,Bldg_SDEPre69-Wal,Bldg_SDEPre69-Win,
|
||||||
|
Bldg_SDEPre79-Cei,Bldg_SDEPre79-Wal,Bldg_SDEPre79-Win,Bldg_SDEPre89-Win,Bldg_SDEPre99-Cei,Bldg_SDEPre99-Wal,Bldg_SDEPre99-Win,Bldg_ShopL-Cei,Bldg_ShopL-Wal,Bldg_ShopL-Win,Bldg_ShopS-Cei,Bldg_ShopS-Wal,Bldg_ShopS-Win,Bldg_SpoRecr-Cei,Bldg_SpoRecr-Wal,Bldg_SpoRecr-Win,DUMBioFuelConstr,EUCAPDUM,
|
||||||
|
EUVAR2DUM,EUVAR3DUM,EUVAR4DUM,FC_TOT,FC_TOTintl,FINSOLID,TRA_BGSintl,ITOT_GAS,NR_ES-HO-SpCool,NR_ES-HO-SpHeat,NR_ES-HO-SpHeat-I,NR_ES-HO-WatHeat,NR_ES-HR-Cook,NR_ES-HR-SpCool-I,NR_ES-HR-SpHeat,NR_ES-HR-SpHeat-I,NR_ES-HR-WatHeat,NR_ES-OF-SpCool,NR_ES-OF-SpCool-I,NR_ES-OF-SpHeat,NR_ES-OF-SpHeat-I,
|
||||||
|
NR_ES-OF-WatHeat,NR_ES-SL-Cook,NR_ES-SL-SpCool,NR_ES-SL-SpCool-I,NR_ES-SL-SpHeat-I,NR_ES-SL-WatHeat,NR_ES-SR-Cook,NR_ES-SR-SpCool,NR_ES-SR-SpCool-I,NR_ES-SR-SpHeat,NR_ES-SR-SpHeat-I,NR_ES-SS-Cook,NR_ES-SS-SpCool,NR_ES-SS-SpCool-I,RES_BDL,RES_BGS,RES_BIO,RES_COA,RES_ELC,RES_GAS,RES_HET,RES_HH2,R_ES-DH-70-SpHeat,
|
||||||
|
R_ES-DH-70-SpHeat-I,R_ES-DH-Cook,R_ES-DH-SpCool-I,R_ES-DH-SpHeat,R_ES-DH-SpHeat-I,R_ES-DH-WatHeat,R_ES-FL-Cook,R_ES-FL-SpCool,R_ES-FL-SpCool-I,R_ES-FL-SpHeat,R_ES-FL-WatHeat,R_ES-SD-SpHeat,R_ES-SD-SpHeat-I,R_ES-SD-WatHeat,SER_AHT,SER_BDL,SER_GAS,SER_HH2,SER_OIL,SER_REN,TRA_BGS,TRA_BLQ,TRA_BLQintl,TRA_H2,TRA_OIL,TRA_OILintl
|
||||||
|
AGR_Mot_Dri,ITOT_HET
|
||||||
|
* Exclude industrial byproducts
|
||||||
|
INDBLQ,GASBFG
|
||||||
|
SUPRPP
|
||||||
|
GN1
|
||||||
|
/
|
||||||
|
|
||||||
|
aux_p(process) storage processes to be exlcuded /
|
||||||
|
* TRABAT_Battery
|
||||||
|
STGCOO02,COMBATS02,COMBATS01,COMBATS03,ESTCAESS101,ESTCAESS00,ESTCAESS201,RSDBATS01,RSDBATS02,RSDBATS03,STH2SDT,STH2SGT,STH2SUG,NGASTOR-BE,NGASTOR-FI,NGASTOR-FR,NGASTOR-MT,NGASTOR-NL,NGASTOR-PT,ESTBATS101,ESTBATS102,ESTBATS103,ESTBATS201,ESTBATS202,ESTCAESS102,ESTHYDPS101,ESTHYDPS201,STGCOO01,NGASTOR-UK,STGHTH01,STGHTH02,LNGSTOR-BE,LNGSTOR-PT,LNGSTOR_E-UK,LNGSTOR_M-FR,NGASTOR-BG,NGASTOR-CZ,NGASTOR-EE,NGASTOR-ES,NGASTOR-IT,NGASTOR-NO,NGASTOR-PL,NGASTOR-RO,LNGSTOR_W-UK,LNGSTOR_M-ES,LNGSTOR-NL,LNGSTOR_E-IT,LNGSTOR_W-IT,NGASTOR-AT,NGASTOR-CH,NGASTOR-DE,NGASTOR-LT,NGASTOR-LV,NGASTOR-SI,NGASTOR-SK,LNGSTOR_A-FR,NGASTOR-SE,NGASTOR-CY,NGASTOR-DK,NGASTOR-HU,NGASTOR-IE,NGASTOR-LU,LNGSTOR_A-ES
|
||||||
|
SUPRPP00
|
||||||
|
/
|
||||||
|
|
||||||
|
co2(commodity) CO2 commodities /
|
||||||
|
ETSCO2,
|
||||||
|
RSDCO2N,COMCO2N,AGRCO2N,TRACO2N,INDCO2N,INDCO2P,ELCCO2N,SUPCO2N,SUPCO2P,ELCCO2P,ELCCO2I,TOTCO2/
|
||||||
|
|
||||||
|
c(commodity) commodities not in aux and which are produced or consumed by processes
|
||||||
|
|
||||||
|
p_c(commodity) commodities for which price is calculated /
|
||||||
|
|
||||||
|
AGRAHT,AGRBDL,AGRBGS,AGRBIO,AGRCOA,AGRDST,AGRELC,AGRGAS,AGRGEO,AGRGHH2,AGRGHT,AGRHET,AGRHH2,AGRLPG,AGROIL,AGRSOL,BIOBTLFTDSL,BIOCRP1,BIOCRP2,BIODME,BIODST,BIOEMHV,BIOETBE,BIOETHA,BIOGAS,BIOHVO,BIOLGCFS,BIOLIQ,BIOMtaH,BIOMUN,BIOOILFS,BIOPROP,BIORPS,BIOSLU,BIOSTAFS,BIOSUGFS,BIOWOO,BRFH2,COABRO,COACOK,COAHAR,COALIG,COHRSV,COLRSV,COMAHT,COMBDL,COMBGS,COMBIO,COMCOA,COMCOO,COMELC,COMGAS,COMGEO,COMGHH2,COMGHT,COMHET,COMHH2,COMLPG,COMNRG,COMOIL,COMSOL,COOFRE,DUMDCAES,DUMDCAES00,DUMSTOR,ELCAHT,ELCBDL,ELCBFG,ELCBFT,ELCBGS,ELCCOG,ELCCOH,ELCCOL,ELCCOP,ELCDST,ELCGAS,ELCGEO,ELCHFO,ELCHIG,ELCHIGG,ELCHYD,ELCIIS,ELCLOW,ELCMED,ELCMUN,ELCSLU,ELCSOL,ELCTID,ELCWAV,ELCWIN,ELCWOO,GAS2ST,GASBFT,GASCOG,GASCOP,GASIIS,GASLNG,GASNAT,GASP2G,GASP2G_G,GASPIP,GASRSV,HETHTH,IAMHTH,ICHELE,ICHHTH,ICHMCH,ICHOTH,ICHPRC,
|
||||||
|
ICHSTM,ICLHTH,ICMPRC,ICUHTH,IGFHTH,IGHHTH,IISHTH,ILMHTH,ILMPRC,IMPLH2,INDAHT,INDBFG,INDBFT,INDBGS,INDBIO,INDCOA,INDCOB,INDCOG,INDCOK,INDCOL,INDCOP,INDELC,INDGAS,INDGEO,INDGHH2,INDHFO,INDHH2,INDHTH,INDIIS,INDLFO,INDLPG,INDMUN,INDNAP,INDNRG,INDRFG,INDSLU,INDSOL,INFELE,INFHTH,INFMCH,INFOTH,INFPRC,INFSTM,INMELE,INMHTH,INMMCH,INMOTH,INMPRC,INMSTM,IOIELE,IOIHTH,IOIMCH,IOIOTH,IOIPRC,IOISTM,IPPHTH,IPPPRC,ISYNG,ISYNGDST,ISYNGGAS,ISYNGGSL,ISYNGKER,NUCH2,OILCRD,OILDST,OILDSTkt,OILFDS,OILGSL,OILGSLkt,OILHFO,OILKER,OILKERkt,OILLPG,OILNAP,OILNEU,OILOTH,OILPIP,OILRFG,OILRSV,RAGOILFS,REFHTH,RENAHT,RENGEO,RENGHT,RENHYD,RENSOL,RENWIN,RSDAHT,RSDBDL,RSDBGS,RSDBIO,RSDCOA,RSDCOO,RSDELC,RSDGAS,RSDGEO,RSDGHH2,RSDGHT,RSDHET,RSDHH2,RSDLPG,RSDOIL,RSDSOL,SUP_H2,SUP_TOT,SUPAHT,SUPBIO,SUPCOA,SUPCRD,SUPELC,SUPGAS,
|
||||||
|
SUPHTH,SUPRPG,SUPSOL,SYNDME,SYNGDST,SYNGGSL,SYNGH2,SYNGH2CT,SYNGH2CU,SYNGH2DT,SYNGKER,SYNGLPG,SYNGNAP,SYNGOTH,SYNH2,SYNH2CT,SYNH2CU,SYNH2DT,SYNMtaH,TRABGS,TRABGSintl,TRABGSintraeuintl,TRADST,TRADSTB30,TRADSTintl,TRADSTintraeuintl,TRADSTSYNG,TRADSTSYNGB30,TRAELC,TRAELC_EV,TRAELC_V2G,TRAELCintl,TRAELCintraeuintl,TRAETH,TRAFTS,TRAGAS,TRAGASintl,TRAGASintraeuintl,TRAGGH2,TRAGH2,TRAGSLE85,TRAGSLSP95,TRAGSLSP95E10,TRAGSLSYNGE85,TRAGSLSYNGSP95,TRAGSLSYNGSP95E10,TRAHFO,TRAHFOintl,TRAHFOintraeuintl,TRAJTK,TRAJTKintl,TRAJTKintraeuintl,TRALGH2,TRALGH2Intl,TRALGH2intraeuIntl,TRALH2,TRALH2Intl,TRALH2intraeuIntl,TRALPG,TRAN_ELC,TRAN_ELCintl
|
||||||
|
* SUPRPP
|
||||||
|
/
|
||||||
|
|
||||||
|
bltrd_c(commodity) commodities entering into the bileteral trade
|
||||||
|
/
|
||||||
|
ELCHIG
|
||||||
|
GASNAT,GASP2G_G,
|
||||||
|
* to be added in the topology
|
||||||
|
GASP2G
|
||||||
|
SYNH2CU,SYNH2CT,SYNGH2CT,SYNGH2CU
|
||||||
|
SYNGDST,SYNGGSL,SYNGKER
|
||||||
|
/
|
||||||
|
flow(attribute) /var_fin, var_fout/
|
||||||
|
|
||||||
|
gasoline (commodity) commodities referring to gasoline /TRAGSLSP95,TRAGSLSYNGE85,TRAGSLSYNGSP95E10,TRAGSLSYNGSP95,TRAGSLSP95E10,TRAGSLE85/
|
||||||
|
diesel (commodity) commodities referring to diesel /TRADSTB30,TRADSTSYNG,TRADSTSYNGB30,TRADST/
|
||||||
|
ethanol(commodity) commodities referring to ethanol /BIOETHA, BIOETBE,BIOMTAH/
|
||||||
|
biodiesel(commodity) commodities referring to biodiesel /BIOBTLFTDSL,BIODME,BIODST,BIOEMHV,BIOHVO/
|
||||||
|
;
|
||||||
|
|
||||||
|
$include Fuel_Prices_JRC_primary_commodity.gms
|
||||||
|
|
||||||
|
alias (c2,com2,commodity),(p,p2,process), (lmil, milestone),(ts,s),(c,cc1,cc2),(r,r2),(region,region2);
|
||||||
|
|
||||||
|
c(commodity)$(not aux_c(commodity))=yes$sum((region,p,t,v,ts,userconstraint),abs(veda_vdd("var_fin", commodity, p, t, region, v, ts, userconstraint)+veda_vdd("var_fout", commodity, p, t, region, v, ts, userconstraint)));
|
||||||
|
|
||||||
|
top(region,p,c,t,"in")$((not co2(c)) and (not (aux_c(c))) and (not aux_p(p))) = sum((v,ts,userconstraint)$veda_vdd("var_fin", c, p, t, region, v, ts, userconstraint),1);
|
||||||
|
top(region,p,c,t,"out")$((not co2(c)) and (not (aux_c(c))) and (not aux_p(p))) = sum((v,ts,userconstraint)$veda_vdd("var_fout", c, p, t, region, v, ts, userconstraint),1);
|
||||||
|
|
||||||
|
parameter
|
||||||
|
|
||||||
|
price_CO2(region, commodity,t) CO2 price in EUR per ton
|
||||||
|
long_w(region, commodity, t) price weight for long term cost (the short term is 1-long_w)
|
||||||
|
co2_tax(region,co2,t)
|
||||||
|
|
||||||
|
lrun_bltrd(region,process,commodity,milestone) long run cost of interconnectors for the bilateraly traded commodity c
|
||||||
|
dom(region,commodity,milestone) domestice production for commodity
|
||||||
|
imp_prc(region, region, bltrd_p,commodity,milestone) imported amounts for commodity per source of origin and process
|
||||||
|
imp(region, region,commodity,milestone) imported amounts for commodity per source of origin
|
||||||
|
;
|
||||||
|
|
||||||
|
scalar tol cut-off tolerance below of which no price is calculated /5E-3/;
|
||||||
|
|
||||||
|
long_w(r, c, t)=1;
|
||||||
|
|
||||||
|
Parameter cf(commodity) conversion factor to PJ from kt;
|
||||||
|
|
||||||
|
cf(c)=1;
|
||||||
|
|
||||||
|
cf("BIOSUGFS")=0.079;
|
||||||
|
cf("BIOHVO")=0.044;
|
||||||
|
cf("BIOBTLFTDSL")=0.044;
|
||||||
|
cf("OILDSTkt")=0.044;
|
||||||
|
cf("BIOEMHV")=0.044;
|
||||||
|
cf("BIOOILFS")=0.044;
|
||||||
|
cf("BIOETBE")=0.0363;
|
||||||
|
cf("BIOETHA")=0.0268;
|
||||||
|
|
||||||
|
|
||||||
|
Positive Variable
|
||||||
|
price(region,commodity,milestone) price of commodity in EUR per GJ per year
|
||||||
|
price_final(region,commodity,milestone ) final price of the bilaterely traded commodity
|
||||||
|
price_temp(region,commodity,milestone) temporary price reflecting the production cost or price as calculated from the previous model
|
||||||
|
|
||||||
|
lrun(region,process,commodity,milestone) long run cost per process to produce the commmodity
|
||||||
|
srun(region,process,commodity,milestone) short run cost per process to produce the commmodity
|
||||||
|
fuel(region,process,commodity,c2, milestone) fuel cost of c2 used to produce commodity from process p
|
||||||
|
cost_co2(region,process,commodity,milestone) co2 cost per process to produce the commmodity
|
||||||
|
revenues(region,process,commodity,c2, milestone) revenues from byrpoduct c2 when producing commodity by process
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
price_CO2(r,co2,t)=0;
|
||||||
|
co2_tax(region,co2,t)=0;
|
||||||
|
**** EVERYTHING CONVERTS TO EUR10 IN THE MODEL (NEED TO CHANGE THE SYSSETINGS)
|
||||||
|
co2_tax("ch","AGRCO2N",t)=120*0.71;
|
||||||
|
co2_tax("ch","COMCO2N",t)=120*0.71;
|
||||||
|
co2_tax("ch","RSDCO2N",t)=120*0.71;
|
||||||
|
|
||||||
|
* this needs some re-thinkng
|
||||||
|
price_CO2(r,co2,t)$milestone(t) = max(0,co2_tax(r,co2,t),-sum(ts,veda_vdd("eq_combalm", co2, "-", t, r, "-", ts, "-"))/12*1000);
|
||||||
|
* overwire the ETS price with the EU-wide average price
|
||||||
|
price_CO2(r,"ETSCO2",t)$milestone(t) = max(0,out_etsco2("ETSCO2",t));
|
||||||
|
|
||||||
|
|
||||||
|
* long run and short run cost of interconnectors
|
||||||
|
lrun_bltrd(region,p,commodity,milestone)$(bltrd_c(commodity)$bltrd_p(p)$(not aux_p(p))$pcg(p,commodity)$r(region)$trun(milestone) $(sum((flow,v,ts,userconstraint)$veda_vdd(flow,commodity,p,milestone,region,v,ts,userconstraint),veda_vdd(flow,commodity,p,milestone,region,v,ts,userconstraint)) gt tol)) =
|
||||||
|
( sum((sc_attr_long,v,ts,userconstraint)$((not sc_attr_com(sc_attr_long))$veda_vdd(sc_attr_long,"-",p,milestone,region,v,ts,userconstraint)),abs(veda_vdd(sc_attr_long,"-",p,milestone,region,v,ts,userconstraint)))
|
||||||
|
+sum((sc_attr_long,v,ts,userconstraint)$(sc_attr_com(sc_attr_long)$veda_vdd(sc_attr_long,commodity,p,milestone,region,v,ts,userconstraint)),abs(veda_vdd(sc_attr_long,commodity,p,milestone,region,v,ts,userconstraint)))
|
||||||
|
)
|
||||||
|
/sum((flow,v,ts,userconstraint)$veda_vdd(flow,commodity,p,milestone,region,v,ts,userconstraint),veda_vdd(flow,commodity,p,milestone,region,v,ts,userconstraint))
|
||||||
|
;
|
||||||
|
|
||||||
|
lrun_bltrd(region,p,commodity,milestone)$(sameas(commodity,"GN1")$bltrd_p(p)$(not aux_p(p))$pcg(p,commodity)$r(region)$trun(milestone) $(sum((flow,v,ts,userconstraint)$veda_vdd(flow,commodity,p,milestone,region,v,ts,userconstraint),veda_vdd(flow,commodity,p,milestone,region,v,ts,userconstraint)) gt tol)) =
|
||||||
|
( sum((sc_attr_long,v,ts,userconstraint)$((not sc_attr_com(sc_attr_long))$veda_vdd(sc_attr_long,"-",p,milestone,region,v,ts,userconstraint)),abs(veda_vdd(sc_attr_long,"-",p,milestone,region,v,ts,userconstraint)))
|
||||||
|
+sum((sc_attr_long,v,ts,userconstraint)$(sc_attr_com(sc_attr_long)$veda_vdd(sc_attr_long,commodity,p,milestone,region,v,ts,userconstraint)),abs(veda_vdd(sc_attr_long,commodity,p,milestone,region,v,ts,userconstraint)))
|
||||||
|
)
|
||||||
|
/sum((flow,v,ts,userconstraint)$veda_vdd(flow,commodity,p,milestone,region,v,ts,userconstraint),veda_vdd(flow,commodity,p,milestone,region,v,ts,userconstraint))
|
||||||
|
;
|
||||||
|
|
||||||
|
* domestically produced and imported quantities of bilaterly traded fuels
|
||||||
|
dom(r,bltrd_c,milestone)$trun(milestone) = sum((p,v,ts,userconstraint)$((not aux_p(p))$(not bltrd_p(p))$pcg(p,bltrd_c)$veda_vdd("var_fout",bltrd_c,p,milestone,r,v,ts,userconstraint)),veda_vdd("var_fout",bltrd_c,p,milestone,r,v,ts,userconstraint));
|
||||||
|
|
||||||
|
imp_prc(r,region,bltrd_p,bltrd_c,milestone)$(trun(milestone)$(not sameas(r,region))
|
||||||
|
$( sum((v,ts,userconstraint)$veda_vdd("var_fout",bltrd_c,bltrd_p,milestone,r,v,ts,userconstraint),veda_vdd("var_fout",bltrd_c,bltrd_p,milestone,r,v,ts,userconstraint))
|
||||||
|
eq sum((v,ts,userconstraint)$veda_vdd("var_fin",bltrd_c,bltrd_p,milestone,region,v,ts,userconstraint),veda_vdd("var_fin",bltrd_c,bltrd_p,milestone,region,v,ts,userconstraint))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
= sum((v,ts,userconstraint)$veda_vdd("var_fout",bltrd_c,bltrd_p,milestone,r,v,ts,userconstraint),veda_vdd("var_fout",bltrd_c,bltrd_p,milestone,r,v,ts,userconstraint))
|
||||||
|
;
|
||||||
|
|
||||||
|
imp_prc(r,region,bltrd_p,"GN1",milestone)$(trun(milestone)$(not sameas(r,region))
|
||||||
|
$( sum((v,ts,userconstraint)$veda_vdd("var_fout","GN1",bltrd_p,milestone,r,v,ts,userconstraint),veda_vdd("var_fout","GN1",bltrd_p,milestone,r,v,ts,userconstraint))
|
||||||
|
eq sum((v,ts,userconstraint)$veda_vdd("var_fin","GN1",bltrd_p,milestone,region,v,ts,userconstraint),veda_vdd("var_fin","GN1",bltrd_p,milestone,region,v,ts,userconstraint))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
= sum((v,ts,userconstraint)$veda_vdd("var_fout","GN1",bltrd_p,milestone,r,v,ts,userconstraint),veda_vdd("var_fout","GN1",bltrd_p,milestone,r,v,ts,userconstraint))
|
||||||
|
;
|
||||||
|
|
||||||
|
imp(r,region,bltrd_c,milestone)$trun(milestone) = sum(bltrd_p,imp_prc(r,region,bltrd_p,bltrd_c,milestone)+imp_prc(r,region,bltrd_p,"GN1",milestone)$sameas(bltrd_c,"ELCHIG"))
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
equations
|
||||||
|
eq_price price formation equation
|
||||||
|
eq_lrun long run cost
|
||||||
|
eq_srun short run cost
|
||||||
|
eq_fuel fuel cost
|
||||||
|
eq_co2 co2 costs
|
||||||
|
eq_revenues revenues from by products
|
||||||
|
eq_price_temp temporary price of bilateral traded commodities
|
||||||
|
eq_price_final equation for caclulating the final price of bilateral traded commodities
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
eq_lrun(region,p,c,milestone)$(top(region,p,c,milestone,"out")$(not aux_p(p))$pcg(p,c)$p_c(c)$r(region)$(not aux_c(c))$trun(milestone) $(sum((com2,v,ts,userconstraint)$(pcg(p,com2)$veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)) gt tol) )..
|
||||||
|
lrun(region,p,c,milestone) =e=
|
||||||
|
long_w(region,c,milestone)*sum((sc_attr_long,v,ts,userconstraint)$((not sc_attr_com(sc_attr_long))$veda_vdd(sc_attr_long,"-",p,milestone,region,v,ts,userconstraint)),abs(veda_vdd(sc_attr_long,"-",p,milestone,region,v,ts,userconstraint)))
|
||||||
|
/(
|
||||||
|
(af(region,milestone,p)*prc_capact(region,p)*sum((v,ts,userconstraint)$veda_vdd("var_cap","-",p,milestone,region,v,ts,userconstraint),veda_vdd("var_cap","-",p,milestone,region,v,ts,userconstraint)))$(af(region,milestone,p)*prc_capact(region,p)*sum((v,ts,userconstraint)$veda_vdd("var_cap","-",p,milestone,region,v,ts,userconstraint),veda_vdd("var_cap","-",p,milestone,region,v,ts,userconstraint)))
|
||||||
|
+
|
||||||
|
(sum((com2,v,ts,userconstraint)$(pcg(p,com2)$veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)))$(not af(region,milestone,p)*prc_capact(region,p)*sum((v,ts,userconstraint)$veda_vdd("var_cap","-",p,milestone,region,v,ts,userconstraint),veda_vdd("var_cap","-",p,milestone,region,v,ts,userconstraint)))
|
||||||
|
)
|
||||||
|
+((
|
||||||
|
long_w(region,c,milestone)*sum((sc_attr_long,v,ts,userconstraint)$(sc_attr_com(sc_attr_long)$veda_vdd(sc_attr_long,c,p,milestone,region,v,ts,userconstraint)),abs(veda_vdd(sc_attr_long,c,p,milestone,region,v,ts,userconstraint)))
|
||||||
|
/
|
||||||
|
sum((com2,v,ts,userconstraint)$(pcg(p,com2)$veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint))
|
||||||
|
))
|
||||||
|
$(sum((sc_attr_long,v,ts,userconstraint)$(sc_attr_com(sc_attr_long)$veda_vdd(sc_attr_long,c,p,milestone,region,v,ts,userconstraint)),veda_vdd(sc_attr_long,c,p,milestone,region,v,ts,userconstraint)) gt 0)
|
||||||
|
;
|
||||||
|
|
||||||
|
eq_srun(region,p,c,milestone)$(top(region,p,c,milestone,"out")$(not aux_p(p))$pcg(p,c)$p_c(c)$r(region)$(not aux_c(c))$trun(milestone) $(sum((com2,v,ts,userconstraint)$(pcg(p,com2)$veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)) gt tol) )..
|
||||||
|
srun(region,p,c,milestone) =e=
|
||||||
|
(1-long_w(region,c,milestone))*sum((sc_attr_short,v,ts,userconstraint)$((not sc_attr_com(sc_attr_short))$veda_vdd(sc_attr_short,"-",p,milestone,region,v,ts,userconstraint)),abs(veda_vdd(sc_attr_short,"-",p,milestone,region,v,ts,userconstraint)))
|
||||||
|
/(
|
||||||
|
(af(region,milestone,p)*prc_capact(region,p)*sum((v,ts,userconstraint)$veda_vdd("var_cap","-",p,milestone,region,v,ts,userconstraint),veda_vdd("var_cap","-",p,milestone,region,v,ts,userconstraint)))$(af(region,milestone,p)*prc_capact(region,p)*sum((v,ts,userconstraint)$veda_vdd("var_cap","-",p,milestone,region,v,ts,userconstraint),veda_vdd("var_cap","-",p,milestone,region,v,ts,userconstraint)))
|
||||||
|
+
|
||||||
|
(sum((com2,v,ts,userconstraint)$(pcg(p,com2)$veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)))$(not af(region,milestone,p)*prc_capact(region,p)*sum((v,ts,userconstraint)$veda_vdd("var_cap","-",p,milestone,region,v,ts,userconstraint),veda_vdd("var_cap","-",p,milestone,region,v,ts,userconstraint)))
|
||||||
|
)
|
||||||
|
+((
|
||||||
|
(1-long_w(region,c,milestone))*sum((sc_attr_short,v,ts,userconstraint)$(sc_attr_com(sc_attr_short)$veda_vdd(sc_attr_short,c,p,milestone,region,v,ts,userconstraint)),abs(veda_vdd(sc_attr_short,c,p,milestone,region,v,ts,userconstraint)))
|
||||||
|
/
|
||||||
|
sum((com2,v,ts,userconstraint)$(pcg(p,com2)$veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint))
|
||||||
|
))
|
||||||
|
$(sum((sc_attr_short,v,ts,userconstraint)$(sc_attr_com(sc_attr_short)$veda_vdd(sc_attr_short,c,p,milestone,region,v,ts,userconstraint)),veda_vdd(sc_attr_short,c,p,milestone,region,v,ts,userconstraint)) gt 0)
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
eq_fuel(region,p,c,c2, milestone)$(top(region,p,c,milestone,"out")$(not aux_p(p))$pcg(p,c)$p_c(c)$r(region)$(not aux_c(c))$trun(milestone)$sum(p2$pcg(p2,c2),1)$(not aux_c(c2))$top(region,p,c2,milestone,"in")$(sum((p2,v,ts,userconstraint)$(pcg(p2,c2)$veda_vdd("var_fout",c2,p2,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",c2,p2,milestone,region,v,ts,userconstraint)) gt tol) $(sum((com2,v,ts,userconstraint)$(pcg(p,com2)$veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)) gt tol) )..
|
||||||
|
fuel(region,p,c,c2, milestone) =e=
|
||||||
|
(
|
||||||
|
sum((v,ts,userconstraint)$((veda_vdd("var_fin",c2,p,milestone,region,v,ts,userconstraint) gt tol)
|
||||||
|
* $(sum((p2)$((not aux_p(p2))$pcg(p2,c)$veda_vdd("var_fout",c,p2,milestone,region,v,ts,userconstraint)),cf(c2)*veda_vdd("var_fout",c,p2,milestone,region,v,ts,userconstraint)) gt tol)
|
||||||
|
* ), cf(c2)*veda_vdd("var_fin",c2,p,milestone,region,v,ts,userconstraint)
|
||||||
|
), veda_vdd("var_fin",c2,p,milestone,region,v,ts,userconstraint)
|
||||||
|
*(price(region,c2,milestone)$(not bltrd_c(c2))+price_final(region,c2,milestone)$(bltrd_c(c2) $(dom(region,c2,milestone)+ sum(region2$imp(region,region2,c2,milestone),imp(region,region2,c2,milestone))) ))
|
||||||
|
)
|
||||||
|
/
|
||||||
|
sum((com2,v,ts,userconstraint)$(pcg(p,com2)$veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint))
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
eq_co2(region,p,c,milestone)$(top(region,p,c,milestone,"out")$(not aux_p(p))$pcg(p,c)$p_c(c)$r(region)$(not aux_c(c))$trun(milestone) $(sum((com2,v,ts,userconstraint)$(pcg(p,com2)$veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)) gt tol) )..
|
||||||
|
cost_co2(region,p,c,milestone) =e=
|
||||||
|
((
|
||||||
|
* take ETS price if the process belongs to ETS
|
||||||
|
sum((v,co2,ts,userconstraint)$(sameas("ETSCO2", co2)$veda_vdd("var_fout", co2,p,milestone,region,v,ts,userconstraint)),abs(veda_vdd("var_fout",co2,p,milestone,region,v,ts,userconstraint))*1e-3*price_CO2(region,co2,milestone))
|
||||||
|
* otherwise the CO2 price of the sector
|
||||||
|
+ sum((v,co2,ts,userconstraint)$((not sameas("ETSCO2",co2))$veda_vdd("var_fout", co2,p,milestone,region,v,ts,userconstraint)),abs(veda_vdd("var_fout",co2,p,milestone,region,v,ts,userconstraint))*1e-3*price_CO2(region,co2,milestone)) $(sum((v,co2,ts,userconstraint)$(sameas("ETSCO2", co2)$veda_vdd("var_fout", co2,p,milestone,region,v,ts,userconstraint)),abs(veda_vdd("var_fout",co2,p,milestone,region,v,ts,userconstraint))*1e-3*price_CO2(region,co2,milestone)) eq 0)
|
||||||
|
)
|
||||||
|
/sum((com2,v,ts,userconstraint)$(pcg(p,com2)$veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint))
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
eq_revenues(region,p,c,c2, milestone)$(top(region,p,c,milestone,"out")$(not aux_p(p))$pcg(p,c)$p_c(c)$p_c(c2)$r(region)$(not aux_c(c))$trun(milestone)$(not aux_c(c2))$top(region,p,c2,milestone,"out") $sum((p2,v,ts,userconstraint)$(pcg(p2,c2)$veda_vdd("var_fout",c2,p2,milestone,region,v,ts,userconstraint)),1)$(not sameas(c,c2)) $(sum((com2,v,ts,userconstraint)$(pcg(p,com2)$veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)) gt tol) )..
|
||||||
|
revenues(region,p,c,c2,milestone) =e=
|
||||||
|
(sum((v,ts,userconstraint)$(veda_vdd("var_fout",c2,p,milestone,region,v,ts,userconstraint) gt tol), veda_vdd("var_fout",c2,p,milestone,region,v,ts,userconstraint)*price(region,c2,milestone))
|
||||||
|
/sum((com2,v,ts,userconstraint)$(pcg(p,com2)$veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint))
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
eq_price(region,c,milestone)$(p_c(c)$r(region)$(not aux_c(c))$trun(milestone)$sum(p$((not aux_p(p))$top(region,p,c,milestone,"out")),1) $sum(p$(top(region,p,c,milestone,"out")$(not aux_p(p))$pcg(p,c)), sum((v,ts,userconstraint)$veda_vdd("var_fout",c,p,milestone,region,v,ts,userconstraint),veda_vdd("var_fout",c,p,milestone,region,v,ts,userconstraint))) $( sum((p,v,ts,userconstraint)$((not aux_p(p))$pcg(p,c)$veda_vdd("var_fout",c,p,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",c,p,milestone,region,v,ts,userconstraint)) gt tol) )..
|
||||||
|
|
||||||
|
price(region,c,milestone)$(sum((p,v,ts,userconstraint)$((not aux_p(p))$pcg(p,c)$veda_vdd("var_fout",c,p,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",c,p,milestone,region,v,ts,userconstraint)) gt tol) =e=
|
||||||
|
sum(p$(top(region,p,c,milestone,"out")$(not aux_p(p))$pcg(p,c)$(sum((com2,v,ts,userconstraint)$(pcg(p,com2)$veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)), veda_vdd("var_fout",com2,p,milestone,region,v,ts,userconstraint)) gt tol) ),
|
||||||
|
(
|
||||||
|
* long run cost
|
||||||
|
lrun(region,p,c,milestone)
|
||||||
|
* short run cost
|
||||||
|
+ srun(region,p,c,milestone)
|
||||||
|
* fuel input cost (excluding CO2 direct emissions costs)
|
||||||
|
+ sum(c2$((not aux_c(c2))$top(region,p,c2,milestone,"in")$(sum((p2,v,ts,userconstraint)$(pcg(p2,c2)$veda_vdd("var_fout",c2,p2,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",c2,p2,milestone,region,v,ts,userconstraint)) gt tol) $(sum((v,ts,userconstraint)$(veda_vdd("var_fin",c2,p,milestone,region,v,ts,userconstraint)),veda_vdd("var_fin",c2,p,milestone,region,v,ts,userconstraint)) gt tol)), fuel(region,p,c,c2, milestone))
|
||||||
|
* CO2 costs
|
||||||
|
+ cost_co2(region,p,c,milestone)
|
||||||
|
* revenues from by marketed product (i.e., the byproduct is primary commodity for at least 1 process)
|
||||||
|
* - sum(c2$(top(region,p,c2,milestone,"out")$sum((p2,v,ts,userconstraint)$(pcg(p2,c2)$veda_vdd("var_fout",c2,p2,milestone,region,v,ts,userconstraint)),1)$(not sameas(c,c2))), revenues(region,p,c,c2,milestone))
|
||||||
|
)
|
||||||
|
*sum((v,ts,userconstraint)$(top(region,p,c,milestone,"out")$(not aux_p(p))$pcg(p,c)$veda_vdd("var_fout",c,p,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",c,p,milestone,region,v,ts,userconstraint))
|
||||||
|
)
|
||||||
|
* divide by the total output of primary commodity c from those processes which have it as main product (primary commodity group)
|
||||||
|
/sum((p,v,ts,userconstraint)$((not aux_p(p))$pcg(p,c)$veda_vdd("var_fout",c,p,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",c,p,milestone,region,v,ts,userconstraint))
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
eq_price_temp(r,bltrd_c,milestone)$trun(milestone)..
|
||||||
|
price_temp(r,bltrd_c,milestone) =e= price(r,bltrd_c,milestone)$(sum((p,v,ts,userconstraint)$((not aux_p(p))$pcg(p,bltrd_c)$veda_vdd("var_fout",bltrd_c,p,milestone,r,v,ts,userconstraint)),veda_vdd("var_fout",bltrd_c,p,milestone,r,v,ts,userconstraint)) gt tol)
|
||||||
|
+ sum(bltrd_p, lrun_bltrd(r,bltrd_p,bltrd_c,milestone)) + sum(bltrd_p, lrun_bltrd(r,bltrd_p,"GN1",milestone))$sameas("ELCHIG",bltrd_c)
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
eq_price_final(r,bltrd_c,milestone)$(trun(milestone) $(dom(r,bltrd_c,milestone)+sum(region$imp(r,region,bltrd_c,milestone),imp(r,region,bltrd_c,milestone))) )..
|
||||||
|
|
||||||
|
price_final(r,bltrd_c,milestone) =e=
|
||||||
|
(
|
||||||
|
price_temp(r,bltrd_c,milestone)*dom(r,bltrd_c,milestone)
|
||||||
|
+ sum(region$(imp(r,region,bltrd_c,milestone) $(dom(region,bltrd_c,milestone)+sum(region2$imp(region,region2,bltrd_c,milestone),imp(region,region2,bltrd_c,milestone)) )), price_final(region,bltrd_c,milestone)*imp(r,region,bltrd_c,milestone))
|
||||||
|
)
|
||||||
|
/
|
||||||
|
(
|
||||||
|
dom(r,bltrd_c,milestone)
|
||||||
|
+ sum(region$imp(r,region,bltrd_c,milestone), imp(r,region,bltrd_c,milestone))
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
model price_calculation /
|
||||||
|
eq_price.price
|
||||||
|
eq_lrun.lrun
|
||||||
|
eq_srun.srun
|
||||||
|
eq_fuel.fuel
|
||||||
|
eq_co2.cost_co2
|
||||||
|
* eq_revenues.revenues
|
||||||
|
|
||||||
|
eq_price_temp.price_temp
|
||||||
|
eq_price_final.price_final
|
||||||
|
/;
|
||||||
|
|
||||||
|
parameter check_price;
|
||||||
|
|
||||||
|
* price.up(r,c,milestone)$(trun(milestone) $(sum(ts,veda_vdd("eq_combalm",c,"-",milestone,r,"-",ts,"-")) gt 0)) = sum(ts, veda_vdd("eq_combalm",c,"-",milestone,r,"-",ts,"-"))/sum(ts$veda_vdd("eq_combalm",c,"-",milestone,r,"-",ts,"-"),1);
|
||||||
|
* price_final.up(r,c,milestone)$(trun(milestone) $(sum(ts, veda_vdd("eq_combalm",c,"-",milestone,r,"-",ts,"-")) gt 0)) = sum(ts, veda_vdd("eq_combalm",c,"-",milestone,r,"-",ts,"-"))/sum(ts$veda_vdd("eq_combalm",c,"-",milestone,r,"-",ts,"-"),1);
|
||||||
|
|
||||||
|
|
||||||
|
solve price_calculation using cns;
|
||||||
|
|
||||||
|
check_price(r,c,milestone)$(trun(milestone) $(sum(ts$(not (sameas(ts,"WP") or sameas(ts,"SP") or sameas(ts,"FP") or sameas(ts, "SP"))),veda_vdd("eq_combalm",c,"-",milestone,r,"-",ts,"-")*g_yrfr(r,ts)) gt 0)) =
|
||||||
|
sum(ts$veda_vdd("eq_combalm",c,"-",milestone,r,"-",ts,"-"), veda_vdd("eq_combalm",c,"-",milestone,r,"-",ts,"-")*g_yrfr(r,ts))
|
||||||
|
- price.l(r,c,milestone);
|
||||||
|
check_price(r,c,milestone)$(check_price(r,c,milestone) ge 0) = 0;
|
||||||
|
|
||||||
|
***************************
|
||||||
|
*** Report the final prices
|
||||||
|
***************************
|
||||||
|
parameter
|
||||||
|
rprice(region,commodity,milestone) final prices to be reported and used in further calculations
|
||||||
|
;
|
||||||
|
|
||||||
|
rprice(r,c,milestone)$trun(milestone) = price.l(r,c,milestone)$(not bltrd_c(c)) + price_final.l(r,c,milestone)$bltrd_c(c);
|
||||||
|
|
||||||
|
|
||||||
|
* for gasoline and diesel take the average of the prices of all related commodities in the blending
|
||||||
|
rprice(r,"TRAGSLSP95",milestone)$(trun(milestone)$sum((gasoline,p,v,ts,userconstraint)$veda_vdd("var_fin",gasoline,p,milestone,r,v,ts,userconstraint),veda_vdd("var_fin",gasoline,p,milestone,r,v,ts,userconstraint))) = sum((gasoline,p,v,ts,userconstraint)$veda_vdd("var_fin",gasoline,p,milestone,r,v,ts,userconstraint),veda_vdd("var_fin",gasoline,p,milestone,r,v,ts,userconstraint)*rprice(r,gasoline,milestone))/sum((gasoline,p,v,ts,userconstraint)$veda_vdd("var_fin",gasoline,p,milestone,r,v,ts,userconstraint),veda_vdd("var_fin",gasoline,p,milestone,r,v,ts,userconstraint));
|
||||||
|
rprice(r,"TRADST",milestone)$(trun(milestone)$sum((diesel,p,v,ts,userconstraint)$veda_vdd("var_fin",diesel,p,milestone,r,v,ts,userconstraint),veda_vdd("var_fin",diesel,p,milestone,r,v,ts,userconstraint))) = sum((diesel,p,v,ts,userconstraint)$veda_vdd("var_fin",diesel,p,milestone,r,v,ts,userconstraint),veda_vdd("var_fin",diesel,p,milestone,r,v,ts,userconstraint)*rprice(r,diesel,milestone))/sum((diesel,p,v,ts,userconstraint)$veda_vdd("var_fin",diesel,p,milestone,r,v,ts,userconstraint),veda_vdd("var_fin",diesel,p,milestone,r,v,ts,userconstraint));
|
||||||
|
rprice(r,gasoline,milestone)=rprice(r,"TRAGSLSP95",milestone);
|
||||||
|
rprice(r,diesel,milestone)=rprice(r,"TRADST",milestone);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* for ethanol and bioediesel take the average of the prices of all related commodities in the blending
|
||||||
|
rprice(r,"BIOETHA",milestone)$(trun(milestone)$sum((ethanol,p,v,ts,userconstraint)$veda_vdd("var_fin",ethanol,p,milestone,r,v,ts,userconstraint),veda_vdd("var_fin",ethanol,p,milestone,r,v,ts,userconstraint))) = sum((ethanol,p,v,ts,userconstraint)$veda_vdd("var_fin",ethanol,p,milestone,r,v,ts,userconstraint),veda_vdd("var_fin",ethanol,p,milestone,r,v,ts,userconstraint)*rprice(r,ethanol,milestone))/sum((ethanol,p,v,ts,userconstraint)$veda_vdd("var_fin",ethanol,p,milestone,r,v,ts,userconstraint),veda_vdd("var_fin",ethanol,p,milestone,r,v,ts,userconstraint));
|
||||||
|
rprice(r,ethanol,milestone)=rprice(r,"BIOETHA",milestone);
|
||||||
|
|
||||||
|
rprice(r,"BIODST",milestone)$(trun(milestone)$sum((biodiesel,p,v,ts,userconstraint)$veda_vdd("var_fin",biodiesel,p,milestone,r,v,ts,userconstraint),veda_vdd("var_fin",biodiesel,p,milestone,r,v,ts,userconstraint))) = sum((biodiesel,p,v,ts,userconstraint)$veda_vdd("var_fin",biodiesel,p,milestone,r,v,ts,userconstraint),veda_vdd("var_fin",biodiesel,p,milestone,r,v,ts,userconstraint)*rprice(r,biodiesel,milestone))/sum((biodiesel,p,v,ts,userconstraint)$veda_vdd("var_fin",biodiesel,p,milestone,r,v,ts,userconstraint),cf(biodiesel)*veda_vdd("var_fin",biodiesel,p,milestone,r,v,ts,userconstraint));
|
||||||
|
rprice(r,biodiesel,milestone)=rprice(r,"BIODST",milestone);
|
||||||
|
|
||||||
|
|
||||||
|
$ontext
|
||||||
|
Provide levelised cost of the main energy carriers
|
||||||
|
|
||||||
|
Electricity
|
||||||
|
|
||||||
|
Diesel
|
||||||
|
|
||||||
|
Gasoline
|
||||||
|
|
||||||
|
natural gas
|
||||||
|
|
||||||
|
biomass
|
||||||
|
|
||||||
|
bioliquids
|
||||||
|
|
||||||
|
e-liquids
|
||||||
|
|
||||||
|
$offtext
|
||||||
|
|
||||||
|
set
|
||||||
|
p_c_out_bfe(commodity) commodities for which prices are to be reported as difference from the BFE prices /ELCHIG,INDLFO,INDGAS,INDELC,RSDOIL,RSDGAS,RSDELC,TRAGSLSP95,TRADST,TRAELC_EV/
|
||||||
|
p_c_out_oecd(commodity) commdities for which prices are to be reported for OECD /BIODST,BIOETHA,BIOGAS,BIOLIQ,SYNGDST,SYNGGSL,SYNGKER,SYNGLPG,SYNGNAP,SYNGOTH,GASP2G_G, ELCHIG, SYNH2CT,SYNH2CU,SYNH2DT,SYNGH2CT,SYNGH2CU,SYNGH2DT/
|
||||||
|
oecd_commodity(commodity) /ELCDST,ELCGAS,ELCHIG,INDELC,RSDELC,COMELC,TRAELC,TRAELC_EV,TRAGSLSP95,TRADST,INDLFO,RSDOIL,INDGAS,RSDGAS,COMGAS,COMBIO,COMOIL,RSDBIO,SYNGDST,SYNGGSL,SYNGKER,ELCWOO,INDBIO,BIOETHA,BIODST/
|
||||||
|
;
|
||||||
|
|
||||||
|
scalar EUR15; EUR15=1/0.925;
|
||||||
|
|
||||||
|
parameter
|
||||||
|
out_prices(region,commodity,milestone) end-consumer prices for Switzerland
|
||||||
|
LCOE(region,commodity,milestone) "levelised cost per output commodity and region"
|
||||||
|
oecd_LCOE(region, commodity, milestone) levelised cost for the oecd commodities
|
||||||
|
;
|
||||||
|
|
||||||
|
out_prices(r,oecd_commodity,milestone)$trun(milestone)=EUR15*rprice(r,oecd_commodity,milestone);
|
||||||
|
|
||||||
|
$onText
|
||||||
|
|
||||||
|
out_prices("ELCHIG","2020")=34/3.6;
|
||||||
|
|
||||||
|
out_prices("INDLFO","2020")=16.578499092;
|
||||||
|
out_prices("INDGAS","2020")=18.819461164;
|
||||||
|
out_prices("INDELC","2020")=32.896856788;
|
||||||
|
|
||||||
|
out_prices("RSDOIL","2020")=18.9592433361995000;
|
||||||
|
out_prices("RSDGAS","2020")=29.7068166618898000;
|
||||||
|
out_prices("RSDELC","2020")=58.5103014235215000;
|
||||||
|
out_prices("RSDBIO","2020")=6.0565536618800100;
|
||||||
|
out_prices("RSDHET","2020")=6.0565536618800100;
|
||||||
|
|
||||||
|
out_prices("TRAGSLSP95","2020")=45.908822967421400000;
|
||||||
|
out_prices("TRADST","2020")=42.572069360848400000;
|
||||||
|
out_prices("TRAELC_EV","2020")=58.510301423521500000;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
loop(milestone$(ord(milestone) gt 2),
|
||||||
|
out_prices(p_c_out_bfe,milestone) = out_prices(p_c_out_bfe,milestone-1)+rprice("ch",p_c_out_bfe,milestone)-rprice("ch",p_c_out_bfe,milestone-1);
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
out_prices(r,p_c_out_oecd,milestone) = rprice(r,p_c_out_oecd,milestone);
|
||||||
|
|
||||||
|
|
||||||
|
*****************************
|
||||||
|
* LCOE calculation accross the system lifetime
|
||||||
|
*****************************
|
||||||
|
|
||||||
|
lcoe(region,c,lmil)$price.l(region,c,lmil) =
|
||||||
|
sum(milestone$(ord(milestone) le ord(lmil)),1/((1+0.5/100)**(ord(milestone)-0.5))*
|
||||||
|
(
|
||||||
|
* capital and operating costs
|
||||||
|
sum(p$(lrun.l(region,p,c,milestone) or srun.l(region,p,c,milestone) or lrun_bltrd(region,p,c,milestone)),
|
||||||
|
sum((sc_attr_long,v,ts,userconstraint)$((not sc_attr_com(sc_attr_long))$veda_vdd(sc_attr_long,"-",p,milestone,region,v,ts,userconstraint)),veda_vdd(sc_attr_long,"-",p,milestone,region,v,ts,userconstraint))
|
||||||
|
+
|
||||||
|
sum((sc_attr_long,v,ts,userconstraint)$(sc_attr_com(sc_attr_long)$veda_vdd(sc_attr_long,c,p,milestone,region,v,ts,userconstraint)),veda_vdd(sc_attr_long,c,p,milestone,region,v,ts,userconstraint))
|
||||||
|
)
|
||||||
|
* fuel input costs
|
||||||
|
+ sum((p,c2)$fuel.l(region,p,c,c2, milestone),
|
||||||
|
sum((v,ts,userconstraint)$((veda_vdd("var_fin",c2,p,milestone,region,v,ts,userconstraint) gt tol) $(sum((p2)$((not aux_p(p2))$pcg(p2,c)$veda_vdd("var_fout",c,p2,milestone,region,v,ts,userconstraint)),veda_vdd("var_fout",c,p2,milestone,region,v,ts,userconstraint)) gt tol) ), cf(c2)*veda_vdd("var_fin",c2,p,milestone,region,v,ts,userconstraint)*rprice(region,c2,milestone))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
/
|
||||||
|
sum(milestone$(ord(milestone) le ord(lmil)),1/((1+0.5/100)**(ord(milestone)-0.5))*
|
||||||
|
sum(p$((not aux_p(p))$top(region,p,c,milestone,'out')$sum((v,ts,userconstraint)$veda_vdd("var_fout", c, p, milestone, region, v, ts, userconstraint),1)),
|
||||||
|
sum((v,ts,userconstraint)$(top(region,p,c,milestone,"out")$(not aux_c(c)) $(not aux_p(p))$veda_vdd("var_fout", c, p, milestone, region, v, ts, userconstraint)),veda_vdd("var_fout", c, p, milestone, region, v, ts, userconstraint)))
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
oecd_LCOE(region,oecd_commodity,lmil)$trun(lmil) = lcoe(region,oecd_commodity,lmil);
|
||||||
|
|
||||||
|
$onecho>outpr%SCENARIO%.txt
|
||||||
|
par=out_prices rng=out_prices!a3 rdim=2 cdim=1
|
||||||
|
par=oecd_LCOE rng=oecd_LCOE!a3 rdim=2 cdim=1
|
||||||
|
|
||||||
|
$offecho
|
||||||
|
|
||||||
|
$offText
|
||||||
|
$onecho>outpr%SCENARIO%.txt
|
||||||
|
par=out_prices rng=out_prices!a3 rdim=2 cdim=1
|
||||||
|
$offecho
|
||||||
|
|
||||||
|
execute_unload "outpr%SCENARIO%", out_prices;
|
||||||
|
|
||||||
|
execute 'gdxxrw.exe i=outpr%SCENARIO%.gdx o="%SCENARIO%.xlsb" EpsOut="0" @outpr%SCENARIO%.txt' ;
|
||||||
|
|
||||||
|
execute 'del out*%SCENARIO%*.txt out*%SCENARIO%*.gdx *%SCENARIO%*.~gm dim*%SCENARIO%*.gms' ;
|
||||||
|
|
||||||
|
|
||||||
|
execute_unload "%SCENARIO%_pr.gdx"
|
||||||
|
|
||||||
|
|
||||||
|
|
5115
Results/Fuel_Prices_JRC_primary_commodity.gms
Normal file
5115
Results/Fuel_Prices_JRC_primary_commodity.gms
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Results/bau.xlsb
Normal file
BIN
Results/bau.xlsb
Normal file
Binary file not shown.
BIN
Results/cli.xlsb
Normal file
BIN
Results/cli.xlsb
Normal file
Binary file not shown.
BIN
Results/cli90.xlsb
Normal file
BIN
Results/cli90.xlsb
Normal file
Binary file not shown.
14
Results/collect_all_scenarios.bat
Normal file
14
Results/collect_all_scenarios.bat
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
set p=..\Gams_WrkJRCTIMES
|
||||||
|
|
||||||
|
for %%s in (
|
||||||
|
|
||||||
|
cli
|
||||||
|
bau
|
||||||
|
cli90
|
||||||
|
|
||||||
|
) do (
|
||||||
|
collect_single %%s %p%
|
||||||
|
)
|
||||||
|
|
||||||
|
PAUSE
|
||||||
|
|
1831
Results/collect_results_single_scenario.gms
Normal file
1831
Results/collect_results_single_scenario.gms
Normal file
File diff suppressed because it is too large
Load Diff
13
Results/collect_single.bat
Normal file
13
Results/collect_single.bat
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
copy collect_results_single_scenario.gms %1.gms
|
||||||
|
gams %1.gms --Scenario=%1 --TIMESPath=%2
|
||||||
|
del %1.gms
|
||||||
|
del %1.lst
|
||||||
|
del %1.log
|
||||||
|
|
||||||
|
rem enable the following if you want the "prices"
|
||||||
|
copy Fuel_Prices_JRC.gms %1pr.gms
|
||||||
|
gams %1pr.gms --Scenario=%1
|
||||||
|
del %1pr.gms
|
||||||
|
del %1pr.lst
|
||||||
|
del %1pr.log
|
||||||
|
|
BIN
Results/results_template.xlsb
Normal file
BIN
Results/results_template.xlsb
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user