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_EURCDRmax | switch to limit maximum annual CDR amount in the EU in MtCO2 per y | x | x | |
| cm_EnSecScen_limit | switch for limiting the gas demand from 2025 onward, currently only applied to Germany | x | ||
| cm_budgetCO2_absDevTol | convergence criterion for global CO2 budget set via cm_budgetCO2from2020. It is formulated as an absolute deviation from the target budget [GtCO2]. | x | ||
| 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_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_FEPrice_by_SE_Sector (ttot, all_regi, entySe, all_enty, sector) |
parameter to save FE marginal price per SE and sector | \(tr\$2017/TWa\) | x | |
| pm_IndstCO2Captured (ttot, all_regi, all_enty, all_enty, secInd37, all_emiMkt) |
Captured CO2 in industry by energy carrier, subsector and emissions market | \(GtC/a\) | x | |
| pm_PEPrice (ttot, all_regi, all_enty) |
parameter to capture all PE prices | \(tr\$2017/TWa\) | x | |
| pm_cesdata (tall, all_regi, all_in, cesParameter) |
parameters of the CES function: efficiency parameters (xi, eff, effgr) [unitless], target quantities of CES calibration (quantity) [unit of CES node, see set all_in], CES prices resulting from calibration (price) | \(T\$/unit of CES node\) | x | |
| pm_cf (tall, all_regi, all_te) |
read-in parameter for capacity factor (fraction of the year that a plant is running) | \(share\) | x | x |
| pm_data (all_regi, char, all_te) |
Large array for most technical parameters of technologies, more detail on the individual technical parameters and their units can be found in the declaration of the set ‘char’ | x | ||
| pm_delta_histCap (tall, all_regi, all_te) |
historic capacity additions calculated from historic data | \(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 energy-related emissions | \(GtC/TWa, Mt CH4/TWa, Mt N/TWa, Mt SO2/TWa, Mt BC/TWa, Mt OC/TWa\) | x | x |
| pm_eta_conv (tall, all_regi, all_te) |
conversion efficiency of all energy technologies, only applying to technologies that do not have explicit time-dependant conversion efficiencies, still eta converges until 2050 to dataglob_values. | \(efficiency (0..1)\) | x | |
| pm_histCap (tall, all_regi, all_te) |
historical installed capacity (TW) | x | ||
| pm_inco0_t (ttot, all_regi, all_te) |
investment cost parameter including exogenuous time-variance for non-learning technologies | \(T\$/TW\) | x | |
| pm_macBaseMagpie (tall, all_regi, all_enty) |
baseline emissions from MAgPIE (type emiMacMagpie) | \(GtC, Mt CH4, Mt N\) | x | |
| pm_prodCouple (all_regi, all_enty, all_enty, all_te, all_enty) |
own consumption | x | ||
| pm_shareWindOff (ttot, all_regi) |
windoff rollout as a fraction of technical potential | \(share\) | x | |
| pm_shareWindPotentialOff2On (all_regi) |
ratio of technical potential of offshore wind to onshore wind power | \(share\) | x | |
| pm_share_CCS_CCO2 (ttot, all_regi) |
share of stored CO2 from total captured CO2 from previous iteration | \(share\) | 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) |
tax path for primary energy | x | ||
| pm_taxCO2eq (ttot, all_regi) |
CO2 tax path calculated in 45_carbonprice module [T$/GtC]. To get $/tCO2, multiply with 272 = 1 / sm_DptCO2_2_TDpGtC | x | ||
| pm_taxCO2eqRegi (ttot, all_regi) |
Additional markup carbon in 46_carbonpriceRegi module to reach net-zero targets [T$/GtC]. Multiply by 272 to convert to $/tCO2. | x | ||
| pm_taxCO2eqSCC (ttot, all_regi) |
carbon tax component due to damages (social cost of carbon) | \(T\$/GtCeq\) | x | |
| pm_taxCO2eqSum (ttot, all_regi) |
Total CO2 price including general trajectory (pm_taxCO2eq), regional markup (pm_taxCO2eqRegi) and social cost of carbon (pm_taxCO2eqSCC) [T\(/GtC]. Multiply by 272 to convert to\)/tCO2. | 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_D2005_2_D2017 | Convert US$2005 to US$2017 | x | ||
| sm_DpGJ_2_TDpTWa | convert \(/GJ to T\)/TWa | x | ||
| sm_DptCO2_2_TDpGtC | convert \(/tCO2 to T\)/GtC: 44/12/1000 | x | ||
| sm_EJ_2_TWa | convert from Exa Joule to Tera Watt annum | x | ||
| sm_MtCO2_2_GtC | conversion factor from MtCO2 to native REMIND emission unit GtC | x | ||
| sm_c_2_co2 | convert mass from carbon to CO2 (44/12) | x | x | |
| sm_globalBudget_absDev | absolute deviation of global cumulated CO2 emissions budget from 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 [TW] for energy conversion technologies, [GtC] for CCS chain in ccs2te (pipelines/injection) | x | ||
| vm_capEarlyReti (tall, all_regi, all_te) |
fraction of early retired capacity from total standing capacity, can only be increased for technologies for which early retirement is switched on | \(share\) | x | x |
| vm_capFac (ttot, all_regi, all_te) |
capacity factor of conversion technologies | \(share\) | x | x |
| vm_capTotal (ttot, all_regi, all_enty, all_enty) |
total capacity of pe2se conversion technologies without technology 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) |
total CO2 injected into geological storage | \(GtC/a\) | x | |
| vm_co2eqMkt (ttot, all_regi, all_emiMkt) |
total greenhouse gas emissions per market measured in co2 equivalents that are subject to carbon pricing, be aware that emissions coverage of this variable depends on switch cm_multigasscen | \(GtCeq\) | x | |
| vm_deltaCap (tall, all_regi, all_te, rlf) |
capacity additions [TW/yr] for energy conversion technologies, [GtC/yr^2] for CCS chain in ccs2te (pipelines/injection) | x | x | |
| vm_demFeNonEnergySector (ttot, all_regi, all_enty, all_enty, emi_sectors, all_emiMkt) |
final energy demand used for material feedstocks in the industry sector | \(TWa\) | x | |
| vm_demFeSector (ttot, all_regi, all_enty, all_enty, emi_sectors, all_emiMkt) |
final energy demand per sector and emissions market, note: 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) |
primary energy demand | \(TWa, Uranium: Mt Ur\) | x | |
| vm_demSe (ttot, all_regi, all_enty, all_enty, all_te) |
secondary energy demand (including only demand as first input, not demand as second (coupled) input) | \(TWa\) | x | |
| vm_emiAllMkt (tall, all_regi, all_enty, all_emiMkt) |
total emissions per emissions market | \(GtC, Mt CH4, Mt N, Mt SO2, Mt BC, Mt OC\) | x | |
| vm_emiCdrAll (ttot, all_regi) |
all CDR emissions, net negative emissions from land-use change, gross removals for all other options | \(GtC/year\) | x | x |
| vm_emiCdrTeDetail (ttot, all_regi, all_te) |
gross (negative) emissions from CDR technologies in the CDR module by technology. Includes all atmospheric CO2 that enter the CCUS chain (i.e. CO2 stored (CDR) AND used (not CDR)) | \(GtC / a\) | x | |
| vm_emiFgas (ttot, all_regi, all_enty) |
F-gas emissions by single gases from IMAGE | \(emiFgasTotal in MtCO2eq, for other units see f_emiFgas.cs4r\) | x | |
| vm_emiIndCCS (ttot, all_regi, all_enty) |
industry CCS emissions | \(GtC/a\) | x | |
| vm_emiMacSector (ttot, all_regi, all_enty) |
total emissions subject to MACCs, emissions that are not energy-related | \(GtC, Mt CH4, Mt N\) | x | |
| vm_emiTeDetail (ttot, all_regi, all_enty, all_enty, all_te, all_enty) |
emissions from energy technologies on supply-side (pm_emifac * PE) and demand-side (pm_emifac * FE), note: not equivalent to Emi|CO2|Energy in reporting | \(GtC, Mt CH4, Mt N, Mt SO2, Mt BC, Mt OC\) | x | x |
| vm_emiTeDetailMkt (tall, all_regi, all_enty, all_enty, all_te, all_enty, all_emiMkt) |
emissions from energy technologies on supply-side (pm_emifac * PE) and demand-side (pm_emifac * FE) per emissions market, note: not equivalent to Emi|CO2|Energy in reporting | \(GtC, Mt CH4, Mt N, Mt SO2, Mt BC, Mt OC\) | x | |
| vm_emiTeMkt (tall, all_regi, all_enty, all_emiMkt) |
proxy of total energy-related emissions per emissions market, based on vm_emiTeDetail and taking into account industry CCS, CCU and feedstocks note: not equivalent to Emi|CO2|Energy in reporting | \(GtC, Mt CH4, Mt N, Mt SO2, Mt BC, Mt OC\) | x | |
| vm_prodPe (ttot, all_regi, all_enty) |
primary energy production (after trade but not including PE production for MAC curves, e.g. capturing methane leakage) | \(TWa, Uranium: Mt Ur\) | x | |
| vm_prodSe (tall, all_regi, all_enty, all_enty, all_te) |
secondary energy production (including only production as first product, not production as second (coupled) product) | \(TWa\) | x | |
| vm_shSeEl (ttot, all_regi, all_te) |
new share of electricity production in % | \(\%\) | x | |
| vm_taxrevimplicitPePriceTax (ttot, all_regi, all_enty) |
tax revenue of implict tax forprimary energy price target | \(T\$\) | x | |
| vm_taxrevimplicitPriceTax (ttot, all_regi, entySe, all_enty, sector) |
tax revenue of implict tax for final energy price target | \(T\$\) | x | |
| vm_taxrevimplicitQttyTargetTax (ttot, all_regi) |
tax revenue of implict tax for quantity target bound | \(T\$\) | x |
| Description | Unit | |
|---|---|---|
| pm_allTargetsConverged (ext_regi) |
boolean to store if all emission targets converged at least once | \(0 or 1\) |
| pm_emiLULUCF_GrassiShift (ttot, all_regi) |
difference between Magpie land-use change emissions and UNFCCC emissions in 2015 to correct for national accounting in emissions targets | \(GtC\) |
| 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_implicitPePriceTarget (ttot, all_regi, all_enty) |
price target for PE carrier per sector | \(2005 TerraDollar/TWyear\) |
| pm_implicitPePrice_NotConv (all_regi, all_enty, ttot) |
auxiliary parameter to store the price targets that did not converged | \(\%\) |
| 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_implicitPriceTarget (ttot, all_regi, all_enty, entySe, sector) |
price target for FE carrier per sector | \(2005 TerraDollar/TWyear\) |
| pm_implicitPrice_NotConv (all_regi, sector, all_enty, entySe, ttot) |
auxiliary parameter to store the price targets that did not converged | \(\%\) |
| 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_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 | |
| pm_taxemiMkt (ttot, all_regi, all_emiMkt) |
CO2 tax path per region and emissions market | \(T\$/GtC\) |
| pm_taxemiMkt_iteration (iteration, ttot, all_regi, all_emiMkt) |
CO2 tax path per region and emissions market calculated from previous iteration | \(T\$/GtC\) |
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_CCSmaxBound (all_regi) |
per region yearly maximum CCS. Unit[Gt C] | |
| p47_EmiLULUCFCountryAcc (tall, all_regi) |
historic co2 emissions from landuse change based on country accounting | \(Mt CO2/yr\) |
| 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\) |
| 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_clampedRescaleSlope_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
auxiliary parameter to save the slope value before clamping. Useful for debugging purposes | \(#\) |
| p47_currentConvergencePeriod (ext_regi) |
auxiliary parameter to store the current target year being executed by the convergence algorithm | \(year\) |
| 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_dampedFactorRescaleemiMktCO2Tax_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
auxiliary parameter to save the rescale factor value before dampening. Useful for debugging purposes | \(#\) |
| 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_exoCo2tax_fromFile (ttot, all_regi, emiMkt) |
Exogenous CO2 tax level from of GDX file. Overrides carbon prices in pm_taxCO2eq, only if explicitly defined. | \(T\$/GtC\) |
| 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_factorRescaleemiMktCO2Tax_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
parameter to save rescale factor across iterations for debugging purposes | \(\%\) |
| p47_firstTargetYear (ext_regi) |
first year with a pre defined policy emission target in the region | \(year\) |
| 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_implicitPePriceTax0 (ttot, all_regi, all_enty) |
previous iteration implicit price target tax revenue | \(2005 TerraDollar\) |
| 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_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_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_implicitPriceTax0 (ttot, all_regi, all_enty, entySe, sector) |
previous iteration implicit price target tax revenue | \(2005 TerraDollar\) |
| 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_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_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_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_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_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_lastTargetYear (ext_regi) |
last year with a pre defined policy emission target in the region | \(year\) |
| p47_nextConvergencePeriod (ext_regi) |
auxiliary parameter to store the next target year being executed by the convergence algorithm | \(year\) |
| 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_SectorAggFE (ttot, all_regi, sector) |
CO2eq global and regional aggregated sectoral 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_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_SectorAggFE (ttot, all_regi, sector) |
CO2eq regional aggregated sectoral 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\) |
| q47_CCSmaxBound (ttot, all_regi) |
per region yearly maximum CCS | |
| q47_VREShare (ttot, all_regi) |
per region minimun share of variable renewables (wind and solar) from ttot year onward | |
| 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\) |
| 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_VREshare (ttot, all_regi) |
share of variable renewables (wind and solar) in electricity | |
| v47_prodSEtotal (ttot, all_regi, all_enty, all_enty) |
total SE production per PE and SE over all technologies |
| 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_CCSmaxBound (all_regi) |
x | |
| p47_EmiLULUCFCountryAcc (tall, all_regi) |
x | |
| p47_VREminShare (ttot, ext_regi) |
x | |
| p47_allTargetsConverged_iter (iteration, ext_regi) |
x | |
| p47_averagetaxemiMkt (ttot, all_regi) |
x | |
| p47_clampedRescaleSlope_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
x | |
| p47_currentConvergencePeriod (ext_regi) |
x | |
| p47_currentConvergence_iter (iteration, ttot, ext_regi) |
x | |
| p47_dampedFactorRescaleemiMktCO2Tax_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
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_exoCo2tax_fromFile (ttot, all_regi, emiMkt) |
x | |
| p47_factorRescaleSlope (ttot, ttot2, ext_regi, emiMktExt) |
x | |
| p47_factorRescaleSlope_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
x | |
| p47_factorRescaleemiMktCO2Tax_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
x | |
| p47_firstTargetYear (ext_regi) |
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_implicitPePriceTax0 (ttot, all_regi, all_enty) |
x | |
| p47_implicitPePriceTax_iter (iteration, ttot, all_regi, all_enty) |
x | |
| p47_implicitPePrice_dev (ttot, all_regi, all_enty) |
x | |
| p47_implicitPePrice_dev_iter (iteration, ttot, all_regi, all_enty) |
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_implicitPriceTax0 (ttot, all_regi, all_enty, entySe, sector) |
x | |
| p47_implicitPriceTax_iter (iteration, ttot, all_regi, all_enty, entySe, sector) |
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_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_implicitQttyTargetTax0 (ttot, all_regi) |
x | |
| p47_implicitQttyTargetTaxRescale (ttot, ext_regi, qttyTarget, qttyTargetGroup) |
x | |
| p47_implicitQttyTargetTaxRescale_iter (iteration, ttot, ext_regi, qttyTarget, qttyTargetGroup) |
x | |
| p47_implicitQttyTargetTax_iter (iteration, ttot, all_regi, qttyTarget, qttyTargetGroup) |
x | |
| p47_implicitQttyTargetTax_prevIter (ttot, all_regi, qttyTarget, qttyTargetGroup) |
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_lastTargetYear (ext_regi) |
x | |
| p47_nextConvergencePeriod (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_SectorAggFE (ttot, all_regi, sector) |
x | |
| p47_taxCO2eq_ref (ttot, all_regi) |
x | |
| p47_taxemiMkt_AggEmi (ttot, all_regi) |
x | |
| p47_taxemiMkt_AggFE (ttot, all_regi) |
x | |
| p47_taxemiMkt_SectorAggFE (ttot, all_regi, sector) |
x | |
| p47_taxemiMkt_init (ttot, all_regi, emiMkt) |
x | |
| q47_CCSmaxBound (ttot, all_regi) |
x | |
| q47_VREShare (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 | |
| s47_firstFreeYear | x | |
| s47_prefreeYear | x | |
| v47_VREshare (ttot, all_regi) |
x | |
| v47_prodSEtotal (ttot, all_regi, all_enty, all_enty) |
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 |
| 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) |
| 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 |
| 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 |
| 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(all_regi) | all regions used in the solution process |
| regiANDperiodEmiMktTarget_47(ttot, ext_regi) | regions and periods with emiMkt targets |
| 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 |
| regiEmiMktconvergenceType(iteration, ttot, ttot, ext_regi, emiMktExt, convergenceType) | saving convergence type in iteration |
| 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 |
| rescaleType | emi mkt carbon price scaling factor calculation methods |
| rlf | cost levels of fossil fuels |
| 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 |
| targetType | PE, SE or FE target type |
| target_type_47 | CO2 policy target type |
| taxType | PE, SE or FE tax type |
| te(all_te) | energy technologies |
| teBio(all_te) | biomass energy systems technologies |
| teCCS(all_te) | Technologies with carbon capture |
| teCCS2rlf(all_te, rlf) | mapping for CCS technologies to grades |
| teFosCCS(all_te) | fossil technologies with carbon capture |
| teVRE(all_te) | technologies requiring storage |
| te_oae33(all_te) | OAE technologies used |
| 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, 33_carbonRemoval, 37_industry, 46_carbonpriceRegi, 51_internalizeDamages, 80_optimization, core