REMIND - REgional Model of INvestments and Development

2.1.3

created with goxygen 1.1.0

Carbonprice (45_carbonprice)

Description

The carbonprice module sets (exogenously given price path or predefined 2020 level and linear/exponential increase afterwards) or adjusts carbon price trajectories between iterations s.t. the desired climate policy targets are met. The carbon price is the main indicator to reflect the increase in climate policy ambition over time.

Interfaces

Interfaces to other modules
Interfaces to other modules

Input

module inputs (A: diffCurvPhaseIn2Lin | B: diffPhaseIn2Constant | C: diffPhaseIn2Lin | D: diffPhaseInLin2LinFlex | E: diffPriceSameCost | F: exogenous | G: ExogSameAsPrevious | H: expoLinear | I: exponential | J: linear | K: NDC2018 | L: NDC2constant | M: none | N: NPi2018 | O: temperatureNotToExceed) (continued below)
  Description Unit A B C D E
cm_carbonprice_temperatureLimit not-to-exceed temperature target in degree above pre-industrial
cm_co2_tax_2020 level of co2 tax in year 2020 in $ per t CO2eq, makes sense only for emiscen eq 9 and 45_carbonprice exponential x x x x
cm_co2_tax_growth growth rate of carbon tax x
cm_CO2priceRegConvEndYr Year at which regional CO2 prices converge in module 45 realization diffPhaseIn2LinFlex x x
cm_emiscen policy scenario choice
cm_expoLinear_yearStart time at which carbon price increases lineraly instead of exponentially
cm_iterative_target_adj whether or not a tax or a budget target should be iteratively adjusted depending on actual emission or forcing level
cm_peakBudgYr date of net-zero CO2 emissions for peak budget runs without overshoot x
cm_startyear first optimized modelling time step \(year\) x x x x
cm_taxCO2inc_after_peakBudgYr annual increase of CO2 price after the Peak Budget Year in $ per tCO2 x
pm_bunker_share_in_nonldv_fe
(tall, all_regi)
share of bunkers in non-LDV transport, i.e. fedie
pm_consPC
(tall, all_regi)
Consumption per capita
pm_gdp
(tall, all_regi)
GDP data \(trn US\$ 2005\) x x x x
pm_GDPGross
(tall, all_regi)
gross GDP (before damages)
pm_globalMeanTemperature
(tall)
global mean temperature anomaly
pm_pop
(tall, all_regi)
population data \(bn people\) x x x x
pm_prodCouple
(all_regi, all_enty, all_enty, all_te, all_enty)
own consumption
pm_prtp
(all_regi)
Pure rate of time preference
pm_pvp
(ttot, all_enty)
Price on commodity markets x
pm_shPPPMER
(all_regi)
PPP ratio for calculating GDP|PPP from GDP|MER x x x x
pm_taxCO2eq
(ttot, all_regi)
CO2 tax path in T$/GtC = $/kgC. To get $/tCO2, multiply with 272 \(T\$/GtC\) x x x x x
pm_temperatureImpulseResponseCO2
(tall, tall)
temperature impulse response to CO2 \(K/GtCO2\)
pm_ts
(tall)
(t_n+1 - t_n-1)/2 for a timestep t_n x
pm_ttot_2_tall
(ttot, tall)
mapping from ttot to tall
pm_ttot_val
(ttot)
value of ttot set element
sm_c_2_co2 conversion from c to co2
sm_DptCO2_2_TDpGtC Conversion multiplier to go from \(/tCO2 to T\)/GtC: 44/12/1000 x x x x x
vm_cesIO
(tall, all_regi, all_in)
Production factor x
vm_co2eq
(ttot, all_regi)
total emissions measured in co2 equivalents ATTENTION: content depends on multigasscen. \(GtCeq\)
vm_emiFgas
(tall, all_regi, all_enty)
F-gas emissions by single gases from IMAGE
vm_prodFe
(ttot, all_regi, all_enty, all_enty, all_te)
fe production. \(TWa\)
vm_prodSe
(tall, all_regi, all_enty, all_enty, all_te)
se production. \(TWa\)
  F G H I J K L M N O
cm_carbonprice_temperatureLimit x
cm_co2_tax_2020 x x x
cm_co2_tax_growth x x
cm_CO2priceRegConvEndYr
cm_emiscen x x
cm_expoLinear_yearStart x
cm_iterative_target_adj x
cm_peakBudgYr
cm_startyear x x x x x
cm_taxCO2inc_after_peakBudgYr
pm_bunker_share_in_nonldv_fe
(tall, all_regi)
x
pm_consPC
(tall, all_regi)
x
pm_gdp
(tall, all_regi)
pm_GDPGross
(tall, all_regi)
x
pm_globalMeanTemperature
(tall)
x
pm_pop
(tall, all_regi)
pm_prodCouple
(all_regi, all_enty, all_enty, all_te, all_enty)
x
pm_prtp
(all_regi)
x
pm_pvp
(ttot, all_enty)
pm_shPPPMER
(all_regi)
pm_taxCO2eq
(ttot, all_regi)
x x x x x x x x x x
pm_temperatureImpulseResponseCO2
(tall, tall)
x
pm_ts
(tall)
pm_ttot_2_tall
(ttot, tall)
x
pm_ttot_val
(ttot)
x
sm_c_2_co2 x
sm_DptCO2_2_TDpGtC x x x x x x x
vm_cesIO
(tall, all_regi, all_in)
vm_co2eq
(ttot, all_regi)
x
vm_emiFgas
(tall, all_regi, all_enty)
x
vm_prodFe
(ttot, all_regi, all_enty, all_enty, all_te)
x
vm_prodSe
(tall, all_regi, all_enty, all_enty, all_te)
x

Output

Realizations

(A) diffCurvPhaseIn2Lin

Limitations There are no known limitations.

(B) diffPhaseIn2Constant

Limitations There are no known limitations.

(C) diffPhaseIn2Lin

Limitations There are no known limitations.

(D) diffPhaseInLin2LinFlex

Limitations There are no known limitations.

(E) diffPriceSameCost

Limitations There are no known limitations.

(F) exogenous

Limitations There are no known limitations.

(G) ExogSameAsPrevious

Limitations There are no known limitations.

(H) expoLinear

The exponential price path goes back to the “Hotelling rule”:
a price path that rises exponentially with the discount rate is economically optimal for extracting a finite resource, in our case the finite remaining carbon budget. However, once CDR is introduced to the portfolio of mitigation options, the remaining admissible amount of cumulative gross CO2 emissions is no longer finite, and the Hotelling rule no longer represents an economically optimal solution. A carbon price path following the Hotelling rule leads to rather low emission prices and therefore low emission reductions early in the century, and to very high emission prices and massive CDR deployment towards the end of the century. A Hotellling price path can only be considered optimal until the time of net-zero emissions. Afterwards, a moderate carbon price increase is sufficient to avoid a return of fossil fuels. Therefore, we choose an exponentially increasing carbon price until the expected time of net-zero emissions and a linear increase at the rate of 2050 or 2060 afterwards.

Limitations There are no known limitations.

(I) exponential

Limitations There are no known limitations.

(J) linear

Limitations There are no known limitations.

(K) NDC2018


 p45_factorRescaleCO2Tax(regi) = min((( max(0.1, p45_actual_co2eq_woLU_regi(regi)/p45_ref_co2eq_woLU_regi(regi) ) )** 4),max(2-iteration.val/15,1.01-iteration.val/10000));
elseif iteration.val lt 15,
 p45_factorRescaleCO2Tax(regi) = min((( max(0.1, p45_actual_co2eq_woLU_regi(regi)/p45_ref_co2eq_woLU_regi(regi) ) )**3),max(2-iteration.val/15,1.01-iteration.val/10000));

Limitations There are no known limitations.

(L) NDC2constant

Limitations There are no known limitations.

(M) none

Limitations There are no known limitations.

(N) NPi2018

Limitations There are no known limitations.

(O) temperatureNotToExceed

Limitations There are no known limitations.

Definitions

Objects

module-internal objects (A: diffCurvPhaseIn2Lin | B: diffPhaseIn2Constant | C: diffPhaseIn2Lin | D: diffPhaseInLin2LinFlex | E: diffPriceSameCost | F: exogenous | G: ExogSameAsPrevious | H: expoLinear | I: exponential | J: linear | K: NDC2018 | L: NDC2constant | M: none | N: NPi2018 | O: temperatureNotToExceed) (continued below)
  Description Unit A B C D E F
p45_2005share_target
(ttot, all_regi, all_GDPscen)
2005 GHG emission share of countries with quantifyable emissions under NDC in particular region, time dimension specifies alternative future target years
p45_actual_co2eq_woLU_regi
(all_regi)
actual level of regional 2020/2025/2030 GHG emissions in previous iteration
p45_BAU_reg_emi_wo_LU_bunkers
(ttot, all_regi)
regional GHG emissions (without LU and bunkers) in BAU scenario
p45_CO2_tax_previousScen
(tall, all_regi)
CO2 tax level from previous scenario
p45_CO2priceTrajDeveloped
(ttot)
CO2 price trajectory for developed/rich countries x x
p45_correctScale XXX x
p45_debugCprice2020
(all_regi, iteration)
XXX x
p45_debugMitiCostRel
(all_regi, iteration)
XXX x
p45_factor_targetyear
(ttot, all_regi, all_GDPscen)
Multiplier for target year emissions vs 2005 emissions, as weighted average for all countries with quantifyable emissions under NDC in particular region
p45_factorRescaleCO2Tax
(all_regi)
multiplicative factor to rescale CO2 taxes to achieve the climate targets
p45_factorRescaleCO2TaxTrack
(iteration, all_regi)
Track the changes of p45_factorRescaleCO2Tax over the iterations
p45_gdpBAU
(tall, all_regi)
baseline GDP path from gdx x
p45_gdppcap2015_PPP
(all_regi)
2015 GDP per capita (k $ PPP 2005) x x x x
p45_hist_share
(tall, all_regi)
GHG emissions share of countries with quantifyable 2030 target, time dimension specifies historic record
p45_mitiCostRel
(all_regi)
XXX x
p45_mitiCostRelGlob XXX x
p45_NDCstartPrice
(all_regi)
start price for linear phase-in from NDC
p45_phasein_2025ratio
(all_regi)
ratio of CO2 price to that of developed region in 2025 x x
p45_phasein_zeroyear
(all_regi)
year when CO2 price convergence line crosses zero x x x
p45_ref_co2eq_woLU_regi
(all_regi)
regional NDC target level of GHG - with different temporal meanings depending on INDC target year - e.g. 2025 for USA
p45_regCO2priceFactor
(ttot, all_regi)
regional multiplicative factor to the CO2 price of the developed countries x x
p45_tau_co2_tax Exogenous CO2 tax level x
p45_tau_co2_tax_inc
(all_regi)
Linear annual increase in carbon price T$/GtC/yr
p45_tauCO2_ref
(ttot, all_regi)
CO2 tax path of reference policy (NDC) x x x x
p45_taxTempLimit
(tall)
tax for Temperature limit \(1000 \$/tC\)
p45_taxTempLimitLastItr
(tall)
tax for Temperature limit, last iteration \(1000 \$/tC\)
s45_constantCO2price initial value for constant global CO2 price x x x
s45_convergenceCO2price price to which the regional values converge x x
s45_eta inverse steepness of damage function at temperature limit (logistic function). Raise if no convergence
s45_itrAdjExp exponent for iterative adjustment of taxes. Lower if no convergence.
s45_stageend first time-step of constant global CO2 price x x
s45_stagestart last time-step fixed to ref. / beginning of staged accession period x x x
s45_taxTempLimitConvMaxDeviation limit for temperature deviation
  G H I J K L M N O
p45_2005share_target
(ttot, all_regi, all_GDPscen)
x
p45_actual_co2eq_woLU_regi
(all_regi)
x
p45_BAU_reg_emi_wo_LU_bunkers
(ttot, all_regi)
x
p45_CO2_tax_previousScen
(tall, all_regi)
x
p45_CO2priceTrajDeveloped
(ttot)
p45_correctScale
p45_debugCprice2020
(all_regi, iteration)
p45_debugMitiCostRel
(all_regi, iteration)
p45_factor_targetyear
(ttot, all_regi, all_GDPscen)
x
p45_factorRescaleCO2Tax
(all_regi)
x
p45_factorRescaleCO2TaxTrack
(iteration, all_regi)
x
p45_gdpBAU
(tall, all_regi)
p45_gdppcap2015_PPP
(all_regi)
p45_hist_share
(tall, all_regi)
x
p45_mitiCostRel
(all_regi)
p45_mitiCostRelGlob
p45_NDCstartPrice
(all_regi)
x
p45_phasein_2025ratio
(all_regi)
p45_phasein_zeroyear
(all_regi)
p45_ref_co2eq_woLU_regi
(all_regi)
x
p45_regCO2priceFactor
(ttot, all_regi)
p45_tau_co2_tax
p45_tau_co2_tax_inc
(all_regi)
x
p45_tauCO2_ref
(ttot, all_regi)
x
p45_taxTempLimit
(tall)
x
p45_taxTempLimitLastItr
(tall)
x
s45_constantCO2price x
s45_convergenceCO2price
s45_eta x
s45_itrAdjExp x
s45_stageend x
s45_stagestart x
s45_taxTempLimitConvMaxDeviation x

Sets

sets in use
  description
all_enty all types of quantities
all_GDPscen all possible GDP scenarios
all_in all inputs and outputs of the CES function
all_regi all regions
all_te all energy technologies, including from modules
cm_GDPscen cm_GDPscen as set for use in GDX
enty(all_enty) all types of quantities
entyPe(all_enty) Primary energy types (PE)
entySe(all_enty) secondary energy types
in(all_in) All inputs and outputs of the CES function
iteration iterator for main (Negishi/Nash) iterations
modules all the available modules
pc2te(all_enty, all_enty, all_te, all_enty) mapping for own consumption of technologies
pe2se(all_enty, all_enty, all_te) map primary energy carriers to secondary
peBio(all_enty) biomass primary energy types
regi(all_regi) all regions used in the solution process
regi_2025target(all_regi) set of regions with predominantly 2025 GHG target
regi_2030target(all_regi) set of regions with predominantly 2030 GHG target
regi_group(ext_regi, all_regi) region groups (regions that together corresponds to a H12 region)
se2fe(all_enty, all_enty, all_te) map secondary energy to end-use energy using a technology
set regi_nucscen(all_regi) regions which nucscen applies to
t(ttot) modeling time, usually starting in 2005, but later for fixed delay runs
tall time index
te(all_te) energy technologies
ttot(tall) time index with spin up

Authors

Christoph Bertram, Gunnar Luderer, Robert Pietzcker

See Also

01_macro, 02_welfare, 04_PE_FE_parameters, 35_transport, core

References