results files are updated

This commit is contained in:
das_p 2025-04-15 12:18:25 +02:00
parent 21c24e1d77
commit 906da330d3
9 changed files with 7502 additions and 0 deletions

529
Results/Fuel_Prices_JRC.gms Normal file
View 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"

File diff suppressed because it is too large Load Diff

BIN
Results/bau.xlsb Normal file

Binary file not shown.

BIN
Results/cli.xlsb Normal file

Binary file not shown.

BIN
Results/cli90.xlsb Normal file

Binary file not shown.

View File

@ -0,0 +1,14 @@
set p=..\Gams_WrkJRCTIMES
for %%s in (
cli
bau
cli90
) do (
collect_single %%s %p%
)
PAUSE

File diff suppressed because it is too large Load Diff

View 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

Binary file not shown.