diff --git a/core/datainput.gms b/core/datainput.gms old mode 100644 new mode 100755 index 9f9a0dc93..c46f0fb52 --- a/core/datainput.gms +++ b/core/datainput.gms @@ -8,10 +8,9 @@ *AJS* technical. initialize parameters so that they are read from gdx vm_co2eq.l(ttot,regi) = 0; -vm_emiAll.l(ttot,regi,enty) = 0; +vm_emiAll.l(ttot,regi,emiTe) = 0; vm_emiCO2Sector.l(ttot,all_regi,emi_sectors) = 0; - *AJS* initialize parameter (avoid compilation errors) * do this at the start of datainput to prevent accidental overwriting pm_SolNonInfes(regi) = 1; !! assume the starting point came from a feasible solution @@ -351,7 +350,7 @@ $offdelim / ; * Read in historical emissions per sector to calibrate MAC reference emissions -parameter p_histEmiSector(tall,all_regi,all_enty,emi_sectors,sector_types) "historical emissions per sector" +parameter p_histEmiSector(tall,all_regi,emiTe,emi_sectors,sector_types) "historical emissions per sector" / $ondelim $include "./core/input/p_histEmiSector.cs4r" @@ -367,7 +366,7 @@ $offdelim *RP* 2012-07-24: CO2-technologies don't have own emissions, but the pipeline leakage rate (s_co2pipe_leakage) is multiplied on the individual pe2se s_co2pipe_leakage = 0.01; -loop(emi2te(enty,enty2,te,enty3)$teCCS(te), +loop(emi2te(enty,enty2,te,emiAll)$teCCS(te), fm_dataemiglob(enty,enty2,te,"co2") = fm_dataemiglob(enty,enty2,te,"co2") + fm_dataemiglob(enty,enty2,te,"cco2") * s_co2pipe_leakage ; fm_dataemiglob(enty,enty2,te,"cco2") = fm_dataemiglob(enty,enty2,te,"cco2") * (1 - s_co2pipe_leakage ); ); diff --git a/core/declarations.gms b/core/declarations.gms old mode 100644 new mode 100755 index e0938138f..8af3aa6d1 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -37,7 +37,7 @@ pm_taxCO2eq_iterationdiff_tmp(ttot,all_regi) "help parameter for iterat o_taxCO2eq_iterDiff_Itr(iteration,all_regi) "track p_taxCO2eq_iterationdiff over iterations" pm_taxemiMkt(ttot,all_regi,all_emiMkt) "CO2 or CO2eq region and emission market specific emission tax" pm_taxemiMkt_iteration(iteration,ttot,all_regi,all_emiMkt) "CO2 or CO2eq region and emission market specific emission tax per iteration" -pm_emissionsForeign(tall,all_regi,all_enty) "total emissions of other regions (nash relevant)" +pm_emissionsForeign(tall,all_regi,emiTe) "total emissions of other regions (nash relevant)" pm_co2eqForeign(tall,all_regi) "emissions, which are part of the climate policy, of other regions (nash relevant)" pm_cesdata(tall,all_regi,all_in,cesParameter) "parameters of the CES function" pm_cesdata_putty(tall,all_regi,all_in,cesParameter) "quantities for the putty clay factors" @@ -69,8 +69,8 @@ o_taxCO2eq_afterPeakShiftLoop_Itr_1regi(ttot, iteration) "CO2 taxed in the last ***---------------------------------------------------------------------------------------- ***-----------------------------------------------ESM module------------------------------- -pm_emiExog(tall,all_regi,all_enty) "exogenous emissions" -pm_macBaseMagpie(tall,all_regi,all_enty) "baseline emissions from MAgPIE (type emiMacMagpie)" +pm_emiExog(tall,all_regi,emiTe) "exogenous emissions" +pm_macBaseMagpie(tall,all_regi,all_enty) "baseline emissions from MAgPIE (type emiMacMagpie)" p_macBaseMagpieNegCo2(tall,all_regi) "net negative emissions from co2luc" p_agriEmiPhaseOut(tall) "phase in parameter for baseline agricultural process ch4 and no2 reduction" p_macBaseExo(tall,all_regi,all_enty) "exogenous baseline emissions (type emiMacExo)" @@ -79,7 +79,7 @@ pm_macAbatLev(tall,all_regi,all_enty) "actual level of abatement p_macAbat_lim(tall,all_regi,all_enty) "limit of abatement level based on limit of yearly change [fraction]" p_macUse2005(all_regi,all_enty) "usage of MACs in 2005 [fraction]" p_histEmiMac(tall,all_regi,all_enty) "historical emissions per MAC; from Eurostat and CEDS, to correct CH4 and N2O reporting" -p_histEmiSector(tall,all_regi,all_enty,emi_sectors,sector_types) "historical emissions per sector; from Eurostat and CEDS, to correct CH4 and N2O reporting" +p_histEmiSector(tall,all_regi,emiTe,emi_sectors,sector_types) "historical emissions per sector; from Eurostat and CEDS, to correct CH4 and N2O reporting" p_macLevFree(tall,all_regi,all_enty) "Phase in of zero-cost MAC options [fraction]" pm_macCost(tall,all_regi,all_enty) "abatement costs for all emissions subject to MACCs (type emiMacSector) []" pm_macStep(tall,all_regi,all_enty) "step number of abatement level [integer]" @@ -97,7 +97,7 @@ pm_emicapglob(tall) "global emission cap" p_adj_coeff(ttot,all_regi,all_te) "coefficient for adjustment costs" p_adj_coeff_glob(all_te) "coefficient for adjustment costs - global scale" p_switch_cement(ttot,all_regi) "describes an s-curve to provide a smooth switching from the short-term behavior (depending on per capita capital investments) to the long-term behavior (constant per capita emissions) of CO2 emissions from cement production" -p_cint(all_regi,all_enty,all_enty,rlf) "additional emissions of GHG from mining, on top of emissions from combustion" +p_cint(all_regi,emiTe,all_enty,rlf) "additional emissions of GHG from mining, on top of emissions from combustion" pm_eta_conv(tall,all_regi,all_te) "Time-dependent eta for technologies that do not have explicit time-dependant etas, still eta converges until 2050 to dataglob_values. [efficiency (0..1)]" @@ -116,7 +116,7 @@ pm_ccsinjecrate(all_regi) "Regional CCS inject p_extRegiccsinjecrateRegi(ext_regi) "Regional CCS injection rate factor. 1/a. (extended regions)" pm_dataeta(tall,all_regi,all_te) "regional eta data" p_emi_quan_conv_ar4(all_enty) "conversion factor for various gases to GtCeq" -pm_emifac(tall,all_regi,all_enty,all_enty,all_te,all_enty) "emission factor by technology for all types of emissions in emiTe" +pm_emifac(tall,all_regi,all_enty,all_enty,all_te,emiAll) "emission factor by technology for all types of emissions in emiTe" pm_omeg (all_regi,opTimeYr,all_te) "technical depreciation parameter, gives the share of a capacity that is still usable after tlt. [none/share, value between 0 and 1]" p_aux_lifetime(all_regi,all_te) "auxiliary parameter for calculating life times, calculated externally in excel sheet" pm_pedem_res(ttot,all_regi,all_te) "Demand for pebiolc residues, needed for enhancement of residue potential [TWa]" @@ -190,7 +190,7 @@ pm_inco0_t(ttot,all_regi,all_te) "New inco0 that is time-dep ***this parameter counts backwards from time ttot - only the existing time steps p_tsu2opTimeYr_h(ttot,opTimeYr) "parameter to generate pm_tsu2opTimeYr", pm_tsu2opTimeYr(ttot,opTimeYr) "parameter that counts opTimeYr regarding tsu2opTimeYr apping" -pm_emissions0(tall,all_regi,all_enty) "Emissions in last iteration" +pm_emissions0(tall,all_regi,emiTe) "Emissions in last iteration" pm_co2eq0(tall,all_regi) "vm_co2eq from last iteration" pm_capCum0(tall,all_regi,all_te) "vm_capCum from last iteration" p_capCum(tall, all_regi,all_te) "vm_capCum from input.gdx for recalibration of learning investment costs" @@ -290,13 +290,13 @@ vm_dummyBudget(ttot,all_regi) "auxiliary variable that he ***-------------------------------------------------ESM module----------------------------- vm_macBase(ttot,all_regi,all_enty) "baseline emissions for all emissions subject to MACCs (type emismac)" vm_emiCO2Sector(ttot,all_regi,emi_sectors) "total CO2 emissions from individual sectors [GtC]" -vm_emiTeDetail(ttot,all_regi,all_enty,all_enty,all_te,all_enty) "energy-related emissions per region and technology" -vm_emiTe(ttot,all_regi,all_enty) "total energy-related emissions of each region. [GtC, Mt CH4, Mt N]" +vm_emiTeDetail(ttot,all_regi,all_enty,all_enty,all_te,emiAll) "energy-related emissions per region and technology" +vm_emiTe(ttot,all_regi,emiAll) "total energy-related emissions of each region. [GtC, Mt CH4, Mt N]" vm_emiMacSector(ttot,all_regi,all_enty) "total non-energy-related emission of each region. [GtC, Mt CH4, Mt N]" vm_emiCdr(ttot,all_regi,all_enty) "total (negative) emissions due to CDR technologies of each region. [GtC]" -vm_emiMac(ttot,all_regi,all_enty) "total non-energy-related emission of each region. [GtC, Mt CH4, Mt N]" -vm_emiAll(ttot,all_regi,all_enty) "total regional emissions. [GtC, Mt CH4, Mt N]" -vm_emiAllGlob(ttot,all_enty) "total global emissions - link to the climate module. [GtC, Mt CH4, Mt N]" +vm_emiMac(ttot,all_regi,emiTe) "total non-energy-related emission of each region. [GtC, Mt CH4, Mt N]" +vm_emiAll(ttot,all_regi,emiTe) "total regional emissions. [GtC, Mt CH4, Mt N]" +vm_emiAllGlob(ttot,emiTe) "total global emissions - link to the climate module. [GtC, Mt CH4, Mt N]" vm_perm(ttot,all_regi) "emission allowances" vm_co2eqGlob(ttot) "global emissions to be balanced by allowances. [GtCeq]" vm_co2eq(ttot,all_regi) "total emissions measured in co2 equivalents ATTENTION: content depends on multigasscen. [GtCeq]" @@ -313,10 +313,10 @@ vm_costFuBio(ttot,all_regi) "fuel costs from bio energy vm_omcosts_cdr(tall,all_regi) "O&M costs for spreading grinded rocks on fields" vm_costpollution(tall,all_regi) "costs for air pollution policies" vm_emiFgas(ttot,all_regi,all_enty) "F-gas emissions by single gases from IMAGE" -v_emiTeDetailMkt(tall,all_regi,all_enty,all_enty,all_te,all_enty,all_emiMkt) "emissions from fuel combustion per region, technology and emission market. [GtC, Mt CH4, Mt N]" -vm_emiTeMkt(tall,all_regi,all_enty,all_emiMkt) "total energy-emissions of each region and emission market. [GtC, Mt CH4, Mt N]" -v_emiEnFuelEx(ttot,all_regi,all_enty) "energy emissions from fuel extraction [GtC, Mt CH4, Mt N]" -vm_emiAllMkt(tall,all_regi,all_enty,all_emiMkt) "total regional emissions for each emission market. [GtC, Mt CH4, Mt N]" +v_emiTeDetailMkt(tall,all_regi,all_enty,all_enty,all_te,emiAll,all_emiMkt) "emissions from fuel combustion per region, technology and emission market. [GtC, Mt CH4, Mt N]" +vm_emiTeMkt(tall,all_regi,emiTe,all_emiMkt) "total energy-emissions of each region and emission market. [GtC, Mt CH4, Mt N]" +v_emiEnFuelEx(ttot,all_regi,emiTe) "energy emissions from fuel extraction [GtC, Mt CH4, Mt N]" +vm_emiAllMkt(tall,all_regi,emiTe,all_emiMkt) "total regional emissions for each emission market. [GtC, Mt CH4, Mt N]" vm_flexAdj(tall,all_regi,all_te) "flexibility adjustment used for flexibility subsidy (tax) to emulate price changes of technologies which see lower-than-average (higher-than-average) elec. prices [trUSD/TWa]" vm_taxrevimplFETax(ttot,all_regi) "implicit efficiency directive target tax" ; @@ -356,9 +356,9 @@ v_costInv(ttot,all_regi) "investment costs" vm_costTeCapital(ttot,all_regi,all_te) "investment costs" vm_costAddTeInv(tall,all_regi,all_te,emi_sectors) "additional sector-specific investment cost of demand-side transformation" -vm_co2CCS(ttot,all_regi,all_enty,all_enty,all_te,rlf) "all differenct ccs. [GtC/a]" +vm_co2CCS(ttot,all_regi,emiAll,all_enty,all_te,rlf) "all differenct ccs. [GtC/a]" -vm_co2capture(ttot,all_regi,all_enty,all_enty,all_te,rlf) "all captured CO2. [GtC/a]" +vm_co2capture(ttot,all_regi,emiAll,all_enty,all_te,rlf) "all captured CO2. [GtC/a]" v_co2capturevalve(ttot,all_regi) "CO2 emitted right after capture [GtC/a] (in q_balCCUvsCCS to account for different lifetimes of capture and CCU/CCS te and capacities)" vm_prodUe(ttot,all_regi,all_enty,all_enty,all_te) "Useful energy production [TWa]" @@ -433,33 +433,33 @@ qm_fuel2pe(ttot,all_regi,all_enty) "constraint on cumulative f q_limitProd(ttot,all_regi,all_te,rlf) "constraint on annual production" q_emiCO2Sector(ttot,all_regi,emi_sectors) "CO2 emissions from different sectors" -q_emiTeDetail(ttot,all_regi,all_enty,all_enty,all_te,all_enty) "determination of emissions" +q_emiTeDetail(ttot,all_regi,all_enty,all_enty,all_te,emiAll) "determination of emissions" q_macBase(tall,all_regi,all_enty) "baseline emissions for all emissions subject to MACCs (type emiMacSector)" q_emiMacSector(ttot,all_regi,all_enty) "total non-energy-related emission of each region" -q_emiTe(ttot,all_regi,all_enty) "total energy-emissions per region" -q_emiAll(ttot,all_regi,all_enty) "calculates all regional emissions as sum over energy and non-energy relates emissions" -q_emiAllGlob(ttot,all_enty) "calculates all global emissions as sum over regions" +q_emiTe(ttot,all_regi,emiTe) "total energy-emissions per region" +q_emiAll(ttot,all_regi,emiTe) "calculates all regional emissions as sum over energy and non-energy relates emissions" +q_emiAllGlob(ttot,emiTe) "calculates all global emissions as sum over regions" q_emiCap(ttot,all_regi) "emission cap" -q_emiMac(ttot,all_regi,all_enty) "summing up all non-energy emissions" +q_emiMac(ttot,all_regi,emiMac) "summing up all non-energy emissions" q_co2eq(ttot,all_regi) "regional emissions in co2 equivalents" q_co2eqMkt(ttot,all_regi,all_emiMkt) "regional emissions per market in co2 equivalents" q_co2eqGlob(ttot) "global emissions in co2 equivalents" qm_co2eqCum(all_regi) "cumulate regional emissions over time" q_budgetCO2eqGlob "global emission budget balance" -q_emiTeDetailMkt(ttot,all_regi,all_enty,all_enty,all_te,all_enty,all_emiMkt) "detailed energy specific emissions per region and market" -q_emiTeMkt(ttot,all_regi,all_enty,all_emiMkt) "total energy-emissions per region and market" -q_emiEnFuelEx(ttot,all_regi,all_enty) "energy emissions from fuel extraction" -q_emiAllMkt(ttot,all_regi,all_enty,all_emiMkt) "total regional emissions for each emission market" +q_emiTeDetailMkt(ttot,all_regi,all_enty,all_enty,all_te,emiAll,all_emiMkt) "detailed energy specific emissions per region and market" +q_emiTeMkt(ttot,all_regi,emiTe,all_emiMkt) "total energy-emissions per region and market" +q_emiEnFuelEx(ttot,all_regi,emiTe) "energy emissions from fuel extraction" +q_emiAllMkt(ttot,all_regi,emiTe,all_emiMkt) "total regional emissions for each emission market" q_transCCS(ttot,all_regi,all_enty,all_enty,all_te,all_enty,all_enty,all_te,rlf) "transformation equation for ccs" -q_limitCapCCS(ttot,all_regi,all_enty,all_enty,all_te,rlf) "capacity constraint for ccs" -q_limitCCS(all_regi,all_enty,all_enty,all_te,rlf) "ccs constraint for sequestration alternatives" +q_limitCapCCS(ttot,all_regi,emiAll,all_enty,all_te,rlf) "capacity constraint for ccs" +q_limitCCS(all_regi,emiAll,all_enty,all_te,rlf) "ccs constraint for sequestration alternatives" q_emiCdrAll(ttot,all_regi) "summing over all CDR emissions" -q_balcapture(ttot,all_regi,all_enty,all_enty,all_te) "balance equation for carbon capture" +q_balcapture(ttot,all_regi,emiAll,all_enty,all_te) "balance equation for carbon capture" q_balCCUvsCCS(ttot,all_regi) "balance equation for captured carbon to CCU or CCS or valve" q_limitSo2(ttot,all_regi) "prevent SO2 from rising again after 2050" @@ -598,34 +598,34 @@ magicc_sed_script.ap = 0; *** INNOPATHS emissions reporting Parameter -o_emissions(ttot,all_regi,all_enty) "output parameter" -o_emissions_bunkers(ttot,all_regi,all_enty) "output parameter" -o_emissions_energy(ttot,all_regi,all_enty) "output parameter" -o_emissions_energy_demand(ttot,all_regi,all_enty) "output parameter" -o_emissions_energy_demand_sector(ttot,all_regi,all_enty,emi_sectors) "output parameter" -o_emissions_energy_supply_gross(ttot,all_regi,all_enty) "output parameter" -o_emissions_energy_supply_gross_carrier(ttot,all_regi,all_enty,all_enty) "output parameter" -o_emissions_energy_extraction(ttot,all_regi,all_enty,all_enty) "output parameter" -o_emissions_energy_negative(ttot,all_regi,all_enty) "output parameter" -o_emissions_industrial_processes(ttot,all_regi,all_enty) "output parameter" -o_emissions_AFOLU(ttot,all_regi,all_enty) "output parameter" -o_emissions_DACCS(ttot,all_regi,all_enty) "output parameter" -o_emissions_other(ttot,all_regi,all_enty) "output parameter" - -o_capture(ttot,all_regi,all_enty) "output parameter" -o_capture_energy(ttot,all_regi,all_enty) "output parameter" -o_capture_energy_elec(ttot,all_regi,all_enty) "output parameter" -o_capture_energy_other(ttot,all_regi,all_enty) "output parameter" -o_capture_cdr(ttot,all_regi,all_enty) "output parameter" -o_capture_industry(ttot,all_regi,all_enty) "output parameter" -o_capture_energy_bio(ttot,all_regi,all_enty) "output parameter" -o_capture_energy_fos(ttot,all_regi,all_enty) "output parameter" -o_carbon_CCU(ttot,all_regi,all_enty) "output parameter" -o_carbon_LandUse(ttot,all_regi,all_enty) "output parameter" -o_carbon_underground(ttot,all_regi,all_enty) "output parameter" -o_carbon_reemitted(ttot,all_regi,all_enty) "output parameter" - -o_emi_conv(all_enty) "output parameter" / co2 3666.6666666666666666666666666667, ch4 28, n2o 416.4286, so2 1, bc 1, oc 1 / +o_emissions(ttot,all_regi,emiTe) "output parameter" +o_emissions_bunkers(ttot,all_regi,emiTe) "output parameter" +o_emissions_energy(ttot,all_regi,emiTe) "output parameter" +o_emissions_energy_demand(ttot,all_regi,emiTe) "output parameter" +o_emissions_energy_demand_sector(ttot,all_regi,emiTe,emi_sectors) "output parameter" +o_emissions_energy_supply_gross(ttot,all_regi,emiTe) "output parameter" +o_emissions_energy_supply_gross_carrier(ttot,all_regi,emiTe,all_enty) "output parameter" +o_emissions_energy_extraction(ttot,all_regi,emiTe,all_enty) "output parameter" +o_emissions_energy_negative(ttot,all_regi,emiTe) "output parameter" +o_emissions_industrial_processes(ttot,all_regi,emiTe) "output parameter" +o_emissions_AFOLU(ttot,all_regi,emiTe) "output parameter" +o_emissions_DACCS(ttot,all_regi,emiTe) "output parameter" +o_emissions_other(ttot,all_regi,emiTe) "output parameter" + +o_capture(ttot,all_regi,emiTe) "output parameter" +o_capture_energy(ttot,all_regi,emiTe) "output parameter" +o_capture_energy_elec(ttot,all_regi,emiTe) "output parameter" +o_capture_energy_other(ttot,all_regi,emiTe) "output parameter" +o_capture_cdr(ttot,all_regi,emiTe) "output parameter" +o_capture_industry(ttot,all_regi,emiTe) "output parameter" +o_capture_energy_bio(ttot,all_regi,emiTe) "output parameter" +o_capture_energy_fos(ttot,all_regi,emiTe) "output parameter" +o_carbon_CCU(ttot,all_regi,emiTe) "output parameter" +o_carbon_LandUse(ttot,all_regi,emiTe) "output parameter" +o_carbon_underground(ttot,all_regi,emiTe) "output parameter" +o_carbon_reemitted(ttot,all_regi,emiTe) "output parameter" + +o_emi_conv(emiTe) "output parameter" / co2 3666.6666666666666666666666666667, ch4 28, n2o 416.4286, so2 1, bc 1, oc 1 / ; *** EOF ./core/declarations.gms diff --git a/core/equations.gms b/core/equations.gms old mode 100644 new mode 100755 index 78add0006..19cbc64f6 --- a/core/equations.gms +++ b/core/equations.gms @@ -128,10 +128,10 @@ q_balSe(t,regi,enty2)$( entySE(enty2) AND (NOT (sameas(enty2,"seel"))) ).. pm_prodCouple(regi,enty4,enty5,te,enty2) * vm_prodFe(t,regi,enty4,enty5,te) ) - + sum(pc2te(enty,enty3,te,enty2), + + sum(pc2emi(emiAll,enty3,te,enty2), sum(teCCS2rlf(te,rlf), - pm_prodCouple(regi,enty,enty3,te,enty2) - * vm_co2CCS(t,regi,enty,enty3,te,rlf) + pm_prodCoupleEmi(regi,emiAll,enty3,te,enty2) + * vm_co2CCS(t,regi,emiAll,enty3,te,rlf) ) ) *** add (reused gas from waste landfills) to segas to not account for CO2 @@ -281,8 +281,8 @@ q_limitCapFe(t,regi,te).. ***--------------------------------------------------------------------------- *' Definition of capacity constraints for CCS technologies: ***--------------------------------------------------------------------------- -q_limitCapCCS(t,regi,ccs2te(enty,enty2,te),rlf)$teCCS2rlf(te,rlf).. - vm_co2CCS(t,regi,enty,enty2,te,rlf) +q_limitCapCCS(t,regi,ccs2te(emiAll,enty2,te),rlf)$teCCS2rlf(te,rlf).. + vm_co2CCS(t,regi,emiAll,enty2,te,rlf) =e= sum(teCCS2rlf(te,rlf), vm_capFac(t,regi,te) * vm_cap(t,regi,te,rlf)); @@ -488,20 +488,20 @@ q_limitBiotrmod(t,regi)$(t.val > 2020).. *' from secondary to final energy transformation (some air pollutants), or *' transformations within the chain of CCS steps (Leakage). ***----------------------------------------------------------------------------- -q_emiTeDetail(t,regi,enty,enty2,te,enty3)$(emi2te(enty,enty2,te,enty3) OR (pe2se(enty,enty2,te) AND sameas(enty3,"cco2")) ) .. - vm_emiTeDetail(t,regi,enty,enty2,te,enty3) +q_emiTeDetail(t,regi,enty,enty2,te,emiAll)$(emi2te(enty,enty2,te,emiAll) OR (pe2se(enty,enty2,te) AND sameas(emiAll,"cco2")) ) .. + vm_emiTeDetail(t,regi,enty,enty2,te,emiAll) =e= - sum(emiMkt, v_emiTeDetailMkt(t,regi,enty,enty2,te,enty3,emiMkt)) + sum(emiMkt, v_emiTeDetailMkt(t,regi,enty,enty2,te,emiAll,emiMkt)) ; ***-------------------------------------------------- *' Total energy-emissions: ***-------------------------------------------------- *** calculate total energy system emissions for each region and timestep: -q_emiTe(t,regi,emiTe(enty)).. - vm_emiTe(t,regi,enty) +q_emiTe(t,regi,emiTe).. + vm_emiTe(t,regi,emiTe) =e= - sum(emiMkt, vm_emiTeMkt(t,regi,enty,emiMkt)) + sum(emiMkt, vm_emiTeMkt(t,regi,emiTe,emiMkt)) ; ***----------------------------------------------------------------------------- @@ -511,22 +511,22 @@ q_emiTe(t,regi,emiTe(enty)).. *' transformations within the chain of CCS steps (Leakage). ***----------------------------------------------------------------------------- -q_emiTeDetailMkt(t,regi,enty,enty2,te,enty3,emiMkt)$(emi2te(enty,enty2,te,enty3) OR (pe2se(enty,enty2,te) AND sameas(enty3,"cco2")) ) .. - v_emiTeDetailMkt(t,regi,enty,enty2,te,enty3,emiMkt) +q_emiTeDetailMkt(t,regi,enty,enty2,te,emiAll,emiMkt)$(emi2te(enty,enty2,te,emiAll) OR (pe2se(enty,enty2,te) AND sameas(emiAll,"cco2")) ) .. + v_emiTeDetailMkt(t,regi,enty,enty2,te,emiAll,emiMkt) =e= - sum(emi2te(enty,enty2,te,enty3), + sum(emi2te(enty,enty2,te,emiAll), ( sum(pe2se(enty,enty2,te), - pm_emifac(t,regi,enty,enty2,te,enty3) + pm_emifac(t,regi,enty,enty2,te,emiAll) * vm_demPE(t,regi,enty,enty2,te) ) - + sum((ccs2Leak(enty,enty2,te,enty3),teCCS2rlf(te,rlf)), - pm_emifac(t,regi,enty,enty2,te,enty3) - * vm_co2CCS(t,regi,enty,enty2,te,rlf) + + sum((ccs2Leak(emiAll,enty2,te,emiAll),teCCS2rlf(te,rlf)), + pm_emifac(t,regi,enty,enty2,te,emiAll) + * vm_co2CCS(t,regi,emiAll,enty2,te,rlf) ) )$(sameas(emiMkt,"ETS")) + sum(se2fe(enty,enty2,te), - pm_emifac(t,regi,enty,enty2,te,enty3) + pm_emifac(t,regi,enty,enty2,te,emiAll) * sum(sector$(entyFe2Sector(enty2,sector) AND sector2emiMkt(sector,emiMkt)), vm_demFeSector(t,regi,enty,enty2,sector,emiMkt)) ) ) @@ -536,20 +536,20 @@ q_emiTeDetailMkt(t,regi,enty,enty2,te,enty3,emiMkt)$(emi2te(enty,enty2,te,enty3) *' energy emissions from fuel extraction ***-------------------------------------------------- -q_emiEnFuelEx(t,regi,emiTe(enty)).. - v_emiEnFuelEx(t,regi,enty) +q_emiEnFuelEx(t,regi,emiTe).. + v_emiEnFuelEx(t,regi,emiTe) =e= *** emissions from non-conventional fuel extraction - sum(emi2fuelMine(enty,enty2,rlf), - p_cint(regi,enty,enty2,rlf) - * vm_fuExtr(t,regi,enty2,rlf) + sum(emi2fuelMine(emiTe,enty,rlf), + p_cint(regi,emiTe,enty,rlf) + * vm_fuExtr(t,regi,enty,rlf) )$( c_cint_scen eq 1 ) *** emissions from conventional fuel extraction - + (sum(pe2rlf(enty3,rlf2), - sum(enty2$(peFos(enty2)), - (p_cintraw(enty2) - * pm_fuExtrOwnCons(regi, enty2, enty3) - * vm_fuExtr(t,regi,enty3,rlf2))$(pm_fuExtrOwnCons(regi, enty2, enty3) gt 0))))$(sameas("co2",enty)) + + (sum(pe2rlf(enty2,rlf2), + sum(enty$(peFos(enty)), + (p_cintraw(enty) + * pm_fuExtrOwnCons(regi, enty, enty2) + * vm_fuExtr(t,regi,enty2,rlf2))$(pm_fuExtrOwnCons(regi, enty, enty2) gt 0))))$(sameas("co2",emiTe)) ; @@ -557,44 +557,44 @@ q_emiEnFuelEx(t,regi,emiTe(enty)).. ***-------------------------------------------------- *' Total energy-emissions per emission market, region and timestep ***-------------------------------------------------- -q_emiTeMkt(t,regi,emiTe(enty),emiMkt).. - vm_emiTeMkt(t,regi,enty,emiMkt) +q_emiTeMkt(t,regi,emiTe,emiMkt).. + vm_emiTeMkt(t,regi,emiTe,emiMkt) =e= *** emissions from fuel combustion - sum(emi2te(enty2,enty3,te,enty), - v_emiTeDetailMkt(t,regi,enty2,enty3,te,enty,emiMkt) + sum(emi2te(enty,enty2,te,emiTe), + v_emiTeDetailMkt(t,regi,enty,enty2,te,emiTe,emiMkt) ) *** energy emissions fuel extraction - + v_emiEnFuelEx(t,regi,enty)$(sameas(emiMkt,"ETS")) + + v_emiEnFuelEx(t,regi,emiTe)$(sameas(emiMkt,"ETS")) *** Industry CCS emissions - - ( sum(emiMac2mac(emiInd37_fuel,enty2), + - ( sum(emiMac2mac(emiInd37_fuel,enty), vm_emiIndCCS(t,regi,emiInd37_fuel) - )$( sameas(enty,"co2") ) + )$( sameas(emiTe,"co2") ) )$(sameas(emiMkt,"ETS")) *** LP, Valve from cco2 capture step, to mangage if capture capacity and CCU/CCS capacity don't have the same lifetime - + ( v_co2capturevalve(t,regi)$( sameas(enty,"co2") ) )$(sameas(emiMkt,"ETS")) + + ( v_co2capturevalve(t,regi)$( sameas(emiTe,"co2") ) )$(sameas(emiMkt,"ETS")) *** JS CO2 from short-term CCU (short term CCU co2 is emitted again in a time period shorter than 5 years) + sum(teCCU2rlf(te2,rlf), - vm_co2CCUshort(t,regi,"cco2","ccuco2short",te2,rlf)$( sameas(enty,"co2") ) + vm_co2CCUshort(t,regi,"cco2","ccuco2short",te2,rlf)$( sameas(emiTe,"co2") ) )$(sameas(emiMkt,"ETS")) ; ***-------------------------------------------------- *' Total emissions ***-------------------------------------------------- -q_emiAllMkt(t,regi,emi,emiMkt).. - vm_emiAllMkt(t,regi,emi,emiMkt) +q_emiAllMkt(t,regi,emiTe,emiMkt).. + vm_emiAllMkt(t,regi,emiTe,emiMkt) =e= - vm_emiTeMkt(t,regi,emi,emiMkt) + vm_emiTeMkt(t,regi,emiTe,emiMkt) *** Non-energy sector emissions. Note: These are emissions from all MAC curves. *** So, this includes fugitive emissions, which are sometimes also subsumed under the term energy emissions. - + sum(emiMacSector2emiMac(emiMacSector,emiMac(emi))$macSector2emiMkt(emiMacSector,emiMkt), + + sum(emiMacSector2emiMac(emiMacSector,emiMac(emiTe))$macSector2emiMkt(emiMacSector,emiMkt), vm_emiMacSector(t,regi,emiMacSector) ) *** CDR from CDR module - + vm_emiCdr(t,regi,emi)$(sameas(emi,"co2") AND sameas(emiMkt,"ETS")) + + vm_emiCdr(t,regi,emiTe)$(sameas(emiTe,"co2") AND sameas(emiMkt,"ETS")) *** Exogenous emissions - + pm_emiExog(t,regi,emi)$(sameas(emiMkt,"other")) + + pm_emiExog(t,regi,emiTe)$(sameas(emiMkt,"other")) ; @@ -683,7 +683,7 @@ q_emiMac(t,regi,emiMac) .. q_emiCdrAll(t,regi).. vm_emiCdrAll(t,regi) =e= !! BECC + DACC - (sum(emiBECCS2te(enty,enty2,te,enty3),vm_emiTeDetail(t,regi,enty,enty2,te,enty3)) + (sum(emiBECCS2te(enty,enty2,te,emiAll),vm_emiTeDetail(t,regi,enty,enty2,te,emiAll)) + sum(teCCS2rlf(te,rlf), vm_ccs_cdr(t,regi,"cco2","ico2","ccsinje",rlf))) !! scaled by the fraction that gets stored geologically * (sum(teCCS2rlf(te,rlf), @@ -701,25 +701,25 @@ q_emiCdrAll(t,regi).. *' Total regional emissions are the sum of emissions from technologies, MAC-curves, CDR-technologies and emissions that are exogenously given for REMIND. ***------------------------------------------------------ *LB* calculate total emissions for each region at each time step -q_emiAll(t,regi,emi(enty)).. - vm_emiAll(t,regi,enty) +q_emiAll(t,regi,emiTe).. + vm_emiAll(t,regi,emiTe) =e= - vm_emiTe(t,regi,enty) - + vm_emiMac(t,regi,enty) - + vm_emiCdr(t,regi,enty) - + pm_emiExog(t,regi,enty) + vm_emiTe(t,regi,emiTe) + + vm_emiMac(t,regi,emiTe) + + vm_emiCdr(t,regi,emiTe) + + pm_emiExog(t,regi,emiTe) ; ***------------------------------------------------------ *' Total global emissions are calculated for each GHG emission type and links the energy system to the climate module. ***------------------------------------------------------ *LB* calculate total global emissions for each timestep - link to the climate module -q_emiAllGlob(t,emi(enty)).. - vm_emiAllGlob(t,enty) +q_emiAllGlob(t,emiTe).. + vm_emiAllGlob(t,emiTe) =e= sum(regi, - vm_emiAll(t,regi,enty) - + pm_emissionsForeign(t,regi,enty) + vm_emiAll(t,regi,emiTe) + + pm_emissionsForeign(t,regi,emiTe) ) ; @@ -785,14 +785,14 @@ q_budgetCO2eqGlob$(cm_emiscen=6).. ***--------------------------------------------------------------------------- *' Definition of carbon capture : ***--------------------------------------------------------------------------- -q_balcapture(t,regi,ccs2te(ccsCO2(enty),enty2,te)) .. - sum(teCCS2rlf(te,rlf),vm_co2capture(t,regi,enty,enty2,te,rlf)) +q_balcapture(t,regi,ccs2te(ccsCO2(emiAll),enty2,te)) .. + sum(teCCS2rlf(te,rlf),vm_co2capture(t,regi,emiAll,enty2,te,rlf)) =e= - sum(emi2te(enty3,enty4,te2,enty), - vm_emiTeDetail(t,regi,enty3,enty4,te2,enty) + sum(emi2te(enty3,enty4,te2,emiAll), + vm_emiTeDetail(t,regi,enty3,enty4,te2,emiAll) ) + sum(teCCS2rlf(te,rlf), - vm_ccs_cdr(t,regi,enty,enty2,te,rlf) + vm_ccs_cdr(t,regi,emiAll,enty2,te,rlf) ) *** CCS from industry + sum(emiInd37, @@ -817,13 +817,13 @@ q_balCCUvsCCS(t,regi) .. *' Definition of the CCS transformation chain: ***--------------------------------------------------------------------------- *** no effect while CCS chain is limited to just one step (ccsinje) -q_transCCS(t,regi,ccs2te(enty,enty2,te),ccs2te2(enty2,enty3,te2),rlf)$teCCS2rlf(te2,rlf).. - (1-pm_emifac(t,regi,enty,enty2,te,"co2")) * vm_co2CCS(t,regi,enty,enty2,te,rlf) +q_transCCS(t,regi,ccs2te(emiAll,enty2,te),ccs2te2(emiAll,enty3,te2),rlf)$teCCS2rlf(te2,rlf).. + (1-pm_emifac(t,regi,emiAll,enty2,te,"co2")) * vm_co2CCS(t,regi,emiAll,enty2,te,rlf) =e= - vm_co2CCS(t,regi,enty2,enty3,te2,rlf); + vm_co2CCS(t,regi,emiAll,enty3,te2,rlf); -q_limitCCS(regi,ccs2te2(enty,"ico2",te),rlf)$teCCS2rlf(te,rlf).. - sum(ttot $(ttot.val ge 2005), pm_ts(ttot) * vm_co2CCS(ttot,regi,enty,"ico2",te,rlf)) +q_limitCCS(regi,ccs2te2(emiAll,"ico2",te),rlf)$teCCS2rlf(te,rlf).. + sum(ttot $(ttot.val ge 2005), pm_ts(ttot) * vm_co2CCS(ttot,regi,emiAll,"ico2",te,rlf)) =l= pm_dataccs(regi,"quan",rlf); diff --git a/core/postsolve.gms b/core/postsolve.gms old mode 100644 new mode 100755 index b3f5fe93d..d48468ee6 --- a/core/postsolve.gms +++ b/core/postsolve.gms @@ -639,57 +639,57 @@ pm_PEPrice(ttot,regi,entyPe)$(abs (qm_budget.m(ttot,regi)) gt sm_eps) = pm_share_CCS_CCO2(t,regi) = sum(teCCS2rlf(te,rlf), vm_co2CCS.l(t,regi,"cco2","ico2",te,rlf)) / (sum(teCCS2rlf(te,rlf), vm_co2capture.l(t,regi,"cco2","ico2",te,rlf))+sm_eps); *** INNOPATHS emissions reporting -o_emissions_bunkers(ttot,regi,emi)$(ttot.val ge 2005) = +o_emissions_bunkers(ttot,regi,emiTe)$(ttot.val ge 2005) = sum(se2fe(enty,enty2,te), - pm_emifac(ttot,regi,enty,enty2,te,emi) + pm_emifac(ttot,regi,enty,enty2,te,emiTe) * vm_demFeSector.l(ttot,regi,enty,enty2,"trans","other") - )*o_emi_conv(emi); + )*o_emi_conv(emiTe); -o_emissions(ttot,regi,emi)$(ttot.val ge 2005) = - sum(emiMkt, vm_emiAllMkt.l(ttot,regi,emi,emiMkt))*o_emi_conv(emi) - - o_emissions_bunkers(ttot,regi,emi); +o_emissions(ttot,regi,emiTe)$(ttot.val ge 2005) = + sum(emiMkt, vm_emiAllMkt.l(ttot,regi,emiTe,emiMkt))*o_emi_conv(emiTe) + - o_emissions_bunkers(ttot,regi,emiTe); *** note! this still excludes industry CCS and CCU. To fix. -o_emissions_energy(ttot,regi,emi)$(ttot.val ge 2005) = - sum(emiMkt, vm_emiTeMkt.l(ttot,regi,emi,emiMkt))*o_emi_conv(emi) - - o_emissions_bunkers(ttot,regi,emi); +o_emissions_energy(ttot,regi,emiTe)$(ttot.val ge 2005) = + sum(emiMkt, vm_emiTeMkt.l(ttot,regi,emiTe,emiMkt))*o_emi_conv(emiTe) + - o_emissions_bunkers(ttot,regi,emiTe); *** note! this still excludes industry CCS. To fix. -o_emissions_energy_demand(ttot,regi,emi)$(ttot.val ge 2005) = +o_emissions_energy_demand(ttot,regi,emiTe)$(ttot.val ge 2005) = sum(sector2emiMkt(sector,emiMkt), sum(se2fe(enty,enty2,te), - pm_emifac(ttot,regi,enty,enty2,te,emi) + pm_emifac(ttot,regi,enty,enty2,te,emiTe) * vm_demFeSector.l(ttot,regi,enty,enty2,sector,emiMkt) ) - )*o_emi_conv(emi) - - o_emissions_bunkers(ttot,regi,emi) + )*o_emi_conv(emiTe) + - o_emissions_bunkers(ttot,regi,emiTe) ; *** note! this still excludes industry CCS. To fix. -o_emissions_energy_demand_sector(ttot,regi,emi,sector)$(ttot.val ge 2005) = +o_emissions_energy_demand_sector(ttot,regi,emiTe,sector)$(ttot.val ge 2005) = sum(emiMkt$sector2emiMkt(sector,emiMkt), sum(se2fe(enty,enty2,te), - pm_emifac(ttot,regi,enty,enty2,te,emi) * vm_demFeSector.l(ttot,regi,enty,enty2,sector,emiMkt) + pm_emifac(ttot,regi,enty,enty2,te,emiTe) * vm_demFeSector.l(ttot,regi,enty,enty2,sector,emiMkt) ) - )*o_emi_conv(emi) + )*o_emi_conv(emiTe) + - (sum(emiMacSector$(emiMac2sector(emiMacSector,"trans","process",emi)), + (sum(emiMacSector$(emiMac2sector(emiMacSector,"trans","process",emiTe)), vm_emiMacSector.l(ttot,regi,emiMacSector) - )*o_emi_conv(emi) - - o_emissions_bunkers(ttot,regi,emi) + )*o_emi_conv(emiTe) + - o_emissions_bunkers(ttot,regi,emiTe) )$(sameas(sector,"trans")) + - (sum(emiMacSector$(emiMac2sector(emiMacSector,"waste","process",emi)), + (sum(emiMacSector$(emiMac2sector(emiMacSector,"waste","process",emiTe)), vm_emiMacSector.l(ttot,regi,emiMacSector) - )*o_emi_conv(emi) + )*o_emi_conv(emiTe) )$(sameas(sector,"waste")) ; -o_emissions_energy_extraction(ttot,regi,emi,entyPe)$(ttot.val ge 2005) = +o_emissions_energy_extraction(ttot,regi,emiTe,entyPe)$(ttot.val ge 2005) = *** emissions from non-conventional fuel extraction ( - ( sum(emi2fuelMine(emi,entyPe,rlf), - p_cint(regi,emi,entyPe,rlf) + ( sum(emi2fuelMine(emiTe,entyPe,rlf), + p_cint(regi,emiTe,entyPe,rlf) * vm_fuExtr.l(ttot,regi,entyPe,rlf) )$( c_cint_scen eq 1 ) ) @@ -701,88 +701,88 @@ o_emissions_energy_extraction(ttot,regi,emi,entyPe)$(ttot.val ge 2005) = )$(pm_fuExtrOwnCons(regi, entyPe, enty2) gt 0) )) ) - )*o_emi_conv(emi) + )*o_emi_conv(emiTe) + - (sum(emiMacSector$(emiMac2sector("ch4coal","extraction","process",emi)), + (sum(emiMacSector$(emiMac2sector("ch4coal","extraction","process",emiTe)), vm_emiMacSector.l(ttot,regi,emiMacSector) - )*o_emi_conv(emi) + )*o_emi_conv(emiTe) )$(sameas(entyPe,"pecoal")) + - (sum(emiMacSector$(emiMac2sector("ch4gas","extraction","process",emi)), + (sum(emiMacSector$(emiMac2sector("ch4gas","extraction","process",emiTe)), vm_emiMacSector.l(ttot,regi,emiMacSector) - )*o_emi_conv(emi) + )*o_emi_conv(emiTe) )$(sameas(entyPe,"pegas")) + - (sum(emiMacSector$(emiMac2sector("ch4oil","extraction","process",emi)), + (sum(emiMacSector$(emiMac2sector("ch4oil","extraction","process",emiTe)), vm_emiMacSector.l(ttot,regi,emiMacSector) - )*o_emi_conv(emi) + )*o_emi_conv(emiTe) )$(sameas(entyPe,"peoil")) ; -o_emissions_energy_supply_gross(ttot,regi,emi)$(ttot.val ge 2005) = - sum(pe2se(entyPe,entySe,te)$(pm_emifac(ttot,regi,entyPe,entySe,te,emi)>0), - pm_emifac(ttot,regi,entyPe,entySe,te,emi) +o_emissions_energy_supply_gross(ttot,regi,emiTe)$(ttot.val ge 2005) = + sum(pe2se(entyPe,entySe,te)$(pm_emifac(ttot,regi,entyPe,entySe,te,emiTe)>0), + pm_emifac(ttot,regi,entyPe,entySe,te,emiTe) * vm_demPE.l(ttot,regi,entyPe,entySe,te) - )*o_emi_conv(emi) + )*o_emi_conv(emiTe) + - sum(entyPe, o_emissions_energy_extraction(ttot,regi,emi,entyPe)) + sum(entyPe, o_emissions_energy_extraction(ttot,regi,emiTe,entyPe)) ; -o_emissions_energy_supply_gross_carrier(ttot,regi,emi,entySe)$(ttot.val ge 2005) = - sum((entyPe,te)$(pe2se(entyPe,entySe,te) AND (pm_emifac(ttot,regi,entyPe,entySe,te,emi)>0)), - pm_emifac(ttot,regi,entyPe,entySe,te,emi) +o_emissions_energy_supply_gross_carrier(ttot,regi,emiTe,entySe)$(ttot.val ge 2005) = + sum((entyPe,te)$(pe2se(entyPe,entySe,te) AND (pm_emifac(ttot,regi,entyPe,entySe,te,emiTe)>0)), + pm_emifac(ttot,regi,entyPe,entySe,te,emiTe) * vm_demPE.l(ttot,regi,entyPe,entySe,te) - )*o_emi_conv(emi) + )*o_emi_conv(emiTe) + ( - o_emissions_energy_extraction(ttot,regi,emi,"pecoal") + o_emissions_energy_extraction(ttot,regi,emiTe,"pecoal") )$(sameas(entySe,"sesofos")) + ( - o_emissions_energy_extraction(ttot,regi,emi,"pegas") + o_emissions_energy_extraction(ttot,regi,emiTe,"pegas") )$(sameas(entySe,"segafos")) + ( - o_emissions_energy_extraction(ttot,regi,emi,"peoil") + o_emissions_energy_extraction(ttot,regi,emiTe,"peoil") )$(sameas(entySe,"seliqfos")) ; -o_emissions_energy_negative(ttot,regi,emi)$(ttot.val ge 2005) = +o_emissions_energy_negative(ttot,regi,emiTe)$(ttot.val ge 2005) = ( - sum(pe2se(entyPe,entySe,te)$(pm_emifac(ttot,regi,entyPe,entySe,te,emi)<0), - pm_emifac(ttot,regi,entyPe,entySe,te,emi) + sum(pe2se(entyPe,entySe,te)$(pm_emifac(ttot,regi,entyPe,entySe,te,emiTe)<0), + pm_emifac(ttot,regi,entyPe,entySe,te,emiTe) * vm_demPE.l(ttot,regi,entyPe,entySe,te) ) + - sum((ccs2Leak(enty,enty2,te,emi),teCCS2rlf(te,rlf)), - pm_emifac(ttot,regi,enty,enty2,te,emi) - * vm_co2CCS.l(ttot,regi,enty,enty2,te,rlf) + sum((ccs2Leak(emiAll,enty2,te,emiTe),teCCS2rlf(te,rlf)), + pm_emifac(ttot,regi,emiAll,enty2,te,emiTe) + * vm_co2CCS.l(ttot,regi,emiAll,enty2,te,rlf) ) *** Industry CCS emissions - ( sum(emiMac2mac(emiInd37_fuel,enty2), vm_emiIndCCS.l(ttot,regi,emiInd37_fuel) - )$( sameas(emi,"co2") ) + )$( sameas(emiTe,"co2") ) ) - )*o_emi_conv(emi) + )*o_emi_conv(emiTe) ; -o_emissions_industrial_processes(ttot,regi,emi)$(ttot.val ge 2005) = - sum(emiMacSector$(emiMac2sector(emiMacSector,"indst","process",emi)), +o_emissions_industrial_processes(ttot,regi,emiTe)$(ttot.val ge 2005) = + sum(emiMacSector$(emiMac2sector(emiMacSector,"indst","process",emiTe)), vm_emiMacSector.l(ttot,regi,emiMacSector) - )*o_emi_conv(emi); + )*o_emi_conv(emiTe); -o_emissions_AFOLU(ttot,regi,emi)$(ttot.val ge 2005) = - sum(emiMacSector$(emiMac2sector(emiMacSector,"agriculture","process",emi) OR emiMac2sector(emiMacSector,"lulucf","process",emi)), +o_emissions_AFOLU(ttot,regi,emiTe)$(ttot.val ge 2005) = + sum(emiMacSector$(emiMac2sector(emiMacSector,"agriculture","process",emiTe) OR emiMac2sector(emiMacSector,"lulucf","process",emiTe)), vm_emiMacSector.l(ttot,regi,emiMacSector) - )*o_emi_conv(emi); + )*o_emi_conv(emiTe); -o_emissions_DACCS(ttot,regi,emi)$(ttot.val ge 2005) = - vm_emiCdr.l(ttot,regi,emi)*o_emi_conv(emi) +o_emissions_DACCS(ttot,regi,emiTe)$(ttot.val ge 2005) = + vm_emiCdr.l(ttot,regi,emiTe)*o_emi_conv(emiTe) ; -o_emissions_other(ttot,regi,emi)$(ttot.val ge 2005) = - pm_emiExog(ttot,regi,emi)*o_emi_conv(emi) +o_emissions_other(ttot,regi,emiTe)$(ttot.val ge 2005) = + pm_emiExog(ttot,regi,emiTe)*o_emi_conv(emiTe) ; ***Carbon Management|Carbon Capture (Mt CO2/yr) diff --git a/core/preloop.gms b/core/preloop.gms old mode 100644 new mode 100755 index 8a06a6c3e..8a49affae --- a/core/preloop.gms +++ b/core/preloop.gms @@ -22,7 +22,7 @@ model hybrid /all/; *** Set level values, so that reference value is available even if gdx has no level value to overwrite. Gams complains if .l was never initialized. vm_emiMacSector.l(ttot,regi,enty) = 0; -vm_emiTe.l(ttot,regi,enty) = 0; +vm_emiTe.l(ttot,regi,emiAll) = 0; vm_emiCdr.l(ttot,regi,enty) = 0; vm_prodFe.l(ttot,regi,entyFe2,entyFe2,te) = 0; vm_prodSe.l(ttot,regi,enty,enty2,te) = 0; @@ -32,7 +32,7 @@ vm_capDistr.l(t,regi,te,rlf) = 0; vm_cap.l(t,regi,te,rlf) = 0; vm_fuExtr.l(ttot,regi,"pebiolc","1")$(ttot.val ge 2005) = 0; vm_pebiolc_price.l(ttot,regi)$(ttot.val ge 2005) = 0; -vm_emiAllMkt.l(t,regi,enty,emiMkt) = 0; +vm_emiAllMkt.l(t,regi,emiTe,emiMkt) = 0; vm_co2eqMkt.l(ttot,regi,emiMkt) = 0; v_shfe.l(t,regi,enty,sector) = 0; diff --git a/core/presolve.gms b/core/presolve.gms old mode 100644 new mode 100755 index caddf28db..152345f7f --- a/core/presolve.gms +++ b/core/presolve.gms @@ -11,7 +11,7 @@ pm_share_trans(ttot,regi)$(ttot.val ge 2005) = sum(se2fe(entySe,entyFe,te)$(seAg *AJS* we need those in nash pm_capCum0(ttot,regi,teLearn)$( (ttot.val ge 2005) and (pm_SolNonInfes(regi) eq 1)) = vm_capCum.l(ttot,regi,teLearn); pm_co2eq0(ttot,regi)$( (ttot.val ge 2005) and (pm_SolNonInfes(regi) eq 1)) = vm_co2eq.l(ttot,regi); -pm_emissions0(ttot,regi,enty)$( (ttot.val ge 2005) and (pm_SolNonInfes(regi) eq 1)) = vm_emiAll.l(ttot,regi,enty); +pm_emissions0(ttot,regi,emiTe)$( (ttot.val ge 2005) and (pm_SolNonInfes(regi) eq 1)) = vm_emiAll.l(ttot,regi,emiTe); *LB* moved here from datainput to be updated based on the gdp-path *** calculate econometric emission data: p2 diff --git a/core/sets.gms b/core/sets.gms index 7e578136f..c476bfd09 100755 --- a/core/sets.gms +++ b/core/sets.gms @@ -1822,9 +1822,19 @@ entyFeTrans(all_enty) "final energy types from transport sector" feForCes(all_enty) "limit q_balFeForCes to entyFe in fe2ppfEn" -emi(all_enty) "types of emissions, these emissions are given to the climate module" +emiAll(all_enty) "all types of climate-relevant energy emissions" +/ + co2 "energy system co2" + so2 "energy system so2" + bc "black carbon from fossil fuel combustion" + oc "organic carbon from fossil fuel combustion" + ch4 "energy system ch4" + n2o "energy system n2o" + cco2 "captured CO2" + n2obio "N2O emissions from pebiolc " +/ -emiTe(all_enty) "types of climate-relevant energy emissions for climate coupling and reporting" +emiTe(emiAll) "types of climate-relevant energy emissions for climate coupling and reporting" / co2 "energy system co2" so2 "energy system so2" @@ -1833,19 +1843,19 @@ emiTe(all_enty) "types of climate-relevant energy emissions for climate coupli ch4 "energy system ch4" n2o "energy system n2o" / -emiExog(all_enty) "exogenous emissions" +emiExog(emiTe) "exogenous emissions" / so2 bc oc / -emiAP(all_enty) "Used for allocation of emission factors" +emiAP(emiTe) "Used for allocation of emission factors" / bc oc / -emiMac(all_enty) "sum over sub-emissions from emiMacSector" +emiMac(emiTe) "sum over sub-emissions from emiMacSector" / co2 n2o @@ -2114,7 +2124,7 @@ macSector2emiMkt(all_enty,all_emiMkt) "mapping mac sectors to emission markets" co2luc.other co2cement_process.ETS / -ccsCo2(all_enty) "only cco2 (???)" +ccsCo2(emiAll) "only cco2 (???)" / cco2 / @@ -2526,13 +2536,16 @@ pc2te(all_enty,all_enty,all_te,all_enty) "mapping for own consumption of tech segabio.fegas.tdbiogas.seel segafos.fegas.tdfosgas.seel pegeo.sehe.geohe.seel - cco2.ico2.ccsinje.seel fedie.uedit.apCarDiEffT.feelt fedie.uedit.apCarDiEffH2T.feelt fedie.uedit.apCarDiEffH2T.feh2t / +pc2emi(emiAll,all_enty,all_te,all_enty) "mapping for own emission consumption of technologies" +/ + cco2.ico2.ccsinje.seel +/ *NB* mappings for emissions, capture and leakage -emi2te(all_enty,all_enty,all_te,all_enty) " map emissions to technologies" +emi2te(all_enty,all_enty,all_te,emiAll) " map emissions to technologies" / pegas.seel.ngcc.co2 pegas.seel.ngt.co2 @@ -2672,7 +2685,7 @@ emi2fuel(all_enty,all_enty) "map emissions to fuel extraction" pegas.ch4gas peoil.ch4oil / -emiMacSector2emiMac(all_enty,all_enty) "mapping of sub-emissions to their sum" +emiMacSector2emiMac(all_enty,emiAll) "mapping of sub-emissions to their sum" / (co2luc,co2cement_process) .co2 (n2otrans,n2oadac,n2onitac,n2ofertin,n2ofertcr, n2ofertsom, n2oanwstc,n2oanwstm,n2opeatland,n2oanwstp,n2oagwaste,n2oforest,n2osavan,n2owaste).n2o @@ -2709,7 +2722,7 @@ emiMac2mac(all_enty,all_enty) "mapping of emission sources to MACs - co2steel . co2steel / -emiMac2sector(all_enty,emi_sectors,sector_types,all_enty) "mapping of emission sources from MACs to sectors (and emissions)" +emiMac2sector(all_enty,emi_sectors,sector_types,emiAll) "mapping of emission sources from MACs to sectors (and emissions)" / (ch4coal, ch4gas, ch4oil).extraction.process.ch4 (ch4wstl, ch4wsts).waste.process.ch4 @@ -2726,7 +2739,7 @@ emiMac2sector(all_enty,emi_sectors,sector_types,all_enty) "mapping of (co2luc).lulucf.process.co2 / -emiBECCS2te(all_enty,all_enty,all_te,all_enty) "mapping of BECCS PE,SE,technology and captured emissions" +emiBECCS2te(all_enty,all_enty,all_te,emiAll) "mapping of BECCS PE,SE,technology and captured emissions" / pebiolc.seliqbio.bioftcrec.cco2 pebiolc. seel.bioigccc.cco2 @@ -2734,11 +2747,11 @@ emiBECCS2te(all_enty,all_enty,all_te,all_enty) "mapping of BECCS PE,SE,technolog / *NB*111125 emissions from fossil fuel extraction by grade that is on top of combustion -emi2fuelMine(all_enty,all_enty,rlf) "missions from fossil fuel extraction" +emi2fuelMine(emiAll,all_enty,rlf) "missions from fossil fuel extraction" / co2.peoil.(4*8) / -ccs2te(all_enty,all_enty,all_te) "chain for ccs" +ccs2te(emiAll,all_enty,all_te) "chain for ccs" / * cco2.pco2.ccscomp * pco2.tco2.ccspipe @@ -2746,7 +2759,7 @@ ccs2te(all_enty,all_enty,all_te) "chain for ccs" * ico2.sco2.ccsmoni / -ccs2Leak(all_enty,all_enty,all_te,all_enty) "leakage along ccs chain" +ccs2Leak(emiAll,all_enty,all_te,emiAll) "leakage along ccs chain" / * cco2.pco2.ccscomp.co2 * pco2.tco2.ccspipe.co2 diff --git a/core/sets_calculations.gms b/core/sets_calculations.gms old mode 100644 new mode 100755 index 32b3ad3a4..21fe448b6 --- a/core/sets_calculations.gms +++ b/core/sets_calculations.gms @@ -29,14 +29,13 @@ teEtaConst(te) = not teEtaIncr(te); teNoCCS(te) = not teCCS(te); trade(enty) = tradePe(enty) + tradeSe(enty) + tradeMacro(enty); -emi(enty) = emiTe(enty) + emiMac(enty) + emiExog(enty); emiMacMagpie(enty) = emiMacMagpieCH4(enty) + emiMacMagpieN2O(enty) + emiMacMagpieCO2(enty); emiMacExo(enty) = emiMacExoCH4(enty) + emiMacExoN2O(enty); peExGrade(enty) = peEx(enty) - peExPol(enty); peRicardian(enty) = peBio(enty) + peEx(enty); en2se(enty,enty2,te) = pe2se(enty,enty2,te) + se2se(enty,enty2,te); -en2en(enty,enty2,te) = pe2se(enty,enty2,te) + se2se(enty,enty2,te) + se2fe(enty,enty2,te) + fe2ue(enty,enty2,te) + ccs2te(enty,enty2,te); +en2en(enty,enty2,te) = pe2se(enty,enty2,te) + se2se(enty,enty2,te) + se2fe(enty,enty2,te) + fe2ue(enty,enty2,te); te2rlf(te,rlf) = teFe2rlf(te,rlf) + teSe2rlf(te,rlf) + teue2rlf(te,rlf) + teCCS2rlf(te,rlf) + teCCU2rlf2(te,rlf) +teNoTransform2rlf(te,rlf) + teFe2rlfH2BI(te,rlf); ***---------------------------------------------------------------------------- *** Fill sets that were created empty and should be filled from the mappings above diff --git a/modules/04_PE_FE_parameters/iea2014/datainput.gms b/modules/04_PE_FE_parameters/iea2014/datainput.gms old mode 100644 new mode 100755 index 451796f0d..0b633c151 --- a/modules/04_PE_FE_parameters/iea2014/datainput.gms +++ b/modules/04_PE_FE_parameters/iea2014/datainput.gms @@ -248,7 +248,7 @@ p04_prodCoupleGlob("pebiolc","seliqbio","bioethl","seel") = 0.153; p04_prodCoupleGlob("segabio","fegas","tdbiogas","seel") = -0.05; p04_prodCoupleGlob("segafos","fegas","tdfosgas","seel") = -0.05; p04_prodCoupleGlob("pegeo","sehe","geohe","seel") = -0.3; -p04_prodCoupleGlob("cco2","ico2","ccsinje","seel") = -0.005; +***p04_prodCoupleGlob("cco2","ico2","ccsinje","seel") = -0.005; p04_prodCoupleGlob("fedie","uedit","apcardiEffT","feelt") = -0.1; p04_prodCoupleGlob("fedie","uedit","apcardiEffH2T","feelt") = -0.2; p04_prodCoupleGlob("fedie","uedit","apcardiEffH2T","feh2t") = -0.1; @@ -261,6 +261,18 @@ loop(pc2te(enty,enty2,te,enty3), ); ); display pm_prodCouple; + +*** define global values for couple production that can be used if the regional IEA data are 0 +p04_prodCoupleGlobEmi("cco2","ico2","ccsinje","seel") = -0.005; +loop(pc2emi(emiAll,enty,te,enty2), + loop(regi, + pm_prodCoupleEmi(regi,emiAll,enty,te,enty2) = p04_prodCoupleGlobEmi(emiAll,enty,te,enty2); + ); +); +display pm_prodCoupleEmi; + + + *** ---------------------------------------------------------------------------------------------------------- ***--------------------------------------- calculate eta and mix0 -------------------------------------------- *** ---------------------------------------------------------------------------------------------------------- diff --git a/modules/04_PE_FE_parameters/iea2014/declarations.gms b/modules/04_PE_FE_parameters/iea2014/declarations.gms old mode 100644 new mode 100755 index 9444fb2b1..20aa9d434 --- a/modules/04_PE_FE_parameters/iea2014/declarations.gms +++ b/modules/04_PE_FE_parameters/iea2014/declarations.gms @@ -11,6 +11,7 @@ pm_IO_input(all_regi,all_enty,all_enty,all_te) "Energy input bas p04_IO_output(all_regi,all_enty,all_enty,all_te) "Energy output based on IEA data" p04_x_enty2te_dyn04(all_regi,all_enty,all_enty,all_te,all_te) "parameter for the allocation of energy flow to technologies" pm_prodCouple(all_regi,all_enty,all_enty,all_te,all_enty) "own consumption" +pm_prodCoupleEmi(all_regi,emiAll,all_enty,all_te,all_enty) "own emission consumption" p04_aux_data(all_regi,char, all_te) "auxiliary parameter to store the initial mix0 and eta values for gas electricity before splitting it to ngcc and ngt (needed as long as calibration routine sets ngt to 0)" p04_shareNGTinGas(all_regi) "Share of ngt in electricity produced from gas" pm_fuExtrOwnCons(all_regi, all_enty, all_enty) "energy own consumption in the extraction sector with first enty being the output produced and the second enty being the input required" @@ -18,8 +19,7 @@ p04_shOilGasEx(all_regi, all_enty) "share of oil an p04_fuExtr(all_regi, all_enty) "regional fuel extraction for the base year calibration" pm_histfegrowth(all_regi,all_enty) "average growth rate of fe use from 1995 to 2005" p04_prodCoupleGlob(all_enty,all_enty,all_te,all_enty) "global couple products" - - +p04_prodCoupleGlobEmi(emiAll,all_enty,all_te,all_enty) "global emissions couple products" p04_IO_output_beforeFix(ttot,all_regi,all_enty,all_enty,all_te) "Energy output based on IEA data as read in from input data before correction from FE trajectories" p04_IO_output_beforeFix_Total(ttot,all_regi,all_enty) "Energy output based on IEA data as read in from input data before correction from FE trajectories summed over SE" ; diff --git a/modules/05_initialCap/on/preloop.gms b/modules/05_initialCap/on/preloop.gms old mode 100644 new mode 100755 index 217b50559..96fba10f4 --- a/modules/05_initialCap/on/preloop.gms +++ b/modules/05_initialCap/on/preloop.gms @@ -49,14 +49,26 @@ q05_eedemini(regi,enty).. / pm_data(regi,"eta",te) * v05_INIcap0(regi,te) ) + + sum(ccs2te(emiAll,enty2,te), + pm_cf("2005",regi,te) + / pm_data(regi,"eta",te) + * v05_INIcap0(regi,te) + ) !! subtract couple production pathways that produce this enty (= add couple production pathways that consume this enty): - sum(pc2te(enty3,enty4,te2,enty), pm_prodCouple(regi,enty3,enty4,te2,enty) * pm_cf("2005",regi,te2) * v05_INIcap0(regi,te2) ) + - sum(pc2emi(emiAll,enty4,te2,enty), + pm_prodCoupleEmi(regi,emiAll,enty4,te2,enty) + * pm_cf("2005",regi,te2) + * v05_INIcap0(regi,te2) + ) ; +v05_INIcap0.fx(regi, "ccsinje") = 0; + *** capacity meets demand of the produced energy: q05_ccapini(regi,en2en(enty,enty2,te)) .. pm_cf("2005",regi,te) diff --git a/modules/11_aerosols/exoGAINS/datainput.gms b/modules/11_aerosols/exoGAINS/datainput.gms old mode 100644 new mode 100755 index 5002c2fbf..93133151e --- a/modules/11_aerosols/exoGAINS/datainput.gms +++ b/modules/11_aerosols/exoGAINS/datainput.gms @@ -249,7 +249,7 @@ loop(emiAP, display pm_emifac; *** calculation of air pollution costs -p11_EF_mean(enty,enty2,te,enty3)$emi2te(enty,enty2,te,enty3) = sum(regi,pm_emifac("2005",regi,enty,enty2,te,enty3))/11; +p11_EF_mean(enty,enty2,te,emiAll)$emi2te(enty,enty2,te,emiAll) = sum(regi,pm_emifac("2005",regi,enty,enty2,te,emiAll))/11; *JeS data is taken from US EPA http://www.epa.gov/ttnecas1/models/DOCumentationReport.pdf#page=1469 p11_costpollution("pc", "SO2","power") = 768; diff --git a/modules/11_aerosols/exoGAINS/declarations.gms b/modules/11_aerosols/exoGAINS/declarations.gms old mode 100644 new mode 100755 index e94a5eb1f..e5c92c0fa --- a/modules/11_aerosols/exoGAINS/declarations.gms +++ b/modules/11_aerosols/exoGAINS/declarations.gms @@ -8,10 +8,10 @@ parameter p11_emiFacAP(tall,all_regi,all_enty,all_enty,all_te,sectorEndoEmi,all_enty) "air pollutant emission factors [Gt(species)/TWa]" p11_share_sector(tall,all_enty,all_enty,all_te,sectorEndoEmi,all_regi) "share of technology that goes into industry, residential, and transport sectorEndoEmi [1]" -p11_costpollution(all_te,all_enty,sectorEndoEmi) "pollutant abatement costs in [$/t]" +p11_costpollution(all_te,emiAll,sectorEndoEmi) "pollutant abatement costs in [$/t]" -p11_EF_uncontr(all_enty,all_enty,all_te,all_regi,all_enty,sectorEndoEmi) "regional uncontrolled pollutant emission factor" -p11_EF_mean(all_enty,all_enty,all_te,all_enty) "global mean pollutant emission factor in 2005" +p11_EF_uncontr(all_enty,all_enty,all_te,all_regi,emiAll,sectorEndoEmi) "regional uncontrolled pollutant emission factor" +p11_EF_mean(all_enty,all_enty,all_te,emiAll) "global mean pollutant emission factor in 2005" p11_cesIO(tall,all_regi,all_in) "cesIO parameter specific for the module" p11_emiAPexsolveGDX(tall,all_regi,all_sectorEmi,emiRCP) " parameter p11_emiAPexsolve loaded from the gdx" diff --git a/modules/11_aerosols/exoGAINS/equations.gms b/modules/11_aerosols/exoGAINS/equations.gms old mode 100644 new mode 100755 index ee18f166b..a4eae0331 --- a/modules/11_aerosols/exoGAINS/equations.gms +++ b/modules/11_aerosols/exoGAINS/equations.gms @@ -9,37 +9,37 @@ *** JeS: factor 0.000001 converts units from M$ to T$: e.g. for sulfur units are [TgS/TWa]*[TWa]*[$/pm_ts] q11_costpollution(t,regi).. -vm_costpollution(t,regi)=e=sum(emi2te(enty,enty2,te,enty3), +vm_costpollution(t,regi)=e=sum(emi2te(enty,enty2,te,emiAll), 0.000001*pm_ts(t) * ( - ( (p11_EF_uncontr(enty,enty2,te,regi,enty3,"indst")-pm_emifac(t,regi,enty,enty2,te,enty3)) + ( (p11_EF_uncontr(enty,enty2,te,regi,emiAll,"indst")-pm_emifac(t,regi,enty,enty2,te,emiAll)) * vm_demPe(t,regi,enty,enty2,te) * p11_share_sector(t,enty,enty2,te,"indst",regi) - * p11_costpollution(te,enty3,"indst") + * p11_costpollution(te,emiAll,"indst") )$( sectorEndoEmi2te(enty,enty2,te,"indst") AND pe2se(enty,enty2,te) ) - + ( (p11_EF_uncontr(enty,enty2,te,regi,enty3,"res")-pm_emifac(t,regi,enty,enty2,te,enty3)) + + ( (p11_EF_uncontr(enty,enty2,te,regi,emiAll,"res")-pm_emifac(t,regi,enty,enty2,te,emiAll)) * vm_demPe(t,regi,enty,enty2,te) * p11_share_sector(t,enty,enty2,te,"res",regi) - * p11_costpollution(te,enty3,"res") + * p11_costpollution(te,emiAll,"res") )$(sectorEndoEmi2te(enty,enty2,te,"res") AND pe2se(enty,enty2,te) ) - + ( (p11_EF_uncontr(enty,enty2,te,regi,enty3,"trans")-pm_emifac(t,regi,enty,enty2,te,enty3)) + + ( (p11_EF_uncontr(enty,enty2,te,regi,emiAll,"trans")-pm_emifac(t,regi,enty,enty2,te,emiAll)) * vm_prodFe(t,regi,enty,enty2,te) * p11_share_sector(t,enty,enty2,te,"trans",regi) - * p11_costpollution(te,enty3,"trans") + * p11_costpollution(te,emiAll,"trans") )$(sectorEndoEmi2te(enty,enty2,te,"trans") AND se2fe(enty,enty2,te) ) - + ( (p11_EF_mean(enty,enty2,te,enty3)-pm_emifac(t,regi,enty,enty2,te,enty3) ) + + ( (p11_EF_mean(enty,enty2,te,emiAll)-pm_emifac(t,regi,enty,enty2,te,emiAll) ) * vm_demPe(t,regi,enty,enty2,te) * p11_share_sector(t,enty,enty2,te,"power",regi) - * p11_costpollution(te,enty3,"power") + * p11_costpollution(te,emiAll,"power") )$(sectorEndoEmi2te(enty,enty2,te,"power") AND pe2se(enty,enty2,te) ) - + ( (p11_EF_uncontr("peoil","seel","dot",regi,enty3,"power")-p11_EF_mean("peoil","seel","dot",enty3)) + + ( (p11_EF_uncontr("peoil","seel","dot",regi,emiAll,"power")-p11_EF_mean("peoil","seel","dot",emiAll)) * vm_demPe(t,regi,"peoil","seel","dot") - * p11_costpollution("dot",enty3,"power") + * p11_costpollution("dot",emiAll,"power") )$( sameas(enty,"peoil") AND sameas(enty2,"seel") AND sameas(te,"dot") ) - + ( (p11_EF_mean(enty,enty2,te,enty3)-pm_emifac(t,regi,enty,enty2,te,enty3)) + + ( (p11_EF_mean(enty,enty2,te,emiAll)-pm_emifac(t,regi,enty,enty2,te,emiAll)) * vm_demPe(t,regi,enty,enty2,te) * p11_share_sector(t,enty,enty2,te,"trans",regi) - * p11_costpollution(te,enty3,"trans") + * p11_costpollution(te,emiAll,"trans") )$(sectorEndoEmi2te(enty,enty2,te,"trans") AND pe2se(enty,enty2,te) ) ) ); diff --git a/modules/15_climate/box/equations.gms b/modules/15_climate/box/equations.gms old mode 100644 new mode 100755 index 2a6ea825c..47c72e120 --- a/modules/15_climate/box/equations.gms +++ b/modules/15_climate/box/equations.gms @@ -183,7 +183,7 @@ q15_forc_os(t).. *' link to core ***----------------------------------------------------------------------------------------- q15_linkEMI(ttot2ta10(ttot, ta10),emis2climate10(enty,FOB10)).. - vm_emiAllGlob(ttot,enty) + vm_emiAllGlob(ttot,emiTe) =e= v15_emi(ta10,FOB10); $IF %cm_so2_out_of_opt% == "on" q15_linkEMI_aer(ttot2ta10(ttot, ta10),emiaer2climate10(emiaer,FOB10)).. p15_so2emi(ttot,emiaer) =e= v15_emi(ta10,FOB10); diff --git a/modules/21_tax/on/equations.gms b/modules/21_tax/on/equations.gms old mode 100644 new mode 100755 index 35c928dd7..4818e9c1f --- a/modules/21_tax/on/equations.gms +++ b/modules/21_tax/on/equations.gms @@ -86,8 +86,8 @@ v21_taxrevCO2luc(t,regi) =e= pm_taxCO2eqSum(t,regi) * cm_cprice_red_factor * vm_ q21_taxrevCCS(t,regi)$(t.val ge max(2010,cm_startyear)).. v21_taxrevCCS(t,regi) =e= cm_frac_CCS * pm_data(regi,"omf","ccsinje") * pm_inco0_t(t,regi,"ccsinje") - * ( sum(teCCS2rlf(te,rlf), sum(ccs2te(ccsCO2(enty),enty2,te), vm_co2CCS(t,regi,enty,enty2,te,rlf) ) ) ) - * (1/pm_ccsinjecrate(regi)) * sum(teCCS2rlf(te,rlf), sum(ccs2te(ccsCO2(enty),enty2,te), vm_co2CCS(t,regi,enty,enty2,te,rlf) ) ) / pm_dataccs(regi,"quan","1") !! fraction of injection constraint per year + * ( sum(teCCS2rlf(te,rlf), sum(ccs2te(ccsCO2(emiAll),enty2,te), vm_co2CCS(t,regi,emiAll,enty2,te,rlf) ) ) ) + * (1/pm_ccsinjecrate(regi)) * sum(teCCS2rlf(te,rlf), sum(ccs2te(ccsCO2(emiAll),enty2,te), vm_co2CCS(t,regi,emiAll,enty2,te,rlf) ) ) / pm_dataccs(regi,"quan","1") !! fraction of injection constraint per year - p21_taxrevCCS0(t,regi); ***--------------------------------------------------------------------------- diff --git a/modules/21_tax/on/postsolve.gms b/modules/21_tax/on/postsolve.gms old mode 100644 new mode 100755 index d07a08265..00e8ef4e3 --- a/modules/21_tax/on/postsolve.gms +++ b/modules/21_tax/on/postsolve.gms @@ -25,8 +25,8 @@ p21_taxrevGHG0(ttot,regi) = pm_taxCO2eqSum(ttot,regi) * (vm_co2eq.l(ttot,regi) - p21_taxrevCO2Sector0(ttot,regi,emi_sectors) = p21_CO2TaxSectorMarkup(regi,emi_sectors) * pm_taxCO2eqSum(ttot,regi) * vm_emiCO2Sector.l(ttot,regi,emi_sectors); p21_taxrevCO2luc0(ttot,regi) = pm_taxCO2eqSum(ttot,regi) * cm_cprice_red_factor * vm_emiMacSector.l(ttot,regi,"co2luc")$(cm_multigasscen ne 3); p21_taxrevCCS0(ttot,regi) = cm_frac_CCS * pm_data(regi,"omf","ccsinje") * pm_inco0_t(ttot,regi,"ccsinje") - * ( sum(teCCS2rlf(te,rlf), sum(ccs2te(ccsCO2(enty),enty2,te), vm_co2CCS.l(ttot,regi,enty,enty2,te,rlf) ) ) ) - * (1/pm_ccsinjecrate(regi)) * sum(teCCS2rlf(te,rlf), sum(ccs2te(ccsCO2(enty),enty2,te), vm_co2CCS.l(ttot,regi,enty,enty2,te,rlf) ) ) / pm_dataccs(regi,"quan","1"); + * ( sum(teCCS2rlf(te,rlf), sum(ccs2te(ccsCO2(emiAll),enty2,te), vm_co2CCS.l(ttot,regi,emiAll,enty2,te,rlf) ) ) ) + * (1/pm_ccsinjecrate(regi)) * sum(teCCS2rlf(te,rlf), sum(ccs2te(ccsCO2(emiAll),enty2,te), vm_co2CCS.l(ttot,regi,emiAll,enty2,te,rlf) ) ) / pm_dataccs(regi,"quan","1"); p21_taxrevNetNegEmi0(ttot,regi) = cm_frac_NetNegEmi * pm_taxCO2eqSum(ttot,regi) * v21_emiALLco2neg.l(ttot,regi); p21_taxrevFE0(ttot,regi) = sum((entyFe,sector)$entyFe2Sector(entyFe,sector), ( pm_tau_fe_tax(ttot,regi,sector,entyFe) + pm_tau_fe_sub(ttot,regi,sector,entyFe) ) diff --git a/modules/21_tax/on/preloop.gms b/modules/21_tax/on/preloop.gms old mode 100644 new mode 100755 index fd7be738c..a99de00fa --- a/modules/21_tax/on/preloop.gms +++ b/modules/21_tax/on/preloop.gms @@ -139,7 +139,7 @@ display pm_tau_fe_tax; display p21_tau_pe2se_sub, p21_tau_fuEx_sub; *LB* initialization of vm_emiMac -vm_emiMac.l(ttot,regi,enty) = 0; +vm_emiMac.l(ttot,regi,emiTe) = 0; *LB* initialization of v21_emiALLco2neg v21_emiALLco2neg.l(ttot,regi) =0; diff --git a/modules/21_tax/on/presolve.gms b/modules/21_tax/on/presolve.gms old mode 100644 new mode 100755 index 9a271fce8..27130aac5 --- a/modules/21_tax/on/presolve.gms +++ b/modules/21_tax/on/presolve.gms @@ -23,8 +23,8 @@ p21_taxrevGHG0(ttot,regi) = pm_taxCO2eqSum(ttot,regi) * (vm_co2eq.l(ttot,regi) - p21_taxrevCO2Sector0(ttot,regi,emi_sectors) = p21_CO2TaxSectorMarkup(regi,emi_sectors) * pm_taxCO2eqSum(ttot,regi) * vm_emiCO2Sector.l(ttot,regi,emi_sectors); p21_taxrevCO2luc0(ttot,regi) = pm_taxCO2eqSum(ttot,regi) * cm_cprice_red_factor * vm_emiMacSector.l(ttot,regi,"co2luc")$(cm_multigasscen ne 3); p21_taxrevCCS0(ttot,regi) = cm_frac_CCS * pm_data(regi,"omf","ccsinje") * pm_inco0_t(ttot,regi,"ccsinje") - * ( sum(teCCS2rlf(te,rlf), sum(ccs2te(ccsCO2(enty),enty2,te), vm_co2CCS.l(ttot,regi,enty,enty2,te,rlf) ) ) ) - * (1/pm_ccsinjecrate(regi)) * sum(teCCS2rlf(te,rlf), sum(ccs2te(ccsCO2(enty),enty2,te), vm_co2CCS.l(ttot,regi,enty,enty2,te,rlf) ) ) / pm_dataccs(regi,"quan","1"); + * ( sum(teCCS2rlf(te,rlf), sum(ccs2te(ccsCO2(emiAll),enty2,te), vm_co2CCS.l(ttot,regi,emiAll,enty2,te,rlf) ) ) ) + * (1/pm_ccsinjecrate(regi)) * sum(teCCS2rlf(te,rlf), sum(ccs2te(ccsCO2(emiAll),enty2,te), vm_co2CCS.l(ttot,regi,emiAll,enty2,te,rlf) ) ) / pm_dataccs(regi,"quan","1"); p21_taxrevNetNegEmi0(ttot,regi) = cm_frac_NetNegEmi * pm_taxCO2eqSum(ttot,regi) * v21_emiALLco2neg.l(ttot,regi); p21_emiALLco2neg0(ttot,regi) = v21_emiALLco2neg.l(ttot,regi); p21_taxrevFE0(ttot,regi) = sum((entyFe,sector)$entyFe2Sector(entyFe,sector), diff --git a/modules/32_power/DTcoup/equations.gms b/modules/32_power/DTcoup/equations.gms index 877751f63..4fa6698f5 100644 --- a/modules/32_power/DTcoup/equations.gms +++ b/modules/32_power/DTcoup/equations.gms @@ -16,9 +16,9 @@ q32_balSe(t,regi,enty2)$(sameas(enty2,"seel")).. pm_prodCouple(regi,enty,enty3,te,enty2) * vm_prodSe(t,regi,enty,enty3,te) ) + sum(pc2te(enty4,entyFE(enty5),te,enty2), pm_prodCouple(regi,enty4,enty5,te,enty2) * vm_prodFe(t,regi,enty4,enty5,te) ) - + sum(pc2te(enty,enty3,te,enty2), + + sum(pc2emi(emiAll,enty3,te,enty2), sum(teCCS2rlf(te,rlf), - pm_prodCouple(regi,enty,enty3,te,enty2) * vm_co2CCS(t,regi,enty,enty3,te,rlf) ) ) + pm_prodCoupleEmi(regi,emiAll,enty3,te,enty2) * vm_co2CCS(t,regi,emiAll,enty3,te,rlf) ) ) + vm_Mport(t,regi,enty2) =e= sum(se2fe(enty2,enty3,te), vm_demSe(t,regi,enty2,enty3,te) ) diff --git a/modules/32_power/IntC/equations.gms b/modules/32_power/IntC/equations.gms old mode 100644 new mode 100755 index 95b421854..8fd1f68b4 --- a/modules/32_power/IntC/equations.gms +++ b/modules/32_power/IntC/equations.gms @@ -16,9 +16,9 @@ q32_balSe(t,regi,enty2)$(sameas(enty2,"seel")).. pm_prodCouple(regi,enty,enty3,te,enty2) * vm_prodSe(t,regi,enty,enty3,te) ) + sum(pc2te(enty4,entyFE(enty5),te,enty2), pm_prodCouple(regi,enty4,enty5,te,enty2) * vm_prodFe(t,regi,enty4,enty5,te) ) - + sum(pc2te(enty,enty3,te,enty2), + + sum(pc2emi(emiAll,enty3,te,enty2), sum(teCCS2rlf(te,rlf), - pm_prodCouple(regi,enty,enty3,te,enty2) * vm_co2CCS(t,regi,enty,enty3,te,rlf) ) ) + pm_prodCoupleEmi(regi,emiAll,enty3,te,enty2) * vm_co2CCS(t,regi,emiAll,enty3,te,rlf) ) ) + vm_Mport(t,regi,enty2) =e= sum(se2fe(enty2,enty3,te), vm_demSe(t,regi,enty2,enty3,te) ) diff --git a/modules/32_power/RLDC/equations.gms b/modules/32_power/RLDC/equations.gms old mode 100644 new mode 100755 index 70696258b..d1bf016d1 --- a/modules/32_power/RLDC/equations.gms +++ b/modules/32_power/RLDC/equations.gms @@ -15,9 +15,9 @@ q32_balSe(t,regi,enty2)$(sameas(enty2,"seel")).. pm_prodCouple(regi,enty,enty3,te,enty2) * vm_prodSe(t,regi,enty,enty3,te) ) + sum(pc2te(enty4,entyFE(enty5),te,enty2), pm_prodCouple(regi,enty4,enty5,te,enty2) * vm_prodFe(t,regi,enty4,enty5,te) ) - + sum(pc2te(enty,enty3,te,enty2), + + sum(pc2emi(emiAll,enty3,te,enty2), sum(teCCS2rlf(te,rlf), - pm_prodCouple(regi,enty,enty3,te,enty2) * vm_co2CCS(t,regi,enty,enty3,te,rlf) ) ) + pm_prodCoupleEmi(regi,emiAll,enty3,te,enty2) * vm_co2CCS(t,regi,emiAll,enty3,te,rlf) ) ) + vm_Mport(t,regi,enty2) =e= sum(se2fe(enty2,enty3,te), vm_demSe(t,regi,enty2,enty3,te) ) @@ -59,9 +59,9 @@ q32_shTheo(t,regi,teVRE).. pm_prodCouple(regi,enty,enty3,te,enty2) * vm_prodSe(t,regi,enty,enty3,te) ) + sum(pc2te(enty4,entyFE(enty5),te,enty2), pm_prodCouple(regi,enty4,enty5,te,enty2) * vm_prodFe(t,regi,enty4,enty5,te) ) - + sum(pc2te(enty,enty3,te,enty2), + + sum(pc2emi(emiAll,enty3,te,enty2), sum(teCCS2rlf(te,rlf), - pm_prodCouple(regi,enty,enty3,te,enty2) * vm_co2CCS(t,regi,enty,enty3,te,rlf) ) ) + pm_prodCoupleEmi(regi,emiAll,enty3,te,enty2) * vm_co2CCS(t,regi,emiAll,enty3,te,rlf) ) ) ) ; diff --git a/modules/33_CDR/DAC/bounds.gms b/modules/33_CDR/DAC/bounds.gms old mode 100644 new mode 100755 index 092bca990..5b43d99ef --- a/modules/33_CDR/DAC/bounds.gms +++ b/modules/33_CDR/DAC/bounds.gms @@ -5,7 +5,7 @@ *** | REMIND License Exception, version 1.0 (see LICENSE file). *** | Contact: remind@pik-potsdam.de *** SOF ./modules/33_CDR/DAC/bounds.gms -vm_emiCdr.fx(t,regi,emi)$(not sameas(emi,"co2")) = 0.0; +vm_emiCdr.fx(t,regi,emiAll)$(not sameas(emiAll,"co2")) = 0.0; vm_emiCdr.l(t,regi,"co2")$(t.val gt 2020 AND cm_ccapturescen ne 2) = -sm_eps; vm_omcosts_cdr.fx(t,regi) = 0.0; if (cm_emiscen ne 1, diff --git a/modules/33_CDR/DAC/declarations.gms b/modules/33_CDR/DAC/declarations.gms old mode 100644 new mode 100755 index fd2a75659..71d41814c --- a/modules/33_CDR/DAC/declarations.gms +++ b/modules/33_CDR/DAC/declarations.gms @@ -12,7 +12,7 @@ p33_dac_fedem_heat(all_enty) "specific heat demand for direct air captur ; variables -vm_ccs_cdr(ttot,all_regi,all_enty,all_enty,all_te,rlf) "CCS emissions from CDR [GtC / a]" +vm_ccs_cdr(ttot,all_regi,emiAll,all_enty,all_te,rlf) "CCS emissions from CDR [GtC / a]" v33_emiDAC(ttot,all_regi) "negative CO2 emission from DAC [GtC / a]" ; @@ -26,7 +26,7 @@ q33_DacFEdemand_heat(ttot,all_regi,all_enty) "calculates DAC FE demand fo q33_DacFEdemand_el(ttot,all_regi,all_enty) "calculates DAC FE demand for electricity" q33_otherFEdemand(ttot,all_regi,all_enty) "calculates final energy demand from no transformation technologies (e.g. enhanced weathering)" q33_capconst_dac(ttot,all_regi) "calculates amount of carbon captured" -q33_ccsbal(ttot,all_regi,all_enty,all_enty,all_te) "calculates CCS emissions from CDR technologies" +q33_ccsbal(ttot,all_regi,emiAll,all_enty,all_te) "calculates CCS emissions from CDR technologies" q33_H2bio_lim(ttot,all_regi,all_te) "limits H2 from bioenergy to FE - otherFEdemand, i.e. no H2 from bioenergy for DAC" q33_emicdrregi(ttot,all_regi) "calculates the (negative) emissions due to CDR technologies" q33_demFeCDR(ttot,all_regi,all_enty) "CDR demand balance for final energy" diff --git a/modules/33_CDR/DAC/equations.gms b/modules/33_CDR/DAC/equations.gms old mode 100644 new mode 100755 index a7947a0f3..2566297d3 --- a/modules/33_CDR/DAC/equations.gms +++ b/modules/33_CDR/DAC/equations.gms @@ -70,8 +70,8 @@ q33_otherFEdemand(t,regi,entyFe).. ***--------------------------------------------------------------------------- *' Preparation of captured emissions to enter the CCS chain. ***--------------------------------------------------------------------------- -q33_ccsbal(t,regi,ccs2te(ccsCo2(enty),enty2,te)).. - sum(teCCS2rlf(te,rlf), vm_ccs_cdr(t,regi,enty,enty2,te,rlf)) +q33_ccsbal(t,regi,ccs2te(ccsCo2(emiAll),enty2,te)).. + sum(teCCS2rlf(te,rlf), vm_ccs_cdr(t,regi,emiAll,enty2,te,rlf)) =e= -vm_emiCdr(t,regi,"co2") ; diff --git a/modules/33_CDR/all/declarations.gms b/modules/33_CDR/all/declarations.gms old mode 100644 new mode 100755 index e619500af..919d600c9 --- a/modules/33_CDR/all/declarations.gms +++ b/modules/33_CDR/all/declarations.gms @@ -31,7 +31,7 @@ v33_DacFEdemand_heat(ttot,all_regi,all_enty) "DAC FE heat demand [TWa]" ; variables -vm_ccs_cdr(ttot,all_regi,all_enty,all_enty,all_te,rlf) "CCS emissions from CDR [GtC / a]" +vm_ccs_cdr(ttot,all_regi,emiAll,all_enty,all_te,rlf) "CCS emissions from CDR [GtC / a]" v33_emiDAC(ttot,all_regi) "carbon captured from DAC [GtC / a]" v33_emiEW(ttot,all_regi) "negative CO2 emission from EW [GtC / a]" ; @@ -49,7 +49,7 @@ q33_emiEW(ttot,all_regi) "calculates amount of carbon q33_LimEmiEW(ttot,all_regi) "limits EW to a maximal annual amount of ground rock of cm_LimRock" q33_capconst_dac(ttot,all_regi) "calculates amount of carbon captured by DAC" q33_emicdrregi(ttot,all_regi) "calculates the (negative) emissions due to CDR technologies" -q33_ccsbal(ttot,all_regi,all_enty,all_enty,all_te) "calculates CCS emissions from CDR technologies" +q33_ccsbal(ttot,all_regi,emiAll,all_enty,all_te) "calculates CCS emissions from CDR technologies" q33_H2bio_lim(ttot,all_regi,all_te) "limits H2 from bioenergy to FE - otherFEdemand, i.e. no H2 from bioenergy for DAC" ; diff --git a/modules/33_CDR/all/equations.gms b/modules/33_CDR/all/equations.gms old mode 100644 new mode 100755 index 9d6338881..c4ad6d75e --- a/modules/33_CDR/all/equations.gms +++ b/modules/33_CDR/all/equations.gms @@ -131,8 +131,8 @@ q33_potential(t,regi,rlf).. ***--------------------------------------------------------------------------- *' Preparation of captured emissions to enter the CCS chain. ***--------------------------------------------------------------------------- -q33_ccsbal(t,regi,ccs2te(ccsCo2(enty),enty2,te)).. - sum(teCCS2rlf(te,rlf), vm_ccs_cdr(t,regi,enty,enty2,te,rlf)) +q33_ccsbal(t,regi,ccs2te(ccsCo2(emiAll),enty2,te)).. + sum(teCCS2rlf(te,rlf), vm_ccs_cdr(t,regi,emiAll,enty2,te,rlf)) =e= -v33_emiDAC(t,regi) ; diff --git a/modules/33_CDR/off/bounds.gms b/modules/33_CDR/off/bounds.gms old mode 100644 new mode 100755 index cc441e682..64197047c --- a/modules/33_CDR/off/bounds.gms +++ b/modules/33_CDR/off/bounds.gms @@ -9,6 +9,6 @@ vm_otherFEdemand.fx(t,regi,entyFe) = 0; vm_cap.fx(t,regi,"rockgrind",rlf) = 0; vm_emiCdr.fx(t,regi,enty) = 0; vm_omcosts_cdr.fx(t,regi) = 0; -vm_ccs_cdr.fx(t,regi,enty,enty2,te,rlf)$ccs2te(enty,enty2,te) = 0; +vm_ccs_cdr.fx(t,regi,emiAll,enty2,te,rlf)$ccs2te(emiAll,enty2,te) = 0; *** EOF ./modules/33_CDR/off/bounds.gms diff --git a/modules/33_CDR/off/declarations.gms b/modules/33_CDR/off/declarations.gms old mode 100644 new mode 100755 index 49e432cb2..a1fabf74d --- a/modules/33_CDR/off/declarations.gms +++ b/modules/33_CDR/off/declarations.gms @@ -6,7 +6,7 @@ *** | Contact: remind@pik-potsdam.de *** SOF ./modules/33_CDR/off/declarations.gms variables -vm_ccs_cdr(ttot,all_regi,all_enty,all_enty,all_te,rlf) "CCS emissions from CDR [GtC / a]" +vm_ccs_cdr(ttot,all_regi,emiAll,all_enty,all_te,rlf) "CCS emissions from CDR [GtC / a]" ; *** EOF ./modules/33_CDR/off/declarations.gms diff --git a/modules/33_CDR/weathering/bounds.gms b/modules/33_CDR/weathering/bounds.gms old mode 100644 new mode 100755 index 8c20966a7..35f19aea0 --- a/modules/33_CDR/weathering/bounds.gms +++ b/modules/33_CDR/weathering/bounds.gms @@ -10,5 +10,5 @@ v33_grindrock_onfield_tot.up(t,regi,rlf,rlf2) = s33_step; v33_grindrock_onfield_tot.fx("2005",regi,rlf,rlf2) = 0.0; v33_grindrock_onfield.fx(t,regi,rlf,rlf2)$(rlf2.val gt 10) = 0; v33_grindrock_onfield_tot.fx(t,regi,rlf,rlf2)$(rlf2.val gt 10) = 0; -vm_ccs_cdr.fx(t,regi,enty,enty2,te,rlf)$ccs2te(enty,enty2,te) = 0; +vm_ccs_cdr.fx(t,regi,emiAll,enty2,te,rlf)$ccs2te(emiAll,enty2,te) = 0; *** EOF ./modules/33_CDR/weathering/bounds.gms diff --git a/modules/33_CDR/weathering/declarations.gms b/modules/33_CDR/weathering/declarations.gms old mode 100644 new mode 100755 index 600c36ffb..ee4323256 --- a/modules/33_CDR/weathering/declarations.gms +++ b/modules/33_CDR/weathering/declarations.gms @@ -26,7 +26,7 @@ v33_grindrock_onfield_tot(ttot,all_regi,rlf,rlf) "total amount of ground roc ; variables -vm_ccs_cdr(ttot,all_regi,all_enty,all_enty,all_te,rlf) "CCS emissions from CDR [GtC / a]" +vm_ccs_cdr(ttot,all_regi,emiAll,all_enty,all_te,rlf) "CCS emissions from CDR [GtC / a]" v33_emiEW(ttot,all_regi) "negative CO2 emission from EW [GtC / a]" ; diff --git a/modules/37_industry/fixed_shares/declarations.gms b/modules/37_industry/fixed_shares/declarations.gms old mode 100644 new mode 100755 index 831ade78d..676941793 --- a/modules/37_industry/fixed_shares/declarations.gms +++ b/modules/37_industry/fixed_shares/declarations.gms @@ -26,8 +26,8 @@ Parameters pm_IndstCO2Captured(ttot,all_regi,all_enty,all_enty,secInd37,all_emiMkt) "Captured CO2 in industry by energy carrier, subsector and emissions market" *** output parameters only for reporting - o37_emiInd(ttot,all_regi,all_enty,secInd37,all_enty) "industry CCS emissions [GtC/a]" - o37_cementProcessEmissions(ttot,all_regi,all_enty) "cement process emissions [GtC/a]" + o37_emiInd(ttot,all_regi,all_enty,secInd37,emiAll) "industry CCS emissions [GtC/a]" + o37_cementProcessEmissions(ttot,all_regi,emiAll) "cement process emissions [GtC/a]" o37_CESderivatives(ttot,all_regi,all_in,all_in) "derivatives of production CES function" o37_demFeIndSub(ttot,all_regi,all_enty,all_enty,secInd37,all_emiMkt) "FE demand per industry subsector, FE carrier, SE carrier, emissions market" o37_demFeIndSub_SecCC(ttot,all_regi,secInd37) "FE per subsector whose emissions can be captured, helper parameter for calculation of industry captured CO2" diff --git a/modules/37_industry/fixed_shares/postsolve.gms b/modules/37_industry/fixed_shares/postsolve.gms old mode 100644 new mode 100755 index 4ef2b61f5..e508102e0 --- a/modules/37_industry/fixed_shares/postsolve.gms +++ b/modules/37_industry/fixed_shares/postsolve.gms @@ -6,6 +6,7 @@ *** | Contact: remind@pik-potsdam.de *** SOF ./modules/37_industry/fixed_shares/postsolve.gms + *** calculation of FE Industry Prices (useful for internal use and reporting *** purposes) pm_FEPrice(ttot,regi,entyFE,"indst",emiMkt)$( abs(qm_budget.m(ttot,regi)) gt sm_eps ) diff --git a/modules/37_industry/subsectors/declarations.gms b/modules/37_industry/subsectors/declarations.gms old mode 100644 new mode 100755 index a80913757..a2f690ae8 --- a/modules/37_industry/subsectors/declarations.gms +++ b/modules/37_industry/subsectors/declarations.gms @@ -24,8 +24,8 @@ Parameters p37_cesIO_baseline(tall,all_regi,all_in) "vm_cesIO from the baseline scenario" *** output parameters only for reporting - o37_emiInd(ttot,all_regi,all_enty,secInd37,all_enty) "industry CCS emissions [GtC/a]" - o37_cementProcessEmissions(ttot,all_regi,all_enty) "cement process emissions [GtC/a]" + o37_emiInd(ttot,all_regi,all_enty,secInd37,emiAll) "industry CCS emissions [GtC/a]" + o37_cementProcessEmissions(ttot,all_regi,emiAll) "cement process emissions [GtC/a]" o37_demFeIndTotEn(ttot,all_regi,all_enty,all_emiMkt) "total FE per energy carrier and emissions market in industry (sum over subsectors)" o37_shIndFE(ttot,all_regi,all_enty,secInd37,all_emiMkt) "share of subsector in FE industry energy carriers and emissions markets" o37_demFeIndSub(ttot,all_regi,all_enty,all_enty,secInd37,all_emiMkt) "FE demand per industry subsector" diff --git a/modules/37_industry/subsectors/postsolve.gms b/modules/37_industry/subsectors/postsolve.gms old mode 100644 new mode 100755 index 1e40e2955..8e9125405 --- a/modules/37_industry/subsectors/postsolve.gms +++ b/modules/37_industry/subsectors/postsolve.gms @@ -6,6 +6,7 @@ *** | Contact: remind@pik-potsdam.de *** SOF ./modules/37_industry/subsectors/postsolve.gms + *** calculation of FE Industry Prices (useful for internal use and reporting *** purposes) pm_FEPrice(ttot,regi,entyFE,"indst",emiMkt)$( abs(qm_budget.m(ttot,regi)) gt sm_eps ) diff --git a/modules/39_CCU/off/declarations.gms b/modules/39_CCU/off/declarations.gms old mode 100644 new mode 100755 index 5ea8aca15..59b8420c3 --- a/modules/39_CCU/off/declarations.gms +++ b/modules/39_CCU/off/declarations.gms @@ -13,7 +13,7 @@ *-----------------------------------------------ESM module------------------------ positive variables -vm_co2CCUshort(ttot,all_regi,all_enty,all_enty,all_te,rlf) "CO2 captured in CCU te that have a persistence for co2 storage shorter than 5 years. Unit GtC/a" +vm_co2CCUshort(ttot,all_regi,emiAll,all_enty,all_te,rlf) "CO2 captured in CCU te that have a persistence for co2 storage shorter than 5 years. Unit GtC/a" ; *** EOF ./modules/39_CCU/off/declarations.gms diff --git a/modules/39_CCU/on/declarations.gms b/modules/39_CCU/on/declarations.gms old mode 100644 new mode 100755 index fe560e625..4415124c8 --- a/modules/39_CCU/on/declarations.gms +++ b/modules/39_CCU/on/declarations.gms @@ -11,7 +11,7 @@ p39_co2_dem(ttot,all_regi,all_enty,all_enty,all_te) "CO2 demand of CCU techn ; positive variables -vm_co2CCUshort(ttot,all_regi,all_enty,all_enty,all_te,rlf) "CO2 captured in CCU te that have a persistence for co2 storage shorter than 5 years. Unit GtC/a" +vm_co2CCUshort(ttot,all_regi,emiAll,all_enty,all_te,rlf) "CO2 captured in CCU te that have a persistence for co2 storage shorter than 5 years. Unit GtC/a" v39_shSynTrans(ttot,all_regi) "Share of synthetic liquids in all SE liquids. Value between 0 and 1." v39_shSynGas(ttot,all_regi) "Share of synthetic gas in all SE gases. Value between 0 and 1." ; diff --git a/modules/47_regipol/regiCarbonPrice/equations.gms b/modules/47_regipol/regiCarbonPrice/equations.gms old mode 100644 new mode 100755 index 37b237f49..603c99181 --- a/modules/47_regipol/regiCarbonPrice/equations.gms +++ b/modules/47_regipol/regiCarbonPrice/equations.gms @@ -44,7 +44,7 @@ q47_emiTarget_grossEnCO2(t,regi).. *** DAC accounting of synfuels: remove CO2 of vm_emiCDR (which is negative) from vm_emiTe which is not stored in vm_co2CCS + vm_emiCdr(t,regi,"co2") * (1-pm_share_CCS_CCO2(t,regi)) *** add pe2se BECCS - + sum(emi2te(enty,enty2,te,enty3)$(teBio(te) AND teCCS(te) AND sameAs(enty3,"cco2")), vm_emiTeDetail(t,regi,enty,enty2,te,enty3)) * pm_share_CCS_CCO2(t,regi) + + sum(emi2te(enty,enty2,te,emiAll)$(teBio(te) AND teCCS(te) AND sameAs(emiAll,"cco2")), vm_emiTeDetail(t,regi,enty,enty2,te,emiAll)) * pm_share_CCS_CCO2(t,regi) *** add industry CCS with hydrocarbon fuels from biomass (industry BECCS) or synthetic origin + sum( (entySe,entyFe,secInd37,emiMkt)$(NOT (entySeFos(entySe))), pm_IndstCO2Captured(t,regi,entySe,entyFe,secInd37,emiMkt)) * pm_share_CCS_CCO2(t,regi) diff --git a/modules/80_optimization/nash/datainput.gms b/modules/80_optimization/nash/datainput.gms old mode 100644 new mode 100755 index 45cdf8dd7..5987d04b7 --- a/modules/80_optimization/nash/datainput.gms +++ b/modules/80_optimization/nash/datainput.gms @@ -81,7 +81,7 @@ vm_fuExtr.l(ttot,regi,tradePe,rlf)$(ttot.val ge 2005) = 0; vm_prodPe.l(ttot,regi,tradePe)$(ttot.val ge 2005) = 0; vm_taxrev.l(ttot,regi)$(ttot.val gt 2005) = 0; vm_co2eq.l(ttot,regi) = 0; -vm_emiAll.l(ttot,regi,enty) = 0; +vm_emiAll.l(ttot,regi,emiTe) = 0; p80_repy(all_regi,solveinfo80) = 0; pm_capCumForeign(ttot,regi,teLearn)$(ttot.val ge 2005)=0; qm_co2eqCum.m(regi) = 0; diff --git a/modules/80_optimization/nash/presolve.gms b/modules/80_optimization/nash/presolve.gms old mode 100644 new mode 100755 index 5b16d5ec1..c76dc4d81 --- a/modules/80_optimization/nash/presolve.gms +++ b/modules/80_optimization/nash/presolve.gms @@ -16,7 +16,7 @@ pm_cumEff(ttot,regi, in)$(ttot.val ge 2005 and pm_SolNonInfes(regi) eq 1) = sum( pm_co2eqForeign(ttot,regi)$((ttot.val ge 2005) and (pm_SolNonInfes(regi) eq 1)) = sum(regi2$((NOT sameas(regi,regi2))), pm_co2eq0(ttot,regi2)); !! does this interfere with the initialization in datainput? -pm_emissionsForeign(ttot,regi,enty)$((ttot.val ge 2005) and (pm_SolNonInfes(regi) eq 1)) = sum(regi2$((NOT sameas(regi,regi2))), pm_emissions0(ttot,regi2,enty)); +pm_emissionsForeign(ttot,regi,emiTe)$((ttot.val ge 2005) and (pm_SolNonInfes(regi) eq 1)) = sum(regi2$((NOT sameas(regi,regi2))), pm_emissions0(ttot,regi2,emiTe)); pm_fuExtrForeign(ttot,regi,enty,rlf)$((ttot.val ge 2005) and (pm_SolNonInfes(regi) eq 1)) = sum(regi2$((NOT sameas(regi,regi2))), vm_fuExtr.l(ttot,regi2,enty,rlf)); diff --git a/modules/80_optimization/negishi/datainput.gms b/modules/80_optimization/negishi/datainput.gms old mode 100644 new mode 100755 index 63bd2a9af..2d6848892 --- a/modules/80_optimization/negishi/datainput.gms +++ b/modules/80_optimization/negishi/datainput.gms @@ -22,7 +22,7 @@ p80_defic_sum("1") = 1; pm_capCumForeign(t,regi,teLearn) = 0; pm_cumEff(t,regi,in) = 0; pm_co2eqForeign(t,regi) = 0; -pm_emissionsForeign(t,regi,enty) = 0; +pm_emissionsForeign(t,regi,emiTe) = 0; pm_fuExtrForeign(t,regi,enty,rlf) = 0; pm_SolNonInfes(regi) = 1; !! assume the starting point came from a feasible solution diff --git a/modules/80_optimization/testOneRegi/datainput.gms b/modules/80_optimization/testOneRegi/datainput.gms old mode 100644 new mode 100755 index 3ae11d303..00e2d4c08 --- a/modules/80_optimization/testOneRegi/datainput.gms +++ b/modules/80_optimization/testOneRegi/datainput.gms @@ -23,7 +23,7 @@ $include "./modules/80_optimization/testOneRegi/input/prices_NASH.inc"; pm_capCumForeign(ttot,regi,teLearn)$(ttot.val ge 2005) = 0; pm_cumEff(t,regi,in) = 0; pm_co2eqForeign(t,regi) = 0; -pm_emissionsForeign(t,regi,enty) = 0; +pm_emissionsForeign(t,regi,emiTe) = 0; pm_SolNonInfes(regi) = 1; !! assume the starting point came from a feasible solution pm_fuExtrForeign(t,regi,enty,rlf) = 0;