The 47_regipol module includes region-specific policies and adjustments on top of the generic parts in the core and other modules.
The regiCarbonPrice realization has two purposes. First,
it allows to determine region specific year or budget targets for CO2 or
GHG emissions. Second, it comprises region-specific adjustments that are
always active in this realization and policies that can be activated by
specific switches (see modules/47_regipol/regiCarbonPrice/bounds.gms).
On the emissions targets: Emissions targets can be activated via the
switch cm_emiMktTarget and there are number of options that can be
chosen to specify them like the type of target (annual target or
budget), the target year, the regions the target should be applied to,
the emissions metric (CO2, GHG, CO2 excl. bunkers/LULUCF etc.) and the
emissions market (all, ETS, ESR). For example, setting cm_emiMktTarget
to “2020.2030.EU27_regi.all.year.netGHG_noLULUCF_noBunkers 3.16,
2035.2050.EU27_regi.all.year.netCO2 0.001” will apply two emissions
targets to the region group “EU27_regi” which consists of all model
regions in the EU27 (for the definition of region groups, please see
definition of the set regi_group): The first is a target of 3.16
GtCO2eq/yr annual (“year”) emissions by 2030 in the metric of net
greenhouse gas emissions without LULUCF and bunkers
(“netGHG_noLULUCF_noBunkers”, for definition of emissions metrics see
modules/47_regipol/regiCarbonPrice/postsolve.gms) for all emissions
markets (“all”). The second defines a target of 1 Mt CO2/yr annual
(“year”) emissions by 2050 in the metric of net CO2 emissions (“netCO2”)
for all emissions markets (“all”). For details on the options please see
the description of the switch. When an emissions target is set via this
switch, the carbon price in the target years and regions, to which it is
applied, is adjusted over nash iterations in REMIND until the desired
emissions target is reached within a certain margin of tolerance defined
by cm_emiMktTarget_tolerance. Note that also multiple emissions targets
can be specified for different years (e.g. the EU’s 2030 and 2050
targets). The carbon price trajectory up to the target years are linear
and the carbon price is assumed to still increase linearly at a small
rate after the last target year. Please check the parameter
pm_emiMktTarget_dev_iter to see the emissions target convergence over
iterations. Note that these regional emissions targets of the module
only overwrite the carbon price trajectory for the regions they are
applied to, while the other regions keep the carbon price trajectories
that are adjusted in other parts of the model, in particular, from the
global emissions target adjustment. This means that these regional
targets come on top of the global emissions target that REMIND aims to
achieve. On the regional bounds and adjustments: In the bounds file,
there are a number of regionally hard-coded bounds to the model that aim
to improve the representation of specific regions in REMIND. They come
on top of the bounds in the core of REMIND. The difference is that core
defines bounds for all regions, while in this module region-specific
adjustments are made which have not yet been generalized to all regions
and are not activated outside of the realization “regiCarbonPrice”.
These bounds either serve to align REMIND with historic and near-term
data in specific regions or represent regional policies (like national
coal phase-out plans) that can be activated via switches. Finally, there
are some regional adjustments in the datainput file that modify input
data for specific regions for cases which have not been generalized for
all REMIND regions yet.
Interface plot missing!
| Description | Unit | A | B | |
|---|---|---|---|---|
| cm_deuCDRmax | switch to limit maximum annual CDR amount in Germany in MtCO2 per y | x | x | |
| cm_emiMktTargetDelay | number of years for delayed price change in the emission tax convergence algorithm. Not applied to first target set. | x | ||
| cm_EnSecScen_limit | switch for limiting the gas demand from 2025 onward, currently only applied to Germany | x | ||
| cm_noPeFosCCDeu | switch to suppress Pe2Se Fossil Carbon Capture in Germany | x | x | |
| cm_postTargetIncrease | carbon price increase per year after regipol emission target is reached (euro per tCO2) | x | ||
| cm_startyear | first optimized modelling time step | \(year\) | x | |
| pm_cesdata (tall, all_regi, all_in, cesParameter) |
parameters of the CES function | x | ||
| pm_cf (tall, all_regi, all_te) |
Installed capacity availability - capacity factor (fraction of the year that a plant is running) | x | x | |
| pm_conv_TWa_EJ | conversion from TWa to EJ | x | ||
| pm_data (all_regi, char, all_te) |
Large array for most technical parameters of technologies; more detail on the individual technical parameters can be found in the declaration of the set ‘char’ | x | ||
| pm_delta_histCap (tall, all_regi, all_te) |
parameter to store data of historic capacity additions | \(TW/yr\) | x | x |
| pm_emifac (tall, all_regi, all_enty, all_enty, all_te, all_enty) |
emission factor by technology for all types of emissions in emiTe | x | x | |
| 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)\) | x | |
| pm_FEPrice_by_SE_Sector (ttot, all_regi, entySe, all_enty, sector) |
parameter to save FE marginal price per SE and sector | \(tr\$2005/TWa\) | x | |
| pm_histCap (tall, all_regi, all_te) |
historical installed capacity | x | ||
| pm_inco0_t (ttot, all_regi, all_te) |
New inco0 that is time-dependent for some technologies. | \(T\$/TW\) | x | |
| pm_IndstCO2Captured (ttot, all_regi, all_enty, all_enty, secInd37, all_emiMkt) |
Captured CO2 in industry by energy carrier, subsector and emissions market | x | ||
| pm_macBaseMagpie (tall, all_regi, all_enty) |
baseline emissions from MAgPIE (type emiMacMagpie) | x | ||
| pm_PEPrice (ttot, all_regi, all_enty) |
parameter to capture all PE prices | \(tr\$2005/TWa\) | x | |
| pm_prodCouple (all_regi, all_enty, all_enty, all_te, all_enty) |
own consumption | x | ||
| pm_share_CCS_CCO2 (ttot, all_regi) |
share of stored CO2 from total captured CO2 | x | ||
| pm_shareWindOff (ttot, all_regi) |
windoff rollout as a fraction of technical potential | x | ||
| pm_shareWindPotentialOff2On (all_regi) |
ratio of technical potential of windoff to windon | x | ||
| pm_tau_ces_tax (ttot, all_regi, all_in) |
ces production tax to implement CES mark-up cost in a budget-neutral way | x | ||
| pm_tau_pe_tax (ttot, all_regi, all_enty) |
pe tax path | x | ||
| pm_taxCO2eq (ttot, all_regi) |
CO2 tax path in T\(/GtC =\)/kgC. To get $/tCO2, multiply with 272 | \(T\$/GtC\) | x | |
| pm_taxCO2eqRegi (tall, all_regi) |
additional regional CO2 tax path in T$/GtC = \(/kgC. To get\)/tCO2, multiply with 272 | \(T\$/GtC\) | x | |
| pm_taxCO2eqSCC (ttot, all_regi) |
carbon tax component due to damages (social cost of carbon) | x | ||
| pm_taxCO2eqSum (tall, all_regi) |
sum of pm_taxCO2eq, pm_taxCO2eqRegi, pm_taxCO2eqSCC in T\(/GtC =\)/kgC. To get $/tCO2, multiply with 272 | \(T\$/GtC\) | x | |
| pm_taxemiMkt (ttot, all_regi, all_emiMkt) |
CO2 or CO2eq region and emission market specific emission tax | x | ||
| pm_taxemiMkt_iteration (iteration, ttot, all_regi, all_emiMkt) |
CO2 or CO2eq region and emission market specific emission tax per iteration | x | ||
| pm_taxrevCO2LUC0 (ttot, all_regi) |
reference level value of co2luc emission tax | x | ||
| pm_taxrevCO2Sector0 (ttot, all_regi, emi_sectors) |
reference level value of CO2 sector markup tax | x | ||
| pm_taxrevGHG0 (ttot, all_regi) |
reference level value of GHG emission tax | x | ||
| pm_taxrevNetNegEmi0 (ttot, all_regi) |
reference level value of net-negative emissions tax | x | ||
| pm_ts (tall) |
(t_n+1 - t_n-1)/2 for a timestep t_n | x | ||
| pm_ttot_val (ttot) |
value of ttot set element | x | ||
| sm_c_2_co2 | conversion from c to co2 | x | x | |
| sm_D2005_2_D2017 | Convert US$2005 to US$2017 | x | ||
| sm_DpGJ_2_TDpTWa | multipl. factor to convert (Dollar per GJoule) to (TerraDollar per TWyear) | x | ||
| sm_DptCO2_2_TDpGtC | Conversion multiplier to go from \(/tCO2 to T\)/GtC: 44/12/1000 | x | ||
| sm_EJ_2_TWa | multiplicative factor to convert from EJ to TWa | x | ||
| sm_globalBudget_dev | actual level of global cumulated emissions budget divided by target budget | x | ||
| sm_tgch4_2_pgc | conversion factor 100-yr GWP from TgCH4 to PgCeq | x | ||
| sm_tgn_2_pgc | conversion factor 100-yr GWP from TgN to PgCeq | x | ||
| vm_cap (tall, all_regi, all_te, rlf) |
net total capacities | x | ||
| vm_capEarlyReti (tall, all_regi, all_te) |
fraction of early retired capital | x | x | |
| vm_capFac (ttot, all_regi, all_te) |
capacity factor of conversion technologies | x | ||
| vm_capTotal (ttot, all_regi, all_enty, all_enty) |
total capacity without technology differentation for technologies where there exists differentation | \(TW\) | x | |
| vm_cesIO (tall, all_regi, all_in) |
Production factor | x | ||
| vm_co2CCS (ttot, all_regi, all_enty, all_enty, all_te, rlf) |
all different ccs. | \(GtC/a\) | x | x |
| vm_co2eqMkt (ttot, all_regi, all_emiMkt) |
total emissions per market measured in co2 equivalents ATTENTION: content depends on multigasscen. | \(GtCeq\) | x | |
| vm_deltaCap (tall, all_regi, all_te, rlf) |
capacity additions | x | x | |
| vm_demFeSector (ttot, all_regi, all_enty, all_enty, emi_sectors, all_emiMkt) |
fe demand per sector and emission market. Taxes should be applied to this variable or variables closer to the supply side whenever possible so the marginal prices include the tax effects. | \(TWa\) | x | |
| vm_demPe (tall, all_regi, all_enty, all_enty, all_te) |
pe demand. | \(TWa, Uranium: Mt Ur\) | x | |
| vm_demSe (ttot, all_regi, all_enty, all_enty, all_te) |
se demand. | \(TWa\) | x | |
| vm_emiAllMkt (tall, all_regi, all_enty, all_emiMkt) |
total regional emissions for each emission market. | \(GtC, Mt CH4, Mt N\) | x | |
| vm_emiCdrAll (ttot, all_regi) |
all CDR emissions | x | x | |
| vm_emiFgas (ttot, all_regi, all_enty) |
F-gas emissions by single gases from IMAGE | x | ||
| vm_emiIndCCS (ttot, all_regi, all_enty) |
industry CCS emissions | \(GtC/a\) | x | |
| vm_emiMacSector (ttot, all_regi, all_enty) |
total non-energy-related emission of each region. | \(GtC, Mt CH4, Mt N\) | x | |
| vm_emiTeDetail (ttot, all_regi, all_enty, all_enty, all_te, all_enty) |
energy-related emissions per region and technology | x | x | |
| vm_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\) | x | |
| vm_emiTeMkt (tall, all_regi, all_enty, all_emiMkt) |
total energy-emissions of each region and emission market. | \(GtC, Mt CH4, Mt N\) | x | |
| vm_prodPe (ttot, all_regi, all_enty) |
pe production. | \(TWa, Uranium: Mt Ur\) | x | |
| vm_prodSe (tall, all_regi, all_enty, all_enty, all_te) |
se production. | \(TWa\) | x | |
| vm_shSeEl (ttot, all_regi, all_te) |
new share of electricity production in % | \(\%\) | x | |
| vm_taxrevimplicitPePriceTax (ttot, all_regi, all_enty) |
primary energy price target implemented through implict tax | x | ||
| vm_taxrevimplicitPriceTax (ttot, all_regi, entySe, all_enty, sector) |
final energy price target implemented through implict tax | x | ||
| vm_taxrevimplicitQttyTargetTax (ttot, all_regi) |
quantity target bound implemented through implict tax | x |
| Description | Unit | |
|---|---|---|
| pm_allTargetsConverged (ext_regi) |
boolean to store if all emission targets converged at least once | \(0 or 1\) |
| pm_emiMktCurrent (ttot, ttot2, ext_regi, emiMktExt) |
previous iteration region emissions (from year ttot to ttot2 for budget) | \(GtCO2 or GtCO2eq\) |
| pm_emiMktRefYear (ttot, ttot2, ext_regi, emiMktExt) |
emissions in reference year 2005, used for calculating target deviation of year targets | \(GtCO2 or GtCO2eq\) |
| pm_emiMktTarget (ttot, ttot2, ext_regi, emiMktExt, target_type_47, emi_type_47) |
region emissions target | \(GtCO2 or GtCO2eq\) |
| pm_emiMktTarget_dev (ttot, ttot2, ext_regi, emiMktExt) |
target deviation across iterations in current emissions divided by target emissions (1 is 100%) | |
| pm_emiMktTarget_dev_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
parameter to save pm_emiMktTarget_dev across iterations (1 is 100%) | |
| pm_emiMktTarget_tolerance (ext_regi) |
tolerance for regipol emission target deviations convergence | \(#\) |
| pm_exogDemScen (ttot, all_regi, exogDemScen, all_in) |
Exogenous demand trajectories to fix CES function to specific quantity trajectories | |
| pm_factorRescaleemiMktCO2Tax (ttot, ttot2, ext_regi, emiMktExt) |
multiplicative tax rescale factor that rescales emiMkt carbon price from iteration to iteration to reach regipol targets | \(\%\) |
| pm_implicitPePrice_ignConv (all_regi, all_enty, ttot) |
auxiliary parameter to store the price targets that were ignored in the convergence check (cases: 1 = non existent price, 2 = no change in prices for the last 3 iterations) | \(#\) |
| pm_implicitPePrice_NotConv (all_regi, all_enty, ttot) |
auxiliary parameter to store the price targets that did not converged | \(\%\) |
| pm_implicitPePriceTarget (ttot, all_regi, all_enty) |
price target for PE carrier per sector | \(2005 TerraDollar/TWyear\) |
| pm_implicitPrice_ignConv (all_regi, sector, all_enty, entySe, ttot) |
auxiliary parameter to store the price targets that were ignored in the convergence check (cases: 1 = non existent price, 2 = no change in prices for the last 3 iterations) | \(#\) |
| pm_implicitPrice_NotConv (all_regi, sector, all_enty, entySe, ttot) |
auxiliary parameter to store the price targets that did not converged | \(\%\) |
| pm_implicitPriceTarget (ttot, all_regi, all_enty, entySe, sector) |
price target for FE carrier per sector | \(2005 TerraDollar/TWyear\) |
| pm_implicitQttyTarget (ttot, ext_regi, taxType, targetType, qttyTarget, qttyTargetGroup) |
quantity target | \(absolute: TWa or GtC; or percentage: 0.1\) |
| pm_implicitQttyTarget_dev (ttot, ext_regi, qttyTarget, qttyTargetGroup) |
deviation of current iteration quantity target from target - relative for total targets, absolute (= share points) for share targets | |
| pm_implicitQttyTarget_isLimited (iteration, ttot, ext_regi, qttyTarget, qttyTargetGroup) |
1 (one) if there is a hard bound on the model that does not allow the tax to change further the quantity |
Limitations There are no known limitations.
The regiCarbonPrice realization has two purposes. First,
it allows to determine region specific year or budget targets for CO2 or
GHG emissions. Second, it comprises region-specific adjustments that are
always active in this realization and policies that can be activated by
specific switches (see bounds file). Please see module description for
details.
Implicit tax/subsidy necessary to achieve quantity target for primary, secondary, final energy and/or CCS
\[\begin{multline*} vm\_taxrevimplicitQttyTargetTax(t,regi) = \sum_{\left(qttyTarget,qttyTargetGroup\right)\$p47\_implicitQttyTargetTax(t,regi,qttyTarget,qttyTargetGroup)}\left( \left( p47\_implicitQttyTargetTax(t,regi,qttyTarget,qttyTargetGroup) \cdot \sum_{entyPe\$energyQttyTargetANDGroup2enty(qttyTarget,qttyTargetGroup,entyPe)}\left( \sum_{pe2se(entyPe,entySe,te)} vm\_demPe(t,regi,entyPe,entySe,te)\right) \right)\$sameas(qttyTarget,"PE") + \left( p47\_implicitQttyTargetTax(t,regi,qttyTarget,qttyTargetGroup) \cdot \sum_{entySe\$energyQttyTargetANDGroup2enty(qttyTarget,qttyTargetGroup,entySe)}\left( \sum_{se2fe(entySe,entyFe,te)} vm\_demSe(t,regi,entySe,entyFe,te)\right) \right)\$sameas(qttyTarget,"SE") + \left( p47\_implicitQttyTargetTax(t,regi,qttyTarget,qttyTargetGroup) \cdot \sum_{entySe\$energyQttyTargetANDGroup2enty("FE",qttyTargetGroup,entySe)}\left( \sum_{se2fe(entySe,entyFe,te)}\left( \sum_{\left(sector,emiMkt\right)\$\left(entyFe2Sector(entyFe,sector) \& sector2emiMkt(sector,emiMkt)\right)} vm\_demFeSector(t,regi,entySe,entyFe,sector,emiMkt)\right)\right) \right)\$\left(sameas(qttyTarget,"FE") or sameas(qttyTarget,"FE\_wo\_b") or sameas(qttyTarget,"FE\_wo\_n\_e") or sameas(qttyTarget,"FE\_wo\_b\_wo\_n\_e")\right) + \left( p47\_implicitQttyTargetTax(t,regi,qttyTarget,qttyTargetGroup) \cdot \sum_{ccs2te\left(ccsCo2(enty),enty2,te\right)}\left( \sum_{teCCS2rlf(te,rlf)}vm\_co2CCS(t,regi,enty,enty2,te,rlf)\right) \right)\$sameas(qttyTarget,"CCS") + \left( p47\_implicitQttyTargetTax(t,regi,qttyTarget,qttyTargetGroup) \cdot \left(-\sum_{te\_oae33} vm\_emiCdrTeDetail(t,regi,te\_oae33)\right) \right)\$sameas(qttyTarget,"oae") \right) - p47\_implicitQttyTargetTax0(t,regi) \end{multline*}\]
implicit tax/subsidy necessary to final energy price targets
\[\begin{multline*} vm\_taxrevimplicitPriceTax(t,regi,entySe,entyFe,sector) = \left( p47\_implicitPriceTax(t,regi,entyFe,entySe,sector) \cdot \sum\left(emiMkt\$sector2emiMkt(sector,emiMkt), vm\_demFeSector(t,regi,entySe,entyFe,sector,emiMkt)\right) \right) - p47\_implicitPriceTax0(t,regi,entyFe,entySe,sector) \end{multline*}\]
implicit tax/subsidy necessary to primary energy price targets
\[\begin{multline*} vm\_taxrevimplicitPePriceTax(t,regi,entyPe) = \left( p47\_implicitPePriceTax(t,regi,entyPe) \cdot vm\_prodPe(t,regi,entyPe) \right) - p47\_implicitPePriceTax0(t,regi,entyPe) \end{multline*}\]
Emission quantity target
\[\begin{multline*} \sum_{emiMkt}\left( \sum_{emiMkt\$emiMktGroup(emiMktExt,emiMkt)} vm\_emiAllMkt(t,regi,"co2",emiMkt) - \left( \sum_{se2fe(enty,enty2,te)}\left( pm\_emifac(t,regi,enty,enty2,te,"co2") \cdot vm\_demFeSector(t,regi,enty,enty2,"trans","other") \right) \right)\$\left(sameas(emiMktExt,"other") or sameas(emiMktExt,"all")\right) \right) \leq \frac{ p47\_quantity\_regiCO2target(t,ext\_regi)}{sm\_c\_2\_co2 } \end{multline*}\]
per region minimum variable renewables share in electricity:
\[\begin{multline*} v47\_VREshare(ttot,regi) \geq \sum_{teVRE} vm\_shSeEl(ttot,regi,teVRE) \end{multline*}\]
per region maximum CCS:
\[\begin{multline*} \sum_{ccs2te\left(ccsCo2(enty),enty2,te\right)}\left( \sum_{teCCS2rlf(te,rlf)}vm\_co2CCS(t,regi,enty,enty2,te,rlf)\right) \leq p47\_CCSmaxBound(regi) \end{multline*}\]
total SE generation per PE carrier (useful for setting historical bounds)
\[\begin{multline*} v47\_prodSEtotal(t,regi,entyPe,entySe) = \sum_{pe2se(entyPe,entySe,te)}\left( vm\_prodSe(t,regi,entyPe,entySe,te)\right) \end{multline*}\]
Limitations There are no known limitations.
| Description | Unit | |
|---|---|---|
| f47_emiMktTarget_tolerance (ext_regi) |
tolerance for regipol emission target deviations convergence | \(#\) |
| f47_implicitPePriceTarget (pePriceScenario, ext_regi, all_enty, ttot) |
exogenously defined Pe price targets | \(2005 Dollar/GJoule\) |
| f47_implicitPriceTarget (fePriceScenario, ext_regi, all_enty, entySe, sector, ttot) |
exogenously defined FE price targets | \(2005 Dollar/GJoule\) |
| p47_allTargetsConverged_iter (iteration, ext_regi) |
parameter to save p47_allTargetsConverged across iterations | \(0 or 1\) |
| p47_averagetaxemiMkt (ttot, all_regi) |
auxiliary parameter to store the weighted average convergence price between the current target terminal year and the next target year. Only applied for target years different than p47_lastTargetYear | |
| p47_CCSmaxBound (all_regi) |
per region yearly maximum CCS. Unit[Gt C] | |
| p47_clampedRescaleSlope_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
auxiliary parameter to save the slope value before clamping. Useful for debugging purposes | \(#\) |
| p47_currentConvergence_iter (iteration, ttot, ext_regi) |
auxiliary parameter to store if carbon price adjustment in response to a specific emission target is being executed by the convergence algorithm in the specific REMIND iteration | \(0 or 1\) |
| p47_currentConvergencePeriod (ext_regi) |
auxiliary parameter to store the current target year being executed by the convergence algorithm | \(year\) |
| p47_dampedFactorRescaleemiMktCO2Tax_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
auxiliary parameter to save the rescale factor value before dampening. Useful for debugging purposes | \(#\) |
| p47_EmiLULUCFCountryAcc (tall, all_regi) |
historic co2 emissions from landuse change based on country accounting | \(Mt CO2/yr\) |
| p47_emiMktCurrent_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
parameter to save pm_emiMktCurrent across iterations | \(GtCO2 or GtCO2eq\) |
| p47_emiTargetMkt (ttot, all_regi, emiMktExt, emi_type_47) |
CO2 or GHG Emissions per emission market used for target level | \(GtC\) |
| p47_emiTargetMkt_iter (iteration, ttot, all_regi, emiMktExt, emi_type_47) |
parameter to save value of CO2 or GHG Emissions per emission market used for target level | \(GtC\) |
| p47_exoCo2tax (ext_regi, ttot) |
Exogenous CO2 tax level. Overrides
carbon prices in pm_taxCO2eq, only if explicitly defined. Regions and
region groups allowed. Format: ‘ |
\(\$/tCO2\) |
| p47_factorRescaleemiMktCO2Tax_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
parameter to save rescale factor across iterations for debugging purposes | \(\%\) |
| p47_factorRescaleSlope (ttot, ttot2, ext_regi, emiMktExt) |
auxiliary parameter to save the slope corresponding to the observed mitigation derivative regarding to co2tax level changes from the two previous iterations | \(#\) |
| p47_factorRescaleSlope_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
parameter to save mitigation curve slope across iterations | \(#\) |
| p47_firstTargetYear (ext_regi) |
first year with a pre defined policy emission target in the region | \(year\) |
| p47_implicitPePrice_dev (ttot, all_regi, all_enty) |
implicit price tax deviation of current iteration from target | \(\%\) |
| p47_implicitPePrice_dev_iter (iteration, ttot, all_regi, all_enty) |
implicit price tax deviation of current iteration from target per iteration | \(\%\) |
| p47_implicitPePriceTarget_initialYear (all_regi, all_enty) |
initial year of price target for given region and energy carrier | \(year\) |
| p47_implicitPePriceTarget_terminalYear (all_regi, all_enty) |
terminal year of price target for given region and energy carrier | \(year\) |
| p47_implicitPePriceTax (ttot, all_regi, all_enty) |
tax/subsidy level on PE for reaching the price target | \(2005 TerraDollar/TWyear\) |
| p47_implicitPePriceTax_iter (iteration, ttot, all_regi, all_enty) |
tax/subsidy level on PE for reaching the price target per iteration | \(2005 TerraDollar/TWyear\) |
| p47_implicitPePriceTax0 (ttot, all_regi, all_enty) |
previous iteration implicit price target tax revenue | \(2005 TerraDollar\) |
| p47_implicitPrice_dev (ttot, all_regi, all_enty, entySe, sector) |
implicit price tax deviation of current iteration from target | \(\%\) |
| p47_implicitPrice_dev_iter (iteration, ttot, all_regi, all_enty, entySe, sector) |
implicit price tax deviation of current iteration from target per iteration | \(\%\) |
| p47_implicitPriceTarget_initialYear (all_regi, all_enty, entySe, sector) |
initial year of price target for given region and energy carrier | \(year\) |
| p47_implicitPriceTarget_terminalYear (all_regi, all_enty, entySe, sector) |
terminal year of price target for given region and energy carrier | \(year\) |
| p47_implicitPriceTax (ttot, all_regi, all_enty, entySe, sector) |
tax/subsidy level on FE for reaching the price target | \(2005 TerraDollar/TWyear\) |
| p47_implicitPriceTax_iter (iteration, ttot, all_regi, all_enty, entySe, sector) |
tax/subsidy level on FE for reaching the price target per iteration | \(2005 TerraDollar/TWyear\) |
| p47_implicitPriceTax0 (ttot, all_regi, all_enty, entySe, sector) |
previous iteration implicit price target tax revenue | \(2005 TerraDollar\) |
| p47_implicitQttyTarget_delay (qttyDelayType_47) |
delay the start of the quantity target algorithm either by a given number of iteration or to after achieving emission targets convergence | |
| p47_implicitQttyTarget_dev_iter (iteration, ttot, ext_regi, qttyTarget, qttyTargetGroup) |
deviation of current iteration quantity from target after the given iteration | |
| p47_implicitQttyTarget_initialYear (ext_regi, taxType, targetType, qttyTarget, qttyTargetGroup) |
initial year of quantity target for a given region | \(year\) |
| p47_implicitQttyTargetActive_iter (iteration, ext_regi) |
auxiliary parameter to store the iterations that the quantity target should be active | |
| p47_implicitQttyTargetCurrent (ttot, ext_regi, qttyTarget, qttyTargetGroup) |
current iteration total value for an specific quantity target | |
| p47_implicitQttyTargetCurrent_iter (iteration, ttot, ext_regi, qttyTarget, qttyTargetGroup) |
current iteration total value for an specific quantity target per iteration | |
| p47_implicitQttyTargetIterationCount (ext_regi) |
number of iterations that the quantity target scaling algorithm is active | |
| p47_implicitQttyTargetReferenceIteration (ext_regi) |
first iteration that the quantity target scaling algorithm is active | |
| p47_implicitQttyTargetScenario (qttyTargetScenario, ttot, ext_regi, taxType, targetType, qttyTarget, qttyTargetGroup) |
hard-coded quantity scenarios types | \(absolute: TWa or GtC; or percentage: 0.1\) |
| p47_implicitQttyTargetTax (ttot, all_regi, qttyTarget, qttyTargetGroup) |
tax/subsidy level necessary to achieve a quantity target | |
| p47_implicitQttyTargetTax_iter (iteration, ttot, all_regi, qttyTarget, qttyTargetGroup) |
tax/subsidy level to achieve a quantity target that the model saw in a given iteration | |
| p47_implicitQttyTargetTax_prevIter (ttot, all_regi, qttyTarget, qttyTargetGroup) |
previous iteration quantity target tax | |
| p47_implicitQttyTargetTax0 (ttot, all_regi) |
previous iteration quantity target tax revenue | |
| p47_implicitQttyTargetTaxRescale (ttot, ext_regi, qttyTarget, qttyTargetGroup) |
rescale factor for current implicit quantity target tax | |
| p47_implicitQttyTargetTaxRescale_iter (iteration, ttot, ext_regi, qttyTarget, qttyTargetGroup) |
rescale factor for current implicit quantity target tax after the given iteration | |
| p47_lastTargetYear (ext_regi) |
last year with a pre defined policy emission target in the region | \(year\) |
| p47_LULUCFEmi_GrassiShift (ttot, all_regi) |
difference between Magpie land-use change emissions and UNFCCC emissions in 2015 to correct for national accounting in emissions targets | |
| p47_nextConvergencePeriod (ext_regi) |
auxiliary parameter to store the next target year being executed by the convergence algorithm | \(year\) |
| p47_nonEnergyUse (ttot, ext_regi) |
non-energy use | |
| p47_quantity_regiCO2target (ttot, ext_regi) |
Exogenously emissions quantity constrain on net CO2 without bunkers | \(GtCO2\) |
| p47_slopeReferenceIteration_iter (iteration, ttot, ext_regi) |
auxiliary parameter to store reference iteration used for calculating slope of current mititgation cost | \(#\) |
| p47_targetConverged (ttot, ext_regi) |
boolean to store if emission target has converged | \(0 or 1\) |
| p47_targetConverged_iter (iteration, ttot, ext_regi) |
parameter to save p47_targetConverged across iterations | \(0 or 1\) |
| p47_taxCO2eq_AggEmi (ttot, all_regi) |
CO2eq global and regional aggregated emission taxes (aggregated by emissions) | |
| p47_taxCO2eq_AggFE (ttot, all_regi) |
CO2eq global and regional aggregated emission taxes (aggregated by final energy) | |
| p47_taxCO2eq_ref (ttot, all_regi) |
CO2eq prices loaded from ref gdx, in T$/GtC = \(/kgC. To get\)/tCO2, multiply with 272 | \(T\$/GtC\) |
| p47_taxCO2eq_SectorAggFE (ttot, all_regi, sector) |
CO2eq global and regional aggregated sectoral emission taxes (aggregated by final energy) | |
| p47_taxemiMkt_AggEmi (ttot, all_regi) |
CO2eq regional aggregated emission tax (aggregated by emissions) | |
| p47_taxemiMkt_AggFE (ttot, all_regi) |
CO2eq regional aggregated emission tax (aggregated by final energy) | |
| p47_taxemiMkt_init (ttot, all_regi, emiMkt) |
emiMkt CO2eq prices loaded from ref gdx, in T\(/GtC =\)/kgC. To get $/tCO2, multiply with 272 | \(T\$/GtC\) |
| p47_taxemiMkt_SectorAggFE (ttot, all_regi, sector) |
CO2eq regional aggregated sectoral emission tax (aggregated by final energy) | |
| p47_VREminShare (ttot, ext_regi) |
per region minimun share of variable renewables (wind and solar) in electricity. Applied to yaers greater or equal to ttot. Unit | \(0..1\) |
| q47_CCSmaxBound (ttot, all_regi) |
per region yearly maximum CCS | |
| q47_implicitPePriceTax (ttot, all_regi, all_enty) |
implicit tax/subsidy PE tax to reach target energy sector sectoral price | |
| q47_implicitPriceTax (ttot, all_regi, all_enty, entySe, sector) |
implicit tax/subsidy FE tax to reach target energy sector sectoral price | |
| q47_implicitQttyTargetTax (ttot, all_regi) |
implicit quantity target tax (PE, SE, FE and/or FE CCS) to represent non CO2-price-driven policies or exogenously defined quantity constraint scenarios | |
| q47_prodSEtotal (ttot, all_regi, all_enty, all_enty) |
calculate total SE production per PE and SE over all technologies | |
| q47_quantity_regiCO2target (ttot, ext_regi) |
Exogenously emissions quantity constrain on net CO2 without bunkers | \(GtC\) |
| q47_VREShare (ttot, all_regi) |
per region minimun share of variable renewables (wind and solar) from ttot year onward | |
| s47_firstFreeYear | value of first free year for the carbon price trajectory | |
| s47_prefreeYear | value of the last non-free year for the carbon price trajectory | |
| v47_prodSEtotal (ttot, all_regi, all_enty, all_enty) |
total SE production per PE and SE over all technologies | |
| v47_VREshare (ttot, all_regi) |
share of variable renewables (wind and solar) in electricity |
| A | B | |
|---|---|---|
| f47_emiMktTarget_tolerance (ext_regi) |
x | |
| f47_implicitPePriceTarget (pePriceScenario, ext_regi, all_enty, ttot) |
x | |
| f47_implicitPriceTarget (fePriceScenario, ext_regi, all_enty, entySe, sector, ttot) |
x | |
| p47_allTargetsConverged_iter (iteration, ext_regi) |
x | |
| p47_averagetaxemiMkt (ttot, all_regi) |
x | |
| p47_CCSmaxBound (all_regi) |
x | |
| p47_clampedRescaleSlope_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
x | |
| p47_currentConvergence_iter (iteration, ttot, ext_regi) |
x | |
| p47_currentConvergencePeriod (ext_regi) |
x | |
| p47_dampedFactorRescaleemiMktCO2Tax_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
x | |
| p47_EmiLULUCFCountryAcc (tall, all_regi) |
x | |
| p47_emiMktCurrent_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
x | |
| p47_emiTargetMkt (ttot, all_regi, emiMktExt, emi_type_47) |
x | |
| p47_emiTargetMkt_iter (iteration, ttot, all_regi, emiMktExt, emi_type_47) |
x | |
| p47_exoCo2tax (ext_regi, ttot) |
x | |
| p47_factorRescaleemiMktCO2Tax_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
x | |
| p47_factorRescaleSlope (ttot, ttot2, ext_regi, emiMktExt) |
x | |
| p47_factorRescaleSlope_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
x | |
| p47_firstTargetYear (ext_regi) |
x | |
| p47_implicitPePrice_dev (ttot, all_regi, all_enty) |
x | |
| p47_implicitPePrice_dev_iter (iteration, ttot, all_regi, all_enty) |
x | |
| p47_implicitPePriceTarget_initialYear (all_regi, all_enty) |
x | |
| p47_implicitPePriceTarget_terminalYear (all_regi, all_enty) |
x | |
| p47_implicitPePriceTax (ttot, all_regi, all_enty) |
x | |
| p47_implicitPePriceTax_iter (iteration, ttot, all_regi, all_enty) |
x | |
| p47_implicitPePriceTax0 (ttot, all_regi, all_enty) |
x | |
| p47_implicitPrice_dev (ttot, all_regi, all_enty, entySe, sector) |
x | |
| p47_implicitPrice_dev_iter (iteration, ttot, all_regi, all_enty, entySe, sector) |
x | |
| p47_implicitPriceTarget_initialYear (all_regi, all_enty, entySe, sector) |
x | |
| p47_implicitPriceTarget_terminalYear (all_regi, all_enty, entySe, sector) |
x | |
| p47_implicitPriceTax (ttot, all_regi, all_enty, entySe, sector) |
x | |
| p47_implicitPriceTax_iter (iteration, ttot, all_regi, all_enty, entySe, sector) |
x | |
| p47_implicitPriceTax0 (ttot, all_regi, all_enty, entySe, sector) |
x | |
| p47_implicitQttyTarget_delay (qttyDelayType_47) |
x | |
| p47_implicitQttyTarget_dev_iter (iteration, ttot, ext_regi, qttyTarget, qttyTargetGroup) |
x | |
| p47_implicitQttyTarget_initialYear (ext_regi, taxType, targetType, qttyTarget, qttyTargetGroup) |
x | |
| p47_implicitQttyTargetActive_iter (iteration, ext_regi) |
x | |
| p47_implicitQttyTargetCurrent (ttot, ext_regi, qttyTarget, qttyTargetGroup) |
x | |
| p47_implicitQttyTargetCurrent_iter (iteration, ttot, ext_regi, qttyTarget, qttyTargetGroup) |
x | |
| p47_implicitQttyTargetIterationCount (ext_regi) |
x | |
| p47_implicitQttyTargetReferenceIteration (ext_regi) |
x | |
| p47_implicitQttyTargetScenario (qttyTargetScenario, ttot, ext_regi, taxType, targetType, qttyTarget, qttyTargetGroup) |
x | |
| p47_implicitQttyTargetTax (ttot, all_regi, qttyTarget, qttyTargetGroup) |
x | |
| p47_implicitQttyTargetTax_iter (iteration, ttot, all_regi, qttyTarget, qttyTargetGroup) |
x | |
| p47_implicitQttyTargetTax_prevIter (ttot, all_regi, qttyTarget, qttyTargetGroup) |
x | |
| p47_implicitQttyTargetTax0 (ttot, all_regi) |
x | |
| p47_implicitQttyTargetTaxRescale (ttot, ext_regi, qttyTarget, qttyTargetGroup) |
x | |
| p47_implicitQttyTargetTaxRescale_iter (iteration, ttot, ext_regi, qttyTarget, qttyTargetGroup) |
x | |
| p47_lastTargetYear (ext_regi) |
x | |
| p47_LULUCFEmi_GrassiShift (ttot, all_regi) |
x | |
| p47_nextConvergencePeriod (ext_regi) |
x | |
| p47_nonEnergyUse (ttot, ext_regi) |
x | |
| p47_quantity_regiCO2target (ttot, ext_regi) |
x | |
| p47_slopeReferenceIteration_iter (iteration, ttot, ext_regi) |
x | |
| p47_targetConverged (ttot, ext_regi) |
x | |
| p47_targetConverged_iter (iteration, ttot, ext_regi) |
x | |
| p47_taxCO2eq_AggEmi (ttot, all_regi) |
x | |
| p47_taxCO2eq_AggFE (ttot, all_regi) |
x | |
| p47_taxCO2eq_ref (ttot, all_regi) |
x | |
| p47_taxCO2eq_SectorAggFE (ttot, all_regi, sector) |
x | |
| p47_taxemiMkt_AggEmi (ttot, all_regi) |
x | |
| p47_taxemiMkt_AggFE (ttot, all_regi) |
x | |
| p47_taxemiMkt_init (ttot, all_regi, emiMkt) |
x | |
| p47_taxemiMkt_SectorAggFE (ttot, all_regi, sector) |
x | |
| p47_VREminShare (ttot, ext_regi) |
x | |
| q47_CCSmaxBound (ttot, all_regi) |
x | |
| q47_implicitPePriceTax (ttot, all_regi, all_enty) |
x | |
| q47_implicitPriceTax (ttot, all_regi, all_enty, entySe, sector) |
x | |
| q47_implicitQttyTargetTax (ttot, all_regi) |
x | |
| q47_prodSEtotal (ttot, all_regi, all_enty, all_enty) |
x | |
| q47_quantity_regiCO2target (ttot, ext_regi) |
x | |
| q47_VREShare (ttot, all_regi) |
x | |
| s47_firstFreeYear | x | |
| s47_prefreeYear | x | |
| v47_prodSEtotal (ttot, all_regi, all_enty, all_enty) |
x | |
| v47_VREshare (ttot, all_regi) |
x |
| description | |
|---|---|
| all_emiMkt | emission markets |
| all_enty | all types of quantities |
| all_in | all inputs and outputs of the CES function |
| all_regi | all regions |
| all_te | all energy technologies, including from modules |
| altFeEmiFac_regi(ext_regi) | set of regions that use alternative FE emission factors from umweltbundesamt |
| ccs2te(all_enty, all_enty, all_te) | chain for ccs |
| ccsCo2(all_enty) | only cco2 (???) |
| cesParameter | parameters of the CES functions and for calibration |
| char | characteristics of technologies |
| convergenceType | emiMkt target non convergence reason |
| emi_sectors | comprehensive sector set used for more detailed emissions accounting (REMIND-EU) and for CH4 tier 1 scaling - potentially to be integrated with similar set all_exogEmi |
| emi_type_47 | emission type used in regional target |
| emi(all_enty) | types of emissions, these emissions are given to the climate module |
| emi2te(all_enty, all_enty, all_te, all_enty) | map emissions to technologies |
| emiBECCS2te(all_enty, all_enty, all_te, all_enty) | mapping of BECCS PE,SE,technology and captured emissions |
| emiInd37(all_enty) | industry emissions |
| emiMac2sector(all_enty, emi_sectors, sector_types, all_enty) | mapping of emission sources from MACs to sectors (and emissions) |
| emiMacSector(all_enty) | types of climate-relevant non-energy emissions with mac curve. Emissions in this set HAVE to be in emiMac2mac as well - if no MAC is available it will be set to zero automatically. |
| emiMktGroup(all_emiMktExt, all_emiMkt) | set to allow selecting either a single emission market or all together (all=ETS+ESR+other) |
| energyQttyTargetANDGroup2enty(qttyTarget, qttyTargetGroup, all_enty) | set combining possible energy level (PE, SE or FE), energy types and energy carriers |
| enty(all_enty) | all types of quantities |
| entyFe(all_enty) | final energy types. |
| entyFe2Sector(all_enty, emi_sectors) | final energy (stationary and transportation) mapping to sectors (industry, buildings, transportation and cdr) |
| entyPe(all_enty) | Primary energy types (PE) |
| entySe(all_enty) | secondary energy types |
| entySeBio(all_enty) | biomass secondary energy types |
| entySeFos(all_enty) | secondary energy types from fossil primary energy |
| exogDemScen | exogenuous FE and ES demand scenarios that can be activated by cm_exogDem_scen |
| ext_regi | extended regions list (includes subsets of H12 regions) |
| fePriceScenario | scenarios for exogenous FE price targets |
| in(all_in) | All inputs and outputs of the CES function |
| iteration | iterator for main (Negishi/Nash) iterations |
| modules | all the available modules |
| pe2se(all_enty, all_enty, all_te) | map primary energy carriers to secondary |
| peFos(all_enty) | primary energy fossil fuels |
| pePriceScenario | scenarios for exogenous PE price targets |
| pese(all_enty, all_enty) | map primary to secondary energy carriers without technology dimension |
| qttyDelayType_47 | options to define different delay rules for starting the quantity targets algorithm |
| qttyTarget | quantity target for energy carrier level (primary, secondary, final energy) or CCS or OAE |
| qttyTargetActiveScenario(qttyTargetScenario) | current run active quantity scenarios |
| qttyTargetGroup | quantity target aggregated categories |
| qttyTargetScenario | hard-coded quantity scenarios |
| regi_group(ext_regi, all_regi) | region groups (regions that together corresponds to a H12 region) |
| regi_groupExt(ext_regi, all_regi) | extended region group mapping. Mapping model regions that belong to region group, including one to one region mapping |
| regi(all_regi) | all regions used in the solution process |
| regiANDperiodEmiMktTarget_47(ttot, ext_regi) | regions and periods with emiMkt targets |
| regiEmiMktconvergenceType(iteration, ttot, ttot, ext_regi, emiMktExt, convergenceType) | saving convergence type in iteration |
| regiEmiMktRescaleType(iteration, ttot, ttot, ext_regi, emiMktExt, rescaleType) | saving scaling type used in iteration |
| regiEmiMktTarget(ext_regi) | regions with emiMkt targets |
| regiEmiMktTarget2regi_47(ext_regi, all_regi) | regions controlled by emiMkt market set to ext_regi |
| rescaleType | emi mkt carbon price scaling factor calculation methods |
| rlf | cost levels of fossil fuels |
| run | iterator for performance test iterations |
| se2fe(all_enty, all_enty, all_te) | map secondary energy to end-use energy using a technology |
| secInd37 | industry sub-sectors |
| sector2emiMkt(emi_sectors, all_emiMkt) | mapping sectors to emission markets |
| sefe(all_enty, all_enty) | map secondary energy to final energy |
| t(ttot) | optimisation time, years between cm_startyear and 2150 with 5 to 20 years time steps |
| tall | time index, each year from 1900 to 3000 |
| target_type_47 | CO2 policy target type |
| targetType | PE, SE or FE target type |
| taxType | PE, SE or FE tax type |
| te_oae33(all_te) | OAE technologies used |
| te(all_te) | energy technologies |
| teBio(all_te) | biomass energy systems technologies |
| teCCS(all_te) | Technologies with CCS |
| teCCS2rlf(all_te, rlf) | mapping for CCS technologies to grades |
| teFosCCS(all_te) | fossil technologies with CCS |
| teVRE(all_te) | technologies requiring storage |
| ttot(tall) | time index with spin-up, years between 1900 and 2150 with 5 to 20 years time steps |
Renato Rodrigues, Felix Schreyer
01_macro, 04_PE_FE_parameters, 21_tax, 32_power, 37_industry, 80_optimization, core