From 9cd5620f82b6eb66e068c9fd7dff3b14d089bbad Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 09:33:13 +0200 Subject: [PATCH 01/31] Changed all_enty from equation q_emiTe --- core/equations.gms | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) mode change 100644 => 100755 core/equations.gms diff --git a/core/equations.gms b/core/equations.gms old mode 100644 new mode 100755 index c768cb12c..cff2147ed --- a/core/equations.gms +++ b/core/equations.gms @@ -477,10 +477,10 @@ q_emiTeDetail(t,regi,enty,enty2,te,enty3)$(emi2te(enty,enty2,te,enty3) OR (pe2se *' 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)) ; ***----------------------------------------------------------------------------- From f1b777317b3c516ffdacba22256832383d3f3a4b Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 09:42:30 +0200 Subject: [PATCH 02/31] Changed eq q_emiAll all_enty to emiTe, no changes in testOneRegi --- core/equations.gms | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/equations.gms b/core/equations.gms index cff2147ed..6967a0e28 100755 --- a/core/equations.gms +++ b/core/equations.gms @@ -654,13 +654,13 @@ 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) ; ***------------------------------------------------------ From ec737b78a9a03f2a9788fa56b8e6efe4fbb1037c Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 09:51:44 +0200 Subject: [PATCH 03/31] Fixup changed declarations of the equations from all_enty to emiTe --- core/declarations.gms | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 core/declarations.gms diff --git a/core/declarations.gms b/core/declarations.gms old mode 100644 new mode 100755 index 7886b26e1..0e5c4f346 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -418,8 +418,8 @@ q_limitProd(ttot,all_regi,all_te,rlf) "constraint on annual produ q_emiTeDetail(ttot,all_regi,all_enty,all_enty,all_te,all_enty) "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_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,all_enty) "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" From 3a7a3c9cbed51bd50bdb9e27ec62e5553e195416 Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 10:00:56 +0200 Subject: [PATCH 04/31] Changed eq q_emiAllGLob s all_enty to emiTe. No changes in testOneRegi --- core/declarations.gms | 6 +++--- core/equations.gms | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/core/declarations.gms b/core/declarations.gms index 0e5c4f346..051c2a0dd 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -418,9 +418,9 @@ q_limitProd(ttot,all_regi,all_te,rlf) "constraint on annual produ q_emiTeDetail(ttot,all_regi,all_enty,all_enty,all_te,all_enty) "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,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,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_co2eq(ttot,all_regi) "regional emissions in co2 equivalents" diff --git a/core/equations.gms b/core/equations.gms index 6967a0e28..9abac8755 100755 --- a/core/equations.gms +++ b/core/equations.gms @@ -667,12 +667,12 @@ q_emiAll(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) ) ; From 85b8adef1cb163e0d86c4e338f20b031b886d486 Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 10:12:11 +0200 Subject: [PATCH 05/31] Changed equation q_emiTeMkt s all_enty to emiTe. No changes in testOneRegi --- core/declarations.gms | 2 +- core/equations.gms | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/core/declarations.gms b/core/declarations.gms index 051c2a0dd..0d7e95e87 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -430,7 +430,7 @@ qm_co2eqCum(all_regi) "cumulate regional emission 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_emiTeMkt(ttot,all_regi,emiTe,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" diff --git a/core/equations.gms b/core/equations.gms index 9abac8755..a41367892 100755 --- a/core/equations.gms +++ b/core/equations.gms @@ -536,25 +536,25 @@ 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")) ; From dd241463010f2cd9073d0fb643ca2577daf4d8f6 Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 10:44:34 +0200 Subject: [PATCH 06/31] Changed eq q_emiEnFuelEx s all_enty to emiTe. No changes in testOneRegi --- core/declarations.gms | 2 +- core/equations.gms | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/core/declarations.gms b/core/declarations.gms index 0d7e95e87..128362af0 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -431,7 +431,7 @@ q_budgetCO2eqGlob "global emission budget bal 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,emiTe,all_emiMkt) "total energy-emissions per region and market" -q_emiEnFuelEx(ttot,all_regi,all_enty) "energy emissions from fuel extraction" +q_emiEnFuelEx(ttot,all_regi,emiTe) "energy emissions from fuel extraction" q_emiAllMkt(ttot,all_regi,all_enty,all_emiMkt) "total regional emissions for each emission market" diff --git a/core/equations.gms b/core/equations.gms index a41367892..a7cedbd43 100755 --- a/core/equations.gms +++ b/core/equations.gms @@ -515,20 +515,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)) ; From 43b3799150edceb8a3d0daf209e90cbdee06ec06 Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 10:53:04 +0200 Subject: [PATCH 07/31] Changed equation q_emiAllMkt s all_enty to emiTe. No changes in testOneRegi --- core/declarations.gms | 2 +- core/equations.gms | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/core/declarations.gms b/core/declarations.gms index 128362af0..248ea6714 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -432,7 +432,7 @@ q_budgetCO2eqGlob "global emission budget bal 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,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,all_enty,all_emiMkt) "total regional emissions for each emission market" +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" diff --git a/core/equations.gms b/core/equations.gms index a7cedbd43..34b5f8828 100755 --- a/core/equations.gms +++ b/core/equations.gms @@ -561,19 +561,19 @@ q_emiTeMkt(t,regi,emiTe,emiMkt).. ***-------------------------------------------------- *' 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")) ; From 008a7b310212089debbba2f2d1930fb97cb4b6c3 Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 11:03:48 +0200 Subject: [PATCH 08/31] Changed parameter pm_emissionsForeign all_enty to emiTe. No changes in testOneRegi --- core/declarations.gms | 2 +- modules/80_optimization/nash/presolve.gms | 2 +- modules/80_optimization/negishi/datainput.gms | 2 +- modules/80_optimization/testOneRegi/datainput.gms | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) mode change 100644 => 100755 modules/80_optimization/nash/presolve.gms mode change 100644 => 100755 modules/80_optimization/negishi/datainput.gms mode change 100644 => 100755 modules/80_optimization/testOneRegi/datainput.gms diff --git a/core/declarations.gms b/core/declarations.gms index 248ea6714..afe627dbe 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -35,7 +35,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" diff --git a/modules/80_optimization/nash/presolve.gms b/modules/80_optimization/nash/presolve.gms old mode 100644 new mode 100755 index c438d401b..49c63e6dd --- 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,enty)); 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 18a3284c9..3c7ddf2b7 --- 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 b3ac48815..36a5ad2dc --- 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; From c0e67cdd2bd50e84e475f91cc3dad0b7dc1c7dd0 Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 11:14:59 +0200 Subject: [PATCH 09/31] Changed param p_histEmiSector s all_enty to emiTe. No changes in testOneRegi --- core/datainput.gms | 2 +- core/declarations.gms | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 core/datainput.gms diff --git a/core/datainput.gms b/core/datainput.gms old mode 100644 new mode 100755 index 389576131..b3e8783a0 --- a/core/datainput.gms +++ b/core/datainput.gms @@ -352,7 +352,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" diff --git a/core/declarations.gms b/core/declarations.gms index afe627dbe..aad498ca0 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -76,7 +76,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]" From 0eca704bd3729a1ef642c8506a160696b9528daf Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 11:25:10 +0200 Subject: [PATCH 10/31] Changed param pm_emissions0 s all_enty to emiTe. No changes in testOneRegi --- core/declarations.gms | 2 +- core/presolve.gms | 2 +- modules/80_optimization/nash/presolve.gms | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) mode change 100644 => 100755 core/presolve.gms diff --git a/core/declarations.gms b/core/declarations.gms index aad498ca0..92e75febd 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -177,7 +177,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" diff --git a/core/presolve.gms b/core/presolve.gms old mode 100644 new mode 100755 index 28747108b..4b6d27be4 --- 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/modules/80_optimization/nash/presolve.gms b/modules/80_optimization/nash/presolve.gms index 49c63e6dd..8dd30924e 100755 --- 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,emiTe)$((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)); From 403b47f6fd100cbd7eeff672669a6d9ffb0ef5cc Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 11:45:11 +0200 Subject: [PATCH 11/31] Changed variable vm_emiMac s all_enty to emiTe and made emiMac set only depending on emiTe. No changes in testOneRegi --- core/declarations.gms | 2 +- core/sets.gms | 2 +- core/sets_calculations.gms | 2 +- modules/21_tax/on/preloop.gms | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) mode change 100644 => 100755 core/sets_calculations.gms mode change 100644 => 100755 modules/21_tax/on/preloop.gms diff --git a/core/declarations.gms b/core/declarations.gms index 92e75febd..9b94dc1fc 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -284,7 +284,7 @@ vm_emiTeDetail(ttot,all_regi,all_enty,all_enty,all_te,all_enty) "energy-related vm_emiTe(ttot,all_regi,all_enty) "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_emiMac(ttot,all_regi,emiTe) "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_perm(ttot,all_regi) "emission allowances" diff --git a/core/sets.gms b/core/sets.gms index 8fc6424a6..57420a119 100755 --- a/core/sets.gms +++ b/core/sets.gms @@ -1734,7 +1734,7 @@ emiAP(all_enty) "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 diff --git a/core/sets_calculations.gms b/core/sets_calculations.gms old mode 100644 new mode 100755 index 113d59e6e..a03cd4436 --- a/core/sets_calculations.gms +++ b/core/sets_calculations.gms @@ -30,7 +30,7 @@ teNoCCS(te) = not teCCS(te); entyFe(enty) = entyFeStat(enty) + entyFeTrans(enty); trade(enty) = tradePe(enty) + tradeSe(enty) + tradeMacro(enty); -emi(enty) = emiTe(enty) + emiMac(enty) + emiExog(enty); +emi(enty) = emiTe(enty); emiMacMagpie(enty) = emiMacMagpieCH4(enty) + emiMacMagpieN2O(enty) + emiMacMagpieCO2(enty); emiMacExo(enty) = emiMacExoCH4(enty) + emiMacExoN2O(enty); peExGrade(enty) = peEx(enty) - peExPol(enty); diff --git a/modules/21_tax/on/preloop.gms b/modules/21_tax/on/preloop.gms old mode 100644 new mode 100755 index 0a2d2d852..72ebd9305 --- 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; From fbe7380314d4e09e4887d130ac7925725715031d Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 11:55:42 +0200 Subject: [PATCH 12/31] Changed variable vm_emiAll s all_enty to emiTe. No changes in testOneRegi --- core/datainput.gms | 2 +- core/declarations.gms | 2 +- modules/80_optimization/nash/datainput.gms | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) mode change 100644 => 100755 modules/80_optimization/nash/datainput.gms diff --git a/core/datainput.gms b/core/datainput.gms index b3e8783a0..92ab8a480 100755 --- a/core/datainput.gms +++ b/core/datainput.gms @@ -8,7 +8,7 @@ *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; *AJS* initialize parameter (avoid compilation errors) * do this at the start of datainput to prevent accidental overwriting diff --git a/core/declarations.gms b/core/declarations.gms index 9b94dc1fc..5707ec395 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -285,7 +285,7 @@ vm_emiTe(ttot,all_regi,all_enty) "total energy-related emiss 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,emiTe) "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_emiAll(ttot,all_regi,emiTe) "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_perm(ttot,all_regi) "emission allowances" vm_co2eqGlob(ttot) "global emissions to be balanced by allowances. [GtCeq]" diff --git a/modules/80_optimization/nash/datainput.gms b/modules/80_optimization/nash/datainput.gms old mode 100644 new mode 100755 index ce2b35e46..7f7535dac --- 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; From c7d20d9bcb5c6cfa8856d9f7e4bf2dcbf446000f Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 12:05:25 +0200 Subject: [PATCH 13/31] Changed Variable vm_emiAllGlob all_enty to emiTe. No changes in testOneRegi --- core/declarations.gms | 2 +- modules/15_climate/box/equations.gms | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 modules/15_climate/box/equations.gms diff --git a/core/declarations.gms b/core/declarations.gms index 5707ec395..d4023509e 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -286,7 +286,7 @@ vm_emiMacSector(ttot,all_regi,all_enty) "total non-energy-related e vm_emiCdr(ttot,all_regi,all_enty) "total (negative) emissions due to CDR technologies of each region. [GtC]" 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,all_enty) "total global emissions - link to the climate module. [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]" diff --git a/modules/15_climate/box/equations.gms b/modules/15_climate/box/equations.gms old mode 100644 new mode 100755 index 05bbe046b..3328b62d8 --- 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); From 40aa633b7f924e53dc0ffd5bc1b76e0d24df7d09 Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 13:17:11 +0200 Subject: [PATCH 14/31] Changed variable vm_emiTeMkt s all_enty to emiTe. No changes in testOneRegi --- core/declarations.gms | 2 +- core/postsolve.gms | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) mode change 100644 => 100755 core/postsolve.gms diff --git a/core/declarations.gms b/core/declarations.gms index d4023509e..010a3baa8 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -304,7 +304,7 @@ vm_omcosts_cdr(tall,all_regi) "O&M costs for spreading gr 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]" +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,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]" 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]" diff --git a/core/postsolve.gms b/core/postsolve.gms old mode 100644 new mode 100755 index 24ec97167..0cdf4f844 --- a/core/postsolve.gms +++ b/core/postsolve.gms @@ -667,9 +667,9 @@ o_emissions(ttot,regi,emi)$(ttot.val ge 2005) = - o_emissions_bunkers(ttot,regi,emi); *** 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) = From 5ac8cffad5df7d829174fdea2c361fd030c3e6cc Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 13:29:32 +0200 Subject: [PATCH 15/31] Changed variable v_emiEnFuelEx s all_enty to emiTe. No changes in testOneRegi --- core/declarations.gms | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/declarations.gms b/core/declarations.gms index 010a3baa8..64e32938b 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -305,7 +305,7 @@ vm_costpollution(tall,all_regi) "costs for air pollution po 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,emiTe,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]" +v_emiEnFuelEx(ttot,all_regi,emiTe) "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]" 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" From df97a7e379adf2b2a3274dccacbd005a005b81f8 Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 13:39:16 +0200 Subject: [PATCH 16/31] Changed variable vm_emiAllMkt s all_enty to emiTe. No changes in testOneRegi --- core/declarations.gms | 2 +- core/postsolve.gms | 6 +++--- core/preloop.gms | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) mode change 100644 => 100755 core/preloop.gms diff --git a/core/declarations.gms b/core/declarations.gms index 64e32938b..3555730a7 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -306,7 +306,7 @@ vm_emiFgas(ttot,all_regi,all_enty) "F-gas emissions by single 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,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,all_enty,all_emiMkt) "total regional emissions for each emission market. [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" ; diff --git a/core/postsolve.gms b/core/postsolve.gms index 0cdf4f844..27a7cd09f 100755 --- a/core/postsolve.gms +++ b/core/postsolve.gms @@ -662,9 +662,9 @@ o_emissions_bunkers(ttot,regi,emi)$(ttot.val ge 2005) = * vm_demFeSector.l(ttot,regi,enty,enty2,"trans","other") )*o_emi_conv(emi); -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,emiTe)$(ttot.val ge 2005) = diff --git a/core/preloop.gms b/core/preloop.gms old mode 100644 new mode 100755 index 72fc13839..228948388 --- a/core/preloop.gms +++ b/core/preloop.gms @@ -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; From 4a942c11bd267aa3463623a85a443288698205e2 Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 13:51:15 +0200 Subject: [PATCH 17/31] Changed param pm_emiExog s all_enty to emiTe. No changes in testOneRegi --- core/declarations.gms | 2 +- core/postsolve.gms | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/declarations.gms b/core/declarations.gms index 3555730a7..eb2c04382 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -66,7 +66,7 @@ o_taxCO2eq_afterPeakShiftLoop_Itr_1regi(ttot, iteration) "CO2 taxed in the last ***---------------------------------------------------------------------------------------- ***-----------------------------------------------ESM module------------------------------- -pm_emiExog(tall,all_regi,all_enty) "exogenous emissions" +pm_emiExog(tall,all_regi,emiTe) "exogenous emissions" p_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" diff --git a/core/postsolve.gms b/core/postsolve.gms index 27a7cd09f..2b8853454 100755 --- a/core/postsolve.gms +++ b/core/postsolve.gms @@ -798,8 +798,8 @@ o_emissions_DACCS(ttot,regi,emi)$(ttot.val ge 2005) = vm_emiCdr.l(ttot,regi,emi)*o_emi_conv(emi) ; -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) From 3842ae1ca64914cc85b40fcd041ac5896f77551d Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 14:12:10 +0200 Subject: [PATCH 18/31] Changed param p_cint s 1. all_enty to emiTe. No changes in testOneRegi --- core/declarations.gms | 4 ++-- core/postsolve.gms | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/core/declarations.gms b/core/declarations.gms index eb2c04382..c4ba03ad3 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -94,7 +94,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)]" @@ -422,7 +422,7 @@ q_emiTe(ttot,all_regi,emiTe) "total energy-emissions per 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" diff --git a/core/postsolve.gms b/core/postsolve.gms index 2b8853454..9bf7b76b7 100755 --- a/core/postsolve.gms +++ b/core/postsolve.gms @@ -702,11 +702,11 @@ o_emissions_energy_demand_sector(ttot,regi,emi,sector)$(ttot.val ge 2005) = )$(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 ) ) @@ -718,21 +718,21 @@ 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")) ; From 96d446815e72cbc47b7151979332a2a686a2a372 Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Fri, 27 Aug 2021 14:27:13 +0200 Subject: [PATCH 19/31] =?UTF-8?q?=C3=82Changed=20output=20o=5Femissions=20?= =?UTF-8?q?and=20o=5Femissions=5Fbunkers=20all=5Fenty=20to=20emiTe.=20No?= =?UTF-8?q?=20changes=20in=20testOneRegi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/declarations.gms | 4 ++-- core/postsolve.gms | 30 +++++++++++++++--------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/core/declarations.gms b/core/declarations.gms index c4ba03ad3..a9cab9200 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -584,8 +584,8 @@ 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(ttot,all_regi,emiTe) "output parameter" +o_emissions_bunkers(ttot,all_regi,emiTe) "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" diff --git a/core/postsolve.gms b/core/postsolve.gms index 9bf7b76b7..cbec8d42b 100755 --- a/core/postsolve.gms +++ b/core/postsolve.gms @@ -656,11 +656,11 @@ p_PEPrice(t,regi,entyPe)$(abs (qm_budget.m(t,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,emiTe)$(ttot.val ge 2005) = sum(emiMkt, vm_emiAllMkt.l(ttot,regi,emiTe,emiMkt))*o_emi_conv(emiTe) @@ -672,33 +672,33 @@ o_emissions_energy(ttot,regi,emiTe)$(ttot.val ge 2005) = - 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")) ; From 2559b89b5a7a2b7d2189f50077583eeaece4a9dc Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Tue, 31 Aug 2021 14:16:35 +0200 Subject: [PATCH 20/31] Changed output o_emissions_energy s all_enty to emiTe. No changes in testOneRegi --- core/declarations.gms | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/declarations.gms b/core/declarations.gms index a9cab9200..f6ac87050 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -586,7 +586,7 @@ magicc_sed_script.ap = 0; Parameter o_emissions(ttot,all_regi,emiTe) "output parameter" o_emissions_bunkers(ttot,all_regi,emiTe) "output parameter" -o_emissions_energy(ttot,all_regi,all_enty) "output parameter" +o_emissions_energy(ttot,all_regi,emiTe) "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" From cb2c4fc0ad5d0b6cac08b6128f913d75f2ce783b Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Tue, 31 Aug 2021 16:08:21 +0200 Subject: [PATCH 21/31] Changed outputs o_emissions_energy_demand_sector, o_emissions_energy_demand, o_emissions_energy_supply_gross, o_emissions_energy_supply_gross_carrier s all_enty to emiTe. No changes in testOneRegi --- core/declarations.gms | 4 ++-- core/postsolve.gms | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/core/declarations.gms b/core/declarations.gms index f6ac87050..73d3b8c58 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -587,8 +587,8 @@ Parameter 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,all_enty) "output parameter" -o_emissions_energy_demand_sector(ttot,all_regi,all_enty,emi_sectors) "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,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" diff --git a/core/postsolve.gms b/core/postsolve.gms index cbec8d42b..221095b84 100755 --- a/core/postsolve.gms +++ b/core/postsolve.gms @@ -737,31 +737,31 @@ o_emissions_energy_extraction(ttot,regi,emiTe,entyPe)$(ttot.val ge 2005) = ; -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")) ; From 8b3ac7995f00c62bad3cb3e4d05b6cb77cc47b38 Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Tue, 31 Aug 2021 16:42:27 +0200 Subject: [PATCH 22/31] Changed all remaining o_emissions_* all_entys to emiTe. No changes in testOneRegi --- core/declarations.gms | 16 ++++++++-------- core/postsolve.gms | 30 +++++++++++++++--------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/core/declarations.gms b/core/declarations.gms index 73d3b8c58..b77c49598 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -590,13 +590,13 @@ 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,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_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,all_enty) "output parameter" o_capture_energy(ttot,all_regi,all_enty) "output parameter" @@ -611,7 +611,7 @@ 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_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/postsolve.gms b/core/postsolve.gms index 221095b84..8730d64e4 100755 --- a/core/postsolve.gms +++ b/core/postsolve.gms @@ -765,37 +765,37 @@ o_emissions_energy_supply_gross_carrier(ttot,regi,emiTe,entySe)$(ttot.val ge 200 )$(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) + sum((ccs2Leak(enty,enty2,te,emiTe),teCCS2rlf(te,rlf)), + pm_emifac(ttot,regi,enty,enty2,te,emiTe) * vm_co2CCS.l(ttot,regi,enty,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,emiTe)$(ttot.val ge 2005) = From 2c29def3691b29aca3914fb75291f76485ac005f Mon Sep 17 00:00:00 2001 From: Mike Spahr Date: Tue, 31 Aug 2021 17:06:41 +0200 Subject: [PATCH 23/31] Changed all outputs o_capture_* and o_carbon_* s allenties to emiTe. No changes in testOneRegi --- core/declarations.gms | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/core/declarations.gms b/core/declarations.gms index b77c49598..765f83965 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -598,18 +598,18 @@ 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,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_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 / ; From 45adde994ef0dcb1b2909050f024ee0c2502a93a Mon Sep 17 00:00:00 2001 From: spahrm <47612192+spahrm@users.noreply.github.com> Date: Tue, 14 Sep 2021 09:23:07 +0200 Subject: [PATCH 24/31] Fixup! Forgot to rename declaration of o_emissions_energy_supply_gross --- core/declarations.gms | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/declarations.gms b/core/declarations.gms index 765f83965..78d77a339 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -589,7 +589,7 @@ 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,all_enty) "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" From 1044420b989e894dbe3417ab284106f56f99a317 Mon Sep 17 00:00:00 2001 From: spahrm <47612192+spahrm@users.noreply.github.com> Date: Fri, 1 Oct 2021 13:45:04 +0200 Subject: [PATCH 25/31] Added all_enty replacing including cco2 and n2obio with emiAll --- core/datainput.gms | 2 +- core/declarations.gms | 22 ++++----- core/equations.gms | 48 +++++++++---------- core/postsolve.gms | 4 +- core/preloop.gms | 2 +- core/sets.gms | 34 ++++++++----- core/sets_calculations.gms | 3 +- modules/11_aerosols/exoGAINS/datainput.gms | 2 +- modules/11_aerosols/exoGAINS/declarations.gms | 6 +-- modules/11_aerosols/exoGAINS/equations.gms | 26 +++++----- modules/21_tax/on/equations.gms | 4 +- modules/21_tax/on/postsolve.gms | 4 +- modules/21_tax/on/presolve.gms | 4 +- modules/33_CDR/DAC/declarations.gms | 4 +- modules/33_CDR/DAC/equations.gms | 4 +- modules/33_CDR/all/declarations.gms | 4 +- modules/33_CDR/all/equations.gms | 4 +- modules/33_CDR/off/bounds.gms | 2 +- modules/33_CDR/off/declarations.gms | 2 +- modules/33_CDR/weathering/bounds.gms | 2 +- modules/33_CDR/weathering/declarations.gms | 2 +- .../37_industry/fixed_shares/declarations.gms | 4 +- .../37_industry/fixed_shares/postsolve.gms | 14 +++--- .../37_industry/subsectors/declarations.gms | 4 +- modules/37_industry/subsectors/postsolve.gms | 14 +++--- modules/39_CCU/off/declarations.gms | 2 +- modules/39_CCU/on/declarations.gms | 2 +- .../47_regipol/regiCarbonPrice/equations.gms | 2 +- 28 files changed, 118 insertions(+), 109 deletions(-) mode change 100644 => 100755 modules/11_aerosols/exoGAINS/datainput.gms mode change 100644 => 100755 modules/11_aerosols/exoGAINS/declarations.gms mode change 100644 => 100755 modules/11_aerosols/exoGAINS/equations.gms mode change 100644 => 100755 modules/21_tax/on/equations.gms mode change 100644 => 100755 modules/21_tax/on/postsolve.gms mode change 100644 => 100755 modules/21_tax/on/presolve.gms mode change 100644 => 100755 modules/33_CDR/DAC/declarations.gms mode change 100644 => 100755 modules/33_CDR/DAC/equations.gms mode change 100644 => 100755 modules/33_CDR/all/declarations.gms mode change 100644 => 100755 modules/33_CDR/all/equations.gms mode change 100644 => 100755 modules/33_CDR/off/bounds.gms mode change 100644 => 100755 modules/33_CDR/off/declarations.gms mode change 100644 => 100755 modules/33_CDR/weathering/bounds.gms mode change 100644 => 100755 modules/33_CDR/weathering/declarations.gms mode change 100644 => 100755 modules/37_industry/fixed_shares/declarations.gms mode change 100644 => 100755 modules/37_industry/fixed_shares/postsolve.gms mode change 100644 => 100755 modules/37_industry/subsectors/declarations.gms mode change 100644 => 100755 modules/37_industry/subsectors/postsolve.gms mode change 100644 => 100755 modules/39_CCU/off/declarations.gms mode change 100644 => 100755 modules/39_CCU/on/declarations.gms mode change 100644 => 100755 modules/47_regipol/regiCarbonPrice/equations.gms diff --git a/core/datainput.gms b/core/datainput.gms index 163e32263..9d066109b 100755 --- a/core/datainput.gms +++ b/core/datainput.gms @@ -368,7 +368,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 index 78d77a339..27db5a10c 100755 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -105,7 +105,7 @@ p_actualbudgetco2(tall) "actual level of cumulated pm_dataccs(all_regi,char,rlf) "maximum CO2 storage capacity using CCS technology. [GtC]" 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]" @@ -280,8 +280,8 @@ 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_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,emiTe) "total non-energy-related emission of each region. [GtC, Mt CH4, Mt N]" @@ -303,7 +303,7 @@ 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]" +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]" @@ -345,9 +345,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]" @@ -415,7 +415,7 @@ qm_fuel2pe(ttot,all_regi,all_enty) "constraint on cumulative f q_limitProd(ttot,all_regi,all_te,rlf) "constraint on annual production" -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,emiTe) "total energy-emissions per region" @@ -429,19 +429,19 @@ q_co2eqGlob(ttot) "global emissions in co2 eq 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_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" diff --git a/core/equations.gms b/core/equations.gms index 82c403f5a..455e7f1c0 100755 --- a/core/equations.gms +++ b/core/equations.gms @@ -271,8 +271,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)); @@ -466,10 +466,10 @@ 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)) ; ***-------------------------------------------------- @@ -489,22 +489,22 @@ q_emiTe(t,regi,emiTe).. *' 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)) ) ) @@ -635,7 +635,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), @@ -737,14 +737,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, @@ -769,13 +769,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(enty2,enty3,te2),rlf)$teCCS2rlf(te2,rlf).. + (1-pm_emifac(t,regi,enty,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 index 8730d64e4..ba58b9eb3 100755 --- a/core/postsolve.gms +++ b/core/postsolve.gms @@ -772,9 +772,9 @@ o_emissions_energy_negative(ttot,regi,emiTe)$(ttot.val ge 2005) = * vm_demPE.l(ttot,regi,entyPe,entySe,te) ) + - sum((ccs2Leak(enty,enty2,te,emiTe),teCCS2rlf(te,rlf)), + sum((ccs2Leak(emiAll,enty2,te,emiTe),teCCS2rlf(te,rlf)), pm_emifac(ttot,regi,enty,enty2,te,emiTe) - * vm_co2CCS.l(ttot,regi,enty,enty2,te,rlf) + * vm_co2CCS.l(ttot,regi,emiAll,enty2,te,rlf) ) *** Industry CCS emissions - ( sum(emiMac2mac(emiInd37_fuel,enty2), diff --git a/core/preloop.gms b/core/preloop.gms index 228948388..cfd04c06b 100755 --- 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; diff --git a/core/sets.gms b/core/sets.gms index 7c4e3553a..9bbe191f9 100755 --- a/core/sets.gms +++ b/core/sets.gms @@ -1722,9 +1722,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" @@ -1733,14 +1743,14 @@ 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 @@ -2004,7 +2014,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 / @@ -2405,7 +2415,7 @@ pc2te(all_enty,all_enty,all_te,all_enty) "mapping for own consumption of tech fedie.uedit.apCarDiEffH2T.feh2t / *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 @@ -2540,7 +2550,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, n2oanwstp,n2oagwaste,n2oforest,n2osavan,n2owaste).n2o @@ -2575,7 +2585,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 @@ -2592,7 +2602,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 @@ -2600,11 +2610,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 @@ -2612,7 +2622,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 index a03cd4436..fbb5a3527 100755 --- a/core/sets_calculations.gms +++ b/core/sets_calculations.gms @@ -30,14 +30,13 @@ teNoCCS(te) = not teCCS(te); entyFe(enty) = entyFeStat(enty) + entyFeTrans(enty); trade(enty) = tradePe(enty) + tradeSe(enty) + tradeMacro(enty); -emi(enty) = emiTe(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(all_enty,enty2,te) = pe2se(all_enty,enty2,te) + se2se(all_enty,enty2,te) + se2fe(all_enty,enty2,te) + fe2ue(all_enty,enty2,te) + ccs2te(all_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/11_aerosols/exoGAINS/datainput.gms b/modules/11_aerosols/exoGAINS/datainput.gms old mode 100644 new mode 100755 index c3c4c3448..914f5f026 --- 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 3a1210a94..26e116185 --- 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 17383ff0a..2dca6d830 --- 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/21_tax/on/equations.gms b/modules/21_tax/on/equations.gms old mode 100644 new mode 100755 index 285ac19f0..75f9b9c58 --- a/modules/21_tax/on/equations.gms +++ b/modules/21_tax/on/equations.gms @@ -73,8 +73,8 @@ v21_taxrevCO2luc(t,regi) =e= ( pm_taxCO2eq(t,regi) + pm_taxCO2eqSCC(t,regi) + p 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/sm_ccsinjecrate) * 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/sm_ccsinjecrate) * 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 eeb2e94dd..2a1d1b104 --- a/modules/21_tax/on/postsolve.gms +++ b/modules/21_tax/on/postsolve.gms @@ -21,8 +21,8 @@ OPTION decimals =3; p21_taxrevGHG0(ttot,regi) = ( pm_taxCO2eq(ttot,regi) + pm_taxCO2eqSCC(ttot,regi) + pm_taxCO2eqHist(ttot,regi)) * (vm_co2eq.l(ttot,regi) - vm_emiMacSector.l(ttot,regi,"co2luc")$(cm_multigasscen ne 3)); p21_taxrevCO2luc0(ttot,regi) = ( pm_taxCO2eq(ttot,regi) + pm_taxCO2eqSCC(ttot,regi) + pm_taxCO2eqHist(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/sm_ccsinjecrate) * 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/sm_ccsinjecrate) * 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_taxCO2eq(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/presolve.gms b/modules/21_tax/on/presolve.gms old mode 100644 new mode 100755 index 605067d72..7ea553949 --- a/modules/21_tax/on/presolve.gms +++ b/modules/21_tax/on/presolve.gms @@ -19,8 +19,8 @@ p21_tau_so2_tax(ttot,regi)$(ttot.val>2100)=p21_tau_so2_tax("2100",regi); p21_taxrevGHG0(ttot,regi) = ( pm_taxCO2eq(ttot,regi) + pm_taxCO2eqSCC(ttot,regi) + pm_taxCO2eqHist(ttot,regi)) * (vm_co2eq.l(ttot,regi) - vm_emiMacSector.l(ttot,regi,"co2luc")$(cm_multigasscen ne 3)); p21_taxrevCO2luc0(ttot,regi) = ( pm_taxCO2eq(ttot,regi) + pm_taxCO2eqSCC(ttot,regi) + pm_taxCO2eqHist(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/sm_ccsinjecrate) * 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/sm_ccsinjecrate) * 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_taxCO2eq(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/33_CDR/DAC/declarations.gms b/modules/33_CDR/DAC/declarations.gms old mode 100644 new mode 100755 index 02a0b3b27..a2cd65c58 --- 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]" v33_emiEW(ttot,all_regi) "negative CO2 emission from EW [GtC / a] - fixed to 0, only defined for reporting reasons" ; @@ -29,7 +29,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 e3bb9acc3..daeed5b6d --- 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 e37940da7..533ef70bb --- 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 baa5f0e2d..d8560e56d --- 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 fab544d61..d4352ed84 --- a/modules/33_CDR/off/bounds.gms +++ b/modules/33_CDR/off/bounds.gms @@ -9,7 +9,7 @@ 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; v33_grindrock_onfield.fx(t,regi,rlf,rlf2) = 0; v33_grindrock_onfield_tot.fx(t,regi,rlf,rlf2) = 0; diff --git a/modules/33_CDR/off/declarations.gms b/modules/33_CDR/off/declarations.gms old mode 100644 new mode 100755 index f0211497c..bd351ad58 --- 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]" ; positive variables diff --git a/modules/33_CDR/weathering/bounds.gms b/modules/33_CDR/weathering/bounds.gms old mode 100644 new mode 100755 index 85138564f..def3b0f1b --- a/modules/33_CDR/weathering/bounds.gms +++ b/modules/33_CDR/weathering/bounds.gms @@ -10,6 +10,6 @@ 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; v33_emiDAC.fx(t,regi) = 0.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 9ffe3f690..c9aa82f1a --- 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]" v33_emiDAC(ttot,all_regi) "negative CO2 emission from DAC [GtC / a] - fixed to 0, only defined for reporting reasons" ; 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 42ff3b4b1..4c7312b3d --- a/modules/37_industry/fixed_shares/declarations.gms +++ b/modules/37_industry/fixed_shares/declarations.gms @@ -24,8 +24,8 @@ Parameters p37_CESMkup(ttot,all_regi,all_in) "CES markup cost parameter [trUSD/CES input]" *** 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" ; 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 75f83fda2..69fc482d3 --- a/modules/37_industry/fixed_shares/postsolve.gms +++ b/modules/37_industry/fixed_shares/postsolve.gms @@ -6,9 +6,9 @@ *** | Contact: remind@pik-potsdam.de *** SOF ./modules/37_industry/fixed_shares/postsolve.gms -loop (enty$( sameas(enty,"co2") OR sameas(enty,"cco2") ), +loop (emiAll$( sameas(emiAll,"co2") OR sameas(emiAll,"cco2") ), !! prepare industry CCS emissions for post-processing - o37_emiInd(ttot,regi,entyPe,secInd37,enty)$( ttot.val ge 2005 ) + o37_emiInd(ttot,regi,entyPe,secInd37,emiAll)$( ttot.val ge 2005 ) = sum(secInd37_2_emiInd37(secInd37,emiInd37(emiInd37_fuel)), sum(pe2se(entyPE,entySE,te), sum(se2fe(entySE,entyFE,te2), @@ -39,10 +39,10 @@ loop (enty$( sameas(enty,"co2") OR sameas(enty,"cco2") ), ) ) ) - * ( 1$( sameas(enty,"co2") ) !! 1 for co2, 0 for cco2 + * ( 1$( sameas(emiAll,"co2") ) !! 1 for co2, 0 for cco2 + ( pm_macSwitch(emiInd37) * pm_macAbatLev(ttot,regi,emiInd37) - * ((0.5 - 1$( sameas(enty,"co2") )) * 2) !! -1 for co2, 1 for cco2 + * ((0.5 - 1$( sameas(emiAll,"co2") )) * 2) !! -1 for co2, 1 for cco2 ) ) !! residual emissions for co2, abated emissions for cco2 ); @@ -52,12 +52,12 @@ loop (enty$( sameas(enty,"co2") OR sameas(enty,"cco2") ), o37_emiInd(ttot,regi,peRe,secInd37,"co2") = 0; !! prepare cement process emissions for post-processing - o37_cementProcessEmissions(ttot,regi,enty)$( ttot.val ge 2005 ) + o37_cementProcessEmissions(ttot,regi,emiAll)$( ttot.val ge 2005 ) = vm_macBaseInd.l(ttot,regi,"co2cement_process","cement") - * ( 1$( sameas(enty,"co2") ) !! 1 for co2, 0 for cco2 + * ( 1$( sameas(emiAll,"co2") ) !! 1 for co2, 0 for cco2 + ( pm_macSwitch("co2cement") * pm_macAbatLev(ttot,regi,"co2cement") - * ((0.5 - 1$( sameas(enty,"co2") )) * 2) !! -1 for co2, 1 for cco2 + * ((0.5 - 1$( sameas(emiAll,"co2") )) * 2) !! -1 for co2, 1 for cco2 ) ); !! residual emissions for co2, abated emissions for cco2 diff --git a/modules/37_industry/subsectors/declarations.gms b/modules/37_industry/subsectors/declarations.gms old mode 100644 new mode 100755 index 879653703..451933829 --- a/modules/37_industry/subsectors/declarations.gms +++ b/modules/37_industry/subsectors/declarations.gms @@ -21,8 +21,8 @@ Parameters pm_ue_eff_target(all_in) "energy efficiency target trajectories [% p.a.]" *** 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) "total FE per energy carrier in industry, summed over subsectors" o37_shIndFE(ttot,all_regi,all_enty,secInd37) "share of FE carrier in total FE per industry subsector" 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 d4a638cd0..e11ca3c50 --- a/modules/37_industry/subsectors/postsolve.gms +++ b/modules/37_industry/subsectors/postsolve.gms @@ -7,9 +7,9 @@ *** SOF ./modules/37_industry/subsectors/postsolve.gms *' Prepare industry emissions for post-processing -loop (enty$( sameas(enty,"co2") OR sameas(enty,"cco2") ), +loop (emiAll$( sameas(emiAll,"co2") OR sameas(emiAll,"cco2") ), !! emissions from fuel burning - o37_emiInd(ttot,regi,entyPE,secInd37,enty)$( ttot.val ge 2005 ) + o37_emiInd(ttot,regi,entyPE,secInd37,emiAll)$( ttot.val ge 2005 ) !! link sector to emissions (sector-specifc MAC) = sum(secInd37_2_emiInd37(secInd37,emiInd37(emiInd37_fuel)), !! link sector energy use to FE/SE/PE production @@ -39,22 +39,22 @@ loop (enty$( sameas(enty,"co2") OR sameas(enty,"cco2") ), ) ) !! residual emissions for co2, abated emissions for cco2 - * ( 1$( sameas(enty,"co2") ) !! 1 for co2, 0 for cco2 + * ( 1$( sameas(emiAll,"co2") ) !! 1 for co2, 0 for cco2 + ( pm_macSwitch(emiInd37) * pm_macAbatlev(ttot,regi,emiInd37) - * ((0.5 - 1$( sameas(enty,"co2") )) * 2) !! -1 for co2, 1 for cco2 + * ((0.5 - 1$( sameas(emiAll,"co2") )) * 2) !! -1 for co2, 1 for cco2 ) ) ); !! cement process emissions - o37_cementProcessEmissions(ttot,regi,enty)$( ttot.val ge 2005 ) + o37_cementProcessEmissions(ttot,regi,emiAll)$( ttot.val ge 2005 ) = vm_macBaseInd.l(ttot,regi,"co2cement_process","cement") !! residual emissions for co2, abated emissions for cco2 - * ( 1$( sameas(enty,"co2") ) !! 1 for co2, 0 for cco2 + * ( 1$( sameas(emiAll,"co2") ) !! 1 for co2, 0 for cco2 + ( pm_macSwitch("co2cement") * pm_macAbatLev(ttot,regi,"co2cement") - * ((0.5 - 1$( sameas(enty,"co2") )) * 2) !! -1 for co2, 1 for cco2 + * ((0.5 - 1$( sameas(emiAll,"co2") )) * 2) !! -1 for co2, 1 for cco2 ) ); ); diff --git a/modules/39_CCU/off/declarations.gms b/modules/39_CCU/off/declarations.gms old mode 100644 new mode 100755 index f0068161c..9971a9367 --- 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 ba675ea56..8dabb4ee0 --- 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 5fed8f9e8..cc0b7667e --- a/modules/47_regipol/regiCarbonPrice/equations.gms +++ b/modules/47_regipol/regiCarbonPrice/equations.gms @@ -41,7 +41,7 @@ q47_emiTarget_grossEnCO2(t,regi).. vm_emiTe(t,regi,"co2") *** 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)) - + 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) - sum(se2fe(enty,enty2,te), pm_emifac(t,regi,enty,enty2,te,"co2") * vm_demFeSector(t,regi,enty,enty2,"trans","other")) ; From 4531987a72e9731a78084663f4ae1bb172096c79 Mon Sep 17 00:00:00 2001 From: spahrm <47612192+spahrm@users.noreply.github.com> Date: Thu, 14 Oct 2021 10:14:35 +0200 Subject: [PATCH 26/31] Added all necessary changes for en2en set --- core/equations.gms | 8 ++++++++ core/sets_calculations.gms | 2 +- modules/05_initialCap/on/preloop.gms | 5 +++++ 3 files changed, 14 insertions(+), 1 deletion(-) mode change 100644 => 100755 modules/05_initialCap/on/preloop.gms diff --git a/core/equations.gms b/core/equations.gms index 1d06bf0bb..f40fb94d5 100755 --- a/core/equations.gms +++ b/core/equations.gms @@ -84,6 +84,14 @@ q_costOM(t,regi).. * (vm_prodSe(t,regi,enty,enty2,te)$entySe(enty2) + vm_prodFe(t,regi,enty,enty2,te)$entyFe(enty2)) ) + sum(ccs2te(emiAll,enty2,te), + pm_data(regi,"omf",te) + * sum(te2rlf(te,rlf), vm_costTeCapital(t,regi,te) * vm_cap(t,regi,te,rlf) ) + + + pm_data(regi,"omv",te) + * (vm_prodSe(t,regi,enty,enty2,te)$entySe(enty2) + + vm_prodFe(t,regi,enty,enty2,te)$entyFe(enty2)) + ) + sum(teNoTransform(te), pm_data(regi,"omf",te) diff --git a/core/sets_calculations.gms b/core/sets_calculations.gms index 9032ee94e..b362b9460 100755 --- a/core/sets_calculations.gms +++ b/core/sets_calculations.gms @@ -35,7 +35,7 @@ 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(all_enty,enty2,te) = pe2se(all_enty,enty2,te) + se2se(all_enty,enty2,te) + se2fe(all_enty,enty2,te) + fe2ue(all_enty,enty2,te) + ccs2te(all_enty,enty2,te); +en2en(all_enty,enty2,te) = pe2se(all_enty,enty2,te) + se2se(all_enty,enty2,te) + se2fe(all_enty,enty2,te) + fe2ue(all_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/05_initialCap/on/preloop.gms b/modules/05_initialCap/on/preloop.gms old mode 100644 new mode 100755 index 7e818737d..f095ea8fe --- a/modules/05_initialCap/on/preloop.gms +++ b/modules/05_initialCap/on/preloop.gms @@ -69,6 +69,11 @@ 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) From 162007a5b05f7d2ca37e5f5f547e9558c72d1d33 Mon Sep 17 00:00:00 2001 From: spahrm <47612192+spahrm@users.noreply.github.com> Date: Thu, 14 Oct 2021 14:43:36 +0200 Subject: [PATCH 27/31] Fixed en2en changes --- core/equations.gms | 6 ++++++ core/sets_calculations.gms | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/core/equations.gms b/core/equations.gms index f40fb94d5..5d63917d4 100755 --- a/core/equations.gms +++ b/core/equations.gms @@ -34,6 +34,11 @@ q_costInv(t,regi).. v_costInvTeDir(t,regi,te) + v_costInvTeAdj(t,regi,te)$teAdj(te) ) + +*** investment cost of emission conversion technologies + sum(ccs2te(emiAll,enty2,te), + v_costInvTeDir(t,regi,te) + v_costInvTeAdj(t,regi,te)$teAdj(te) + ) + + *** investment cost of non-conversion technologies (storage, grid etc.) sum(teNoTransform, v_costInvTeDir(t,regi,teNoTransform) + v_costInvTeAdj(t,regi,teNoTransform)$teAdj(teNoTransform) @@ -84,6 +89,7 @@ q_costOM(t,regi).. * (vm_prodSe(t,regi,enty,enty2,te)$entySe(enty2) + vm_prodFe(t,regi,enty,enty2,te)$entyFe(enty2)) ) + + sum(ccs2te(emiAll,enty2,te), pm_data(regi,"omf",te) * sum(te2rlf(te,rlf), vm_costTeCapital(t,regi,te) * vm_cap(t,regi,te,rlf) ) diff --git a/core/sets_calculations.gms b/core/sets_calculations.gms index b362b9460..32a368af7 100755 --- a/core/sets_calculations.gms +++ b/core/sets_calculations.gms @@ -35,7 +35,7 @@ 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(all_enty,enty2,te) = pe2se(all_enty,enty2,te) + se2se(all_enty,enty2,te) + se2fe(all_enty,enty2,te) + fe2ue(all_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 From 99ed2eb78399d167caf7188b44ab7bfb09893d78 Mon Sep 17 00:00:00 2001 From: spahrm <47612192+spahrm@users.noreply.github.com> Date: Tue, 19 Oct 2021 15:53:03 +0200 Subject: [PATCH 28/31] Added changes for pm_prodCouple variable --- core/datainput.gms | 10 ++++++++++ core/equations.gms | 20 +++++-------------- core/sets.gms | 5 ++++- .../04_PE_FE_parameters/iea2014/datainput.gms | 2 +- .../iea2014/declarations.gms | 1 + modules/05_initialCap/on/preloop.gms | 5 +++++ modules/32_power/IntC/equations.gms | 4 ++-- modules/32_power/RLDC/equations.gms | 8 ++++---- 8 files changed, 32 insertions(+), 23 deletions(-) mode change 100644 => 100755 modules/04_PE_FE_parameters/iea2014/datainput.gms mode change 100644 => 100755 modules/04_PE_FE_parameters/iea2014/declarations.gms mode change 100644 => 100755 modules/32_power/IntC/equations.gms mode change 100644 => 100755 modules/32_power/RLDC/equations.gms diff --git a/core/datainput.gms b/core/datainput.gms index 5ac46b3e5..d8d66ab5f 100755 --- a/core/datainput.gms +++ b/core/datainput.gms @@ -1527,6 +1527,16 @@ $ifthen.subsectors "%industry%" == "subsectors" !! industry s_histBioShareTolerance = 0.3; $endif.subsectors +*** define global values for couple production that can be used if the regional IEA data are 0 +pm_prodCoupleEmi("cco2","ico2","ccsinje","seel") = -0.005; +loop(pc2emi(enty,enty,te,enty2), + loop(regi, + if(pm_prodCoupleEmi(regi,emiAll,enty,te,enty2) eq 0, + pm_prodCoupleEmi(regi,emiAll,enty,te,enty2) = pm_prodCoupleEmi("cco2","ico2","ccsinje","seel"); + ); + ); +); +display pm_prodCoupleEmi; *** EOF ./core/datainput.gms diff --git a/core/equations.gms b/core/equations.gms index 5d63917d4..1a71c234b 100755 --- a/core/equations.gms +++ b/core/equations.gms @@ -29,20 +29,10 @@ q_costFu(t,regi).. q_costInv(t,regi).. v_costInv(t,regi) =e= -*** investment cost of conversion technologies - sum(en2en(enty,enty2,te), +*** investment cost for technologies + sum(te$(not(sameas(te,"h2curt") or sameas(te,"tdh2b") or sameas(te,"tdh2i"))), v_costInvTeDir(t,regi,te) + v_costInvTeAdj(t,regi,te)$teAdj(te) ) - + -*** investment cost of emission conversion technologies - sum(ccs2te(emiAll,enty2,te), - v_costInvTeDir(t,regi,te) + v_costInvTeAdj(t,regi,te)$teAdj(te) - ) - + -*** investment cost of non-conversion technologies (storage, grid etc.) - sum(teNoTransform, - v_costInvTeDir(t,regi,teNoTransform) + v_costInvTeAdj(t,regi,teNoTransform)$teAdj(teNoTransform) - ) *** additional transmission and distribution cost (increases hydrogen cost at low hydrogen penetration levels when hydrogen infrastructure is not yet developed) + sum(sector2te_addTDCost(sector,te), @@ -142,10 +132,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 diff --git a/core/sets.gms b/core/sets.gms index e605557c6..ae8a47eaa 100755 --- a/core/sets.gms +++ b/core/sets.gms @@ -2451,11 +2451,14 @@ 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,emiAll) " map emissions to technologies" / 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 87a26e27a..aa3b3111e --- a/modules/04_PE_FE_parameters/iea2014/datainput.gms +++ b/modules/04_PE_FE_parameters/iea2014/datainput.gms @@ -147,7 +147,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; 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 43ba1afee..fb4dbf1f0 --- a/modules/04_PE_FE_parameters/iea2014/declarations.gms +++ b/modules/04_PE_FE_parameters/iea2014/declarations.gms @@ -10,6 +10,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) 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" diff --git a/modules/05_initialCap/on/preloop.gms b/modules/05_initialCap/on/preloop.gms index f095ea8fe..65cd33c06 100755 --- a/modules/05_initialCap/on/preloop.gms +++ b/modules/05_initialCap/on/preloop.gms @@ -80,6 +80,11 @@ q05_eedemini(regi,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) + ) ; *** capacity meets demand of the produced energy: diff --git a/modules/32_power/IntC/equations.gms b/modules/32_power/IntC/equations.gms old mode 100644 new mode 100755 index 202724a60..73e738040 --- a/modules/32_power/IntC/equations.gms +++ b/modules/32_power/IntC/equations.gms @@ -14,9 +14,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 c98532505..fcff3b3a6 --- a/modules/32_power/RLDC/equations.gms +++ b/modules/32_power/RLDC/equations.gms @@ -13,9 +13,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) ) @@ -57,9 +57,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) ) ) ) ; From d2b8fa7864a3c9b3c66fce27cbcbb330eeca00cd Mon Sep 17 00:00:00 2001 From: spahrm <47612192+spahrm@users.noreply.github.com> Date: Wed, 20 Oct 2021 10:30:13 +0200 Subject: [PATCH 29/31] Added fixes for splitting emiAll from all_enty --- core/datainput.gms | 12 ------------ core/equations.gms | 13 ++----------- core/postsolve.gms | 2 +- modules/04_PE_FE_parameters/iea2014/datainput.gms | 12 ++++++++++++ .../04_PE_FE_parameters/iea2014/declarations.gms | 1 + modules/33_CDR/DAC/bounds.gms | 2 +- 6 files changed, 17 insertions(+), 25 deletions(-) mode change 100644 => 100755 modules/33_CDR/DAC/bounds.gms diff --git a/core/datainput.gms b/core/datainput.gms index d8d66ab5f..9e3d6f4af 100755 --- a/core/datainput.gms +++ b/core/datainput.gms @@ -1527,16 +1527,4 @@ $ifthen.subsectors "%industry%" == "subsectors" !! industry s_histBioShareTolerance = 0.3; $endif.subsectors -*** define global values for couple production that can be used if the regional IEA data are 0 -pm_prodCoupleEmi("cco2","ico2","ccsinje","seel") = -0.005; -loop(pc2emi(enty,enty,te,enty2), - loop(regi, - if(pm_prodCoupleEmi(regi,emiAll,enty,te,enty2) eq 0, - pm_prodCoupleEmi(regi,emiAll,enty,te,enty2) = pm_prodCoupleEmi("cco2","ico2","ccsinje","seel"); - ); - ); -); -display pm_prodCoupleEmi; - - *** EOF ./core/datainput.gms diff --git a/core/equations.gms b/core/equations.gms index 1a71c234b..9cf408949 100755 --- a/core/equations.gms +++ b/core/equations.gms @@ -80,15 +80,6 @@ q_costOM(t,regi).. + vm_prodFe(t,regi,enty,enty2,te)$entyFe(enty2)) ) + - sum(ccs2te(emiAll,enty2,te), - pm_data(regi,"omf",te) - * sum(te2rlf(te,rlf), vm_costTeCapital(t,regi,te) * vm_cap(t,regi,te,rlf) ) - + - pm_data(regi,"omv",te) - * (vm_prodSe(t,regi,enty,enty2,te)$entySe(enty2) - + vm_prodFe(t,regi,enty,enty2,te)$entyFe(enty2)) - ) - + sum(teNoTransform(te), pm_data(regi,"omf",te) * sum(te2rlf(te,rlf), @@ -781,8 +772,8 @@ 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(emiAll,enty2,te),ccs2te2(enty2,enty3,te2),rlf)$teCCS2rlf(te2,rlf).. - (1-pm_emifac(t,regi,enty,enty2,te,"co2")) * vm_co2CCS(t,regi,emiAll,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,emiAll,enty3,te2,rlf); diff --git a/core/postsolve.gms b/core/postsolve.gms index 5c8f6bd9b..49372c946 100755 --- a/core/postsolve.gms +++ b/core/postsolve.gms @@ -773,7 +773,7 @@ o_emissions_energy_negative(ttot,regi,emiTe)$(ttot.val ge 2005) = ) + sum((ccs2Leak(emiAll,enty2,te,emiTe),teCCS2rlf(te,rlf)), - pm_emifac(ttot,regi,enty,enty2,te,emiTe) + pm_emifac(ttot,regi,emiAll,enty2,te,emiTe) * vm_co2CCS.l(ttot,regi,emiAll,enty2,te,rlf) ) *** Industry CCS emissions diff --git a/modules/04_PE_FE_parameters/iea2014/datainput.gms b/modules/04_PE_FE_parameters/iea2014/datainput.gms index aa3b3111e..94e8ef975 100755 --- a/modules/04_PE_FE_parameters/iea2014/datainput.gms +++ b/modules/04_PE_FE_parameters/iea2014/datainput.gms @@ -160,6 +160,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 index fb4dbf1f0..25d0a7ea5 100755 --- a/modules/04_PE_FE_parameters/iea2014/declarations.gms +++ b/modules/04_PE_FE_parameters/iea2014/declarations.gms @@ -18,4 +18,5 @@ 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 couple products" ; diff --git a/modules/33_CDR/DAC/bounds.gms b/modules/33_CDR/DAC/bounds.gms old mode 100644 new mode 100755 index 446723bf1..e1d6af860 --- 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; v33_emiEW.fx(t,regi) = 0.0; From 148ed961c8f0f2e57cf3a632b7f34baa26abb89a Mon Sep 17 00:00:00 2001 From: spahrm <47612192+spahrm@users.noreply.github.com> Date: Wed, 20 Oct 2021 10:56:22 +0200 Subject: [PATCH 30/31] Added description for pm_prodCoupleEmi --- modules/04_PE_FE_parameters/iea2014/declarations.gms | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/04_PE_FE_parameters/iea2014/declarations.gms b/modules/04_PE_FE_parameters/iea2014/declarations.gms index 25d0a7ea5..3f74a4f88 100755 --- a/modules/04_PE_FE_parameters/iea2014/declarations.gms +++ b/modules/04_PE_FE_parameters/iea2014/declarations.gms @@ -10,7 +10,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) +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,5 +18,5 @@ 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 couple products" +p04_prodCoupleGlobEmi(emiAll,all_enty,all_te,all_enty) "global emissions couple products" ; From 0f8d00b637020184086ba64dcf6411d44105d95a Mon Sep 17 00:00:00 2001 From: spahrm <47612192+spahrm@users.noreply.github.com> Date: Fri, 22 Oct 2021 11:58:23 +0200 Subject: [PATCH 31/31] Added bounds for v05_INIcap0 for ccsinje value --- modules/05_initialCap/on/preloop.gms | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/05_initialCap/on/preloop.gms b/modules/05_initialCap/on/preloop.gms index 65cd33c06..4ff679f0b 100755 --- a/modules/05_initialCap/on/preloop.gms +++ b/modules/05_initialCap/on/preloop.gms @@ -87,6 +87,8 @@ q05_eedemini(regi,enty).. ) ; +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)