Model Documentation

| Version 2.1.0

created with goxygen 0.29.0

core

(core)

Description

Interfaces

Interfaces to other modules
Interfaces to other modules

Input

module inputs
  Description Unit
pm_abatparam_Ind
(ttot, all_regi, all_enty, steps)
industry CCS MAC curves \(ratio @ US\$2005\)
pm_aux_capLowerLimit
(all_te, all_regi, tall)
auxiliary calculation parameter for the calculation of the lowest possible capacities in the first time steps
pm_costsPEtradeMp
(all_regi, all_enty)
PE tradecosts (energy losses on import)
pm_emiAPexo
(ttot, all_regi, all_enty, all_exogEmi)
exogenous emissions from RCP scenarios
pm_emiAPexoGlob
(ttot, all_enty, all_exogEmi)
exogenous emissions for aviation and international shipping from RCP scenarios
pm_emiAPexsolve
(tall, all_regi, all_sectorEmi, emiRCP)
???
pm_fuExtrOwnCons
(all_regi, all_enty, all_enty)
energy own consumption in the extraction sector with first enty being the output produced and the second enty being the input required
pm_histfegrowth
(all_regi, all_enty)
average growth rate of fe use from 1995 to 2005
pm_IO_trade
(tall, all_regi, all_enty, char)
Energy trade bounds based on IEA data.
pm_prodCouple
(all_regi, all_enty, all_enty, all_te, all_enty)
own consumption
pm_prtp
(all_regi)
Pure rate of time preference
pm_risk_premium
(all_regi)
risk premium that lowers the use of capital imports
qm_budget
(ttot, all_regi)
Budget balance
vm_ccs_cdr
(ttot, all_regi, all_enty, all_enty, all_te, rlf)
CCS emissions from CDR \(GtC / a\)
vm_cesIO
(tall, all_regi, all_in)
Production factor
vm_co2CCUshort
(ttot, all_regi, all_enty, all_enty, all_te, rlf)
CO2 captured in CCU te that have a persistence for co2 storage shorter than 5 years. Unit GtC/a
vm_cons
(ttot, all_regi)
Consumption
vm_emiIndCCS
(ttot, all_regi, all_enty)
industry CCS emissions \(GtC/a\)
vm_IndCCSCost
(ttot, all_regi, all_enty)
industry CCS cost
vm_invMacro
(ttot, all_regi, all_in)
Investment for capital for ttot
vm_macBaseInd
(ttot, all_regi, all_enty, secInd37)
industry CCS baseline emissions \(GtC/a\)
vm_Mport
(tall, all_regi, all_enty)
Import of traded commodity.
vm_Xport
(tall, all_regi, all_enty)
Export of traded commodity.

Output

module outputs
  Description Unit
cm_1stgen_phaseout choose if 1st generation biofuels should phase out after 2030 (vm_deltaCap=0)
cm_bioenergy_tax level of bioenergy tax in fraction of bioenergy price
cm_bioenergymaxscen choose bound on global pebiolc production excluding residues
cm_carbonprice_temperatureLimit not-to-exceed temperature target in degree above pre-industrial
cm_ccapturescen carbon capture option choice
cm_CCS_cement CCS for cement sub-sector
cm_CCS_chemicals CCS for chemicals sub-sector
cm_CCS_steel CCS for steel sub-sector
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
cm_co2_tax_growth growth rate of carbon tax
cm_CO2priceRegConvEndYr Year at which regional CO2 prices converge in module 45 realization diffPhaseIn2LinFlex
cm_cprice_red_factor reduction factor for price on co2luc when calculating the revenues. Replicates the reduction applied in MAgPIE
cm_damage cm_damage factor for forcing overshoot
cm_damages_BurkeLike_persistenceTime persistence time in years for Burke-like damage functions
cm_damages_BurkeLike_specification empirical specification for Burke-like damage functions
cm_damages_SccHorizon Horizon for SCC calculation. Damages cm_damagesSccHorizon years into the future are internalized.
cm_DiscRateScen Scenario for the implicit discount rate applied to the energy efficiency capital
cm_earlyreti_rate maximum portion of capital stock that can be retired in one year
cm_emiscen policy scenario choice
cm_expoLinear_yearStart time at which carbon price increases lineraly instead of exponentially
cm_fetaxscen choice of final energy tax path, subsidy path and inconvenience cost path, values other than 0 make setting module 21_tax on
cm_frac_CCS tax on CCS to reflect risk of leakage, formulated as fraction of ccs O&M costs
cm_frac_NetNegEmi tax on CDR to reflect risk of overshooting, formulated as fraction of carbon price
cm_gdximport_target whether or not the starting value for iteratively adjusted budgets, tax scenarios, or forcing targets (emiscen 5,6,8,9) should be read in from the input.gdx
cm_gs_ew grain size (for enhanced weathering, CDR module) \(micrometre\)
cm_IndCCSscen CCS for Industry
cm_iteration_max number of Negishi iterations (up to 49)
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_limit_peur_scen limit total uranium production
cm_LimRock limit amount of rock spread each year \(Gt\)
cm_multigasscen scenario on GHG portfolio to be included in permit trading scheme
cm_nash_autoconverge choice of nash convergence mode
cm_noReboundEffect Switch for allowing a rebound effect when closing the efficiency gap (cm_DiscRateScen)
cm_nucscen nuclear option choice
cm_optimisticMAC assume optimistic Industry MAC from AR5 Ch. 10?
cm_peakBudgYr date of net-zero CO2 emissions for peak budget runs without overshoot
cm_permittradescen scenario on permit trade
cm_prtpScen pure rate of time preference standard values
cm_rentconvcoal [grades2poly] number of years required to converge to the 2100 coal rent
cm_rentconvgas [grades2poly] number of years required to converge to the 2100 gas rent
cm_rentconvoil [grades2poly] number of years required to converge to the 2100 oil rent
cm_rentdisccoal [grades2poly] discount factor for the coal rent
cm_rentdisccoal2 [grades2poly] discount factor for the coal rent achieved in 2100
cm_rentdiscgas [grades2poly] discount factor for the gas rent
cm_rentdiscgas2 [grades2poly] discount factor for the gas rent achieved in 2100
cm_rentdiscoil [grades2poly] discount factor for the oil rent
cm_rentdiscoil2 [grades2poly] discount factor for the oil rent achieved in 2100
cm_so2tax_scen level of SO2 tax
cm_solwindenergyscen scenario for fluctuating renewables, 1 is reference, 2 is pessimistic with limits to fluctuating SE el share
cm_startyear first optimized modelling time step \(year\)
cm_taxCO2inc_after_peakBudgYr annual increase of CO2 price after the Peak Budget Year in $ per tCO2
cm_tradecost_bio choose financal tradecosts for biomass (purpose grown pebiolc)
cm_trdadj parameter scale the adjustment cost parameter for increasing gas trade export
cm_trdcst parameter to scale trade export cost for gas
fm_dataemiglob
(all_enty, all_enty, all_te, all_enty)
read-in of emissions factors co2,cco2
fm_dataglob
(char, all_te)
energy technology characteristics: investment costs, O&M costs, efficiency, learning rates …
pm_boundCapCCS
(all_regi)
installed and planed capacity of CCS
pm_boundCapEV
(tall, all_regi)
installed capacity of electric vehicles
pm_budgetCO2eq
(all_regi)
budget for regional energy-emissions in period 1
pm_capCum0
(tall, all_regi, all_te)
vm_capCum from last iteration
pm_capCumForeign
(ttot, all_regi, all_te)
parameter for learning externality (cumulated capacity of other regions except regi)
pm_capital_lifetime_exp
(all_regi, all_in)
number of years for which 25% of the CES capital stocks remains
pm_CementAbatementPrice
(ttot, all_regi)
CO2 price used during calculation of cement demand reduction \(\$/tCO2\)
pm_CementDemandReductionCost
(tall, all_regi)
cost of reducing cement demand \(tn\$2005\)
pm_cesdata
(tall, all_regi, all_in, cesParameter)
parameters of the CES function
pm_cesdata_putty
(tall, all_regi, all_in, cesParameter)
quantities for the putty clay factors
pm_cesdata_sigma
(ttot, all_in)
elasticities of substitution
pm_cf
(tall, all_regi, all_te)
Installed capacity availability - capacity factor (fraction of the year that a plant is running)
pm_co2eq0
(tall, all_regi)
vm_co2eq from last iteration
pm_co2eqForeign
(tall, all_regi)
emissions, which are part of the climate policy, of other regions (nash relevant)
pm_conv_TWa_EJ conversion from TWa to EJ
pm_damage
(tall, all_regi)
damage factor (reduces GDP)
pm_damageGrowthRate
(tall, all_regi)
damage function for growth rate of GDP
pm_damageMarginal
(tall, all_regi)
damage function derivative
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’
pm_dataccs
(all_regi, char, rlf)
maximum CO2 storage capacity using CCS technology. \(GtC\)
pm_dataeta
(tall, all_regi, all_te)
regional eta data
pm_dataren
(all_regi, char, rlf, all_te)
Array including both regional renewable potential and capacity factor
pm_dt
(tall)
difference to last timestep
pm_emicapglob
(tall)
global emission cap
pm_emiExog
(tall, all_regi, all_enty)
exogenous emissions
pm_emifac
(tall, all_regi, all_enty, all_enty, all_te, all_enty)
emission factor by technology for all types of emissions in emiTe
pm_emissions0
(tall, all_regi, all_enty)
Emissions in last iteration
pm_emissionsForeign
(tall, all_regi, all_enty)
total emissions of other regions (nash relevant)
pm_EN_demand_from_initialcap2
(all_regi, all_enty)
PE demand resulting from the initialcap routine. \(EJ, Uranium: MT U3O8\)
pm_esCapCost
(tall, all_regi, all_teEs)
Capital energy cost per unit of consumption for end-use capital (energy service layer)
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)\)
pm_fe2es
(tall, all_regi, all_teEs)
Conversion factor from final energies to energy services. Default is 1.
pm_gdp
(tall, all_regi)
GDP data \(trn US\$ 2005\)
pm_gdp_gdx
(tall, all_regi)
GDP path from gdx, updated iteratively.
pm_GDPGross
(tall, all_regi)
gross GDP (before damages)
pm_globalMeanTemperature
(tall)
global mean temperature anomaly
pm_globalMeanTemperatureZeroed1900
(tall)
global mean temperature anomaly, zeroed around 1900
pm_inco0_t
(ttot, all_regi, all_te)
New inco0 that is time-dependent for some technologies. \(T\$/TW\)
pm_interpolWeight_ttot_tall
(tall)
weight for linear interpolation of ttot-dependent variables
pm_lab
(tall, all_regi)
data for labour \(bn people\)
pm_macAbat
(tall, all_regi, all_enty, steps)
abatement levels based on data from van Vuuren \(fraction\)
pm_macAbatLev
(tall, all_regi, all_enty)
actual level of abatement per time step, region, and source \(fraction\)
pm_macCost
(tall, all_regi, all_enty)
abatement costs for all emissions subject to MACCs (type emiMacSector)
pm_macCostSwitch
(all_enty)
switch to include mac costs in the code (e.g. in coupled scenarios, we want to include the costs in REMIND, but MAC effects on emissions are calculated in MAgPIE)
pm_macStep
(tall, all_regi, all_enty)
step number of abatement level \(integer\)
pm_macSwitch
(all_enty)
switch to include mac option in the code
pm_NuclearConstraint
(ttot, all_regi, all_te)
parameter with the real-world capacities, construction and plans
pm_omeg (all_regiopTimeYrall_te) technical depreciation parameter, gives the share of a capacity that is still usable after tlt. \(none/share, value between 0 and 1\)
pm_pedem_res
(ttot, all_regi, all_te)
Demand for pebiolc residues, needed for enhancement of residue potential \(TWa\)
pm_pop
(tall, all_regi)
population data \(bn people\)
pm_priceCO2
(tall, all_regi)
carbon price \(\$/tC\)
pm_pricePerm
(ttot)
permit price in special case when the marginal is only found in box module
pm_pvp
(ttot, all_enty)
Price on commodity markets
pm_pvpRegi
(ttot, all_regi, all_enty)
prices of traded commodities - regional. only used for permit trade
pm_regionalTemperature
(tall, all_regi)
regional temperature
pm_ResidualCementDemand
(tall, all_regi)
reduction in cemend demand (and thus process emissions) due to climate policy \(0...1\)
pm_share_ind_fehos
(tall, all_regi)
Share of heating oil used in the industry (rest is residential)
pm_share_ind_fesos
(tall, all_regi)
Share of coal solids (coaltr) used in the industry (rest is residential)
pm_share_ind_fesos_bio
(tall, all_regi)
Share of biomass solids (biotr) used in the industry (rest is residential)
pm_share_trans
(tall, all_regi)
transportation share
pm_shFeCes
(ttot, all_regi, all_enty, all_in, all_teEs)
Final energy shares for CES nodes
pm_shPerm
(tall, all_regi)
emission permit shares
pm_shPPPMER
(all_regi)
PPP ratio for calculating GDP|PPP from GDP|MER
pm_SolNonInfes
(all_regi)
model status from last iteration. 1 means status 2 or 7, 0 for all other status codes
pm_tall_2_ttot
(tall, ttot)
mapping from tall to ttot
pm_taxCO2eq
(ttot, all_regi)
CO2 tax path in T$/GtC = $/kgC. To get $/tCO2, multiply with 272 \(T\$/GtC\)
pm_taxCO2eq_iteration
(iteration, ttot, all_regi)
save CO2eq tax used in iteration
pm_taxCO2eqHist
(ttot, all_regi)
Historic CO2 tax path in 2010 and 2015 (also in BAU!) in T$/GtC = $/kgC. To get $/tCO2, multiply with 272 \(T\$/GtC\)
pm_taxCO2eqSCC
(ttot, all_regi)
carbon tax component due to damages (social cost of carbon)
pm_temperatureImpulseResponseCO2
(tall, tall)
temperature impulse response to CO2 \(K/GtCO2\)
pm_tempScaleGlob2Reg
(tall, all_regi)
scaling factor from global to regional temperature
pm_ts
(tall)
(t_n+1 - t_n-1)/2 for a timestep t_n
pm_tsu2opTimeYr
(ttot, opTimeYr)
parameter that counts opTimeYr regarding tsu2opTimeYr apping
pm_ttot_2_tall
(ttot, tall)
mapping from ttot to tall
pm_ttot_val
(ttot)
value of ttot set element
pm_vintage_in
(all_regi, opTimeYr, all_te)
historical vintage structure. \(arbitrary\)
qm_balFeForCesAndEs
(ttot, all_regi, all_enty)
FE balance coupling ESM and production function either directly (Pathway I) or Indirectly through Energy services (Pathway III)
qm_co2eqCum
(all_regi)
cumulate regional emissions over time
qm_deltaCapCumNet
(ttot, all_regi, all_te)
increase of cumulative net capacity
qm_fuel2pe
(ttot, all_regi, all_enty)
constraint on cumulative fuel use
sm_budgetCO2eqGlob budget for global energy-emissions in period 1
sm_c_2_co2 conversion from c to co2
sm_ccsinjecrate CCS injection rate factor. Unit: 1/a
sm_D2015_2_D2005 Convert $2015 to $2005 by dividing by 1.2: 1/1.2 = 0.8333
sm_day_2_hour hours per day
sm_dmac step in MAC functions \(US\$\)
sm_DpGJ_2_TDpTWa multipl. factor to convert (Dollar per GJoule) to (TerraDollar per TWyear)
sm_DpKW_2_TDpTW convert Dollar per kW to TeraDollar per TeraWatt
sm_DptCO2_2_TDpGtC Conversion multiplier to go from \(/tCO2 to T\)/GtC: 44/12/1000
sm_EJ_2_TWa multiplicative factor to convert from EJ to TWa
sm_endBudgetCO2eq end time step of emission budget period 1
sm_eps small number: 1e-9
sm_giga_2_non giga to non
sm_GJ_2_TWa multiplicative factor to convert from GJ to TWa
sm_mega_2_non mega to non
sm_MtCH4_2_TWa Energy content of methane. MtCH4 –> TWa: 1 MtCH4 = 1.23 * 10^6 toe * 42 GJ/toe * 10^-9 EJ/GJ * 1 TWa/31.536 EJ = 0.001638 TWa (BP statistical review)
sm_tmp temporary scalar that can be used locally
sm_tmp2 temporary scalar that can be used locally
sm_trillion_2_non trillion to non
sm_TWa_2_kWh tera Watt year to kilo Watt hour
sm_TWa_2_MWh tera Watt year to Mega Watt hour
sm_year_2_day days per year
vm_banking
(ttot, all_regi)
banking of emission permits
vm_cap
(tall, all_regi, all_te, rlf)
net total capacities
vm_capCum
(tall, all_regi, all_te)
gross capacities (=capacities cumulated over time)
vm_capDistr
(tall, all_regi, all_te, rlf)
net capacities, distributed to the different grades for renewables
vm_capEarlyReti
(tall, all_regi, all_te)
fraction of early retired capital
vm_capFac
(ttot, all_regi, all_te)
capacity factor of conversion technologies
vm_co2capture
(ttot, all_regi, all_enty, all_enty, all_te, rlf)
all captured CO2. \(GtC/a\)
vm_co2CCS
(ttot, all_regi, all_enty, all_enty, all_te, rlf)
all differenct ccs. \(GtC/a\)
vm_co2eq
(ttot, all_regi)
total emissions measured in co2 equivalents ATTENTION: content depends on multigasscen. \(GtCeq\)
vm_co2eqGlob
(ttot)
global emissions to be balanced by allowances. \(GtCeq\)
vm_costEnergySys
(ttot, all_regi)
energy system costs
vm_costFuBio
(ttot, all_regi)
fuel costs from bio energy \(tril\$US\)
vm_costFuEx
(ttot, all_regi, all_enty)
fuel costs from exhaustible energy \(tril\$US\)
vm_costpollution
(tall, all_regi)
costs for air pollution policies
vm_costSubsidizeLearning
(ttot, all_regi)
regional cost of subsidy for learning technologies
vm_costTeCapital
(ttot, all_regi, all_te)
investment costs
vm_deltaCap
(tall, all_regi, all_te, rlf)
capacity additions
vm_demFeForEs
(ttot, all_regi, all_enty, all_esty, all_teEs)
Final energy which will be used in the ES layer.
vm_demPe
(tall, all_regi, all_enty, all_enty, all_te)
pe demand. \(TWa, Uranium: Mt Ur\)
vm_demSe
(ttot, all_regi, all_enty, all_enty, all_te)
se demand. \(TWa\)
vm_demSeOth
(ttot, all_regi, all_enty, all_te)
other sety demand from certain technologies, have to calculated in additional equations \(TWa\)
vm_dummyBudget
(ttot, all_regi)
auxiliary variable that helps to meet permit allocation equation in nash case
vm_emiAll
(ttot, all_regi, all_enty)
total regional emissions. \(GtC, Mt CH4, Mt N\)
vm_emiAllGlob
(ttot, all_enty)
total global emissions - link to the climate module. \(GtC, Mt CH4, Mt N\)
vm_emiCdr
(ttot, all_regi, all_enty)
total (negative) emissions due to CDR technologies of each region. \(GtC\)
vm_emiFgas
(tall, all_regi, all_enty)
F-gas emissions by single gases from IMAGE
vm_emiMac
(ttot, all_regi, all_enty)
total non-energy-related emission of each region. \(GtC, Mt CH4, Mt N\)
vm_emiMacSector
(ttot, all_regi, all_enty)
total non-energy-related emission of each region. \(GtC, Mt CH4, Mt N\)
vm_emiTe
(ttot, all_regi, all_enty)
total energy-related emissions of each region. \(GtC, Mt CH4, Mt N\)
vm_emiTeDetail
(ttot, all_regi, all_enty, all_enty, all_te, all_enty)
energy-related emissions per region and technology
vm_enerSerAdj
(tall, all_regi, all_in)
adjustment costs for energy service transformations
vm_esCapInv
(ttot, all_regi, all_teEs)
investment for energy end-use capital at the energy service level
vm_fuExtr
(ttot, all_regi, all_enty, rlf)
fuel use \(TWa\)
vm_macBase
(ttot, all_regi, all_enty)
baseline emissions for all emissions subject to MACCs (type emismac)
vm_omcosts_cdr
(tall, all_regi)
O&M costs for spreading grinded rocks on fields
vm_otherFEdemand
(ttot, all_regi, all_enty)
final energy demand from no transformation technologies (e.g. enhanced weathering)
vm_pebiolc_price
(ttot, all_regi)
Bioenergy price according to MAgPIE supply curves \(T\$US/TWa\)
vm_perm
(ttot, all_regi)
emission allowances
vm_prodFe
(ttot, all_regi, all_enty, all_enty, all_te)
fe production. \(TWa\)
vm_prodPe
(ttot, all_regi, all_enty)
pe production. \(TWa, Uranium: Mt Ur\)
vm_prodSe
(tall, all_regi, all_enty, all_enty, all_te)
se production. \(TWa\)
vm_prodSeOth
(ttot, all_regi, all_enty, all_te)
other sety production from certain technologies, have to be calculated in additional equations \(TWa\)
vm_prodUe
(ttot, all_regi, all_enty, all_enty, all_te)
Useful energy production \(TWa\)
vm_taxrev
(ttot, all_regi)
difference between tax volume in current and previous iteration
vm_usableSe
(ttot, all_regi, entySe)
usable se before se2se and MP/XP (pe2se, +positive oc from pe2se, -storage losses). \(TWa\)
vm_usableSeTe
(ttot, all_regi, entySe, all_te)
usable se produced by one te (pe2se, +positive oc from pe2se, -storage losses). \(TWa\)

Realizations

(A) core


table fm_dataglob(char,all_te)  "energy technology characteristics: investment costs, O&M costs, efficiency, learning rates ..."
$include "./core/input/generisdata_tech.prn";

pm_ResidualCementDemand(tall,all_regi)               "reduction in cemend demand (and thus process emissions) due to climate policy [0...1]"
pm_CementAbatementPrice(ttot,all_regi)               "CO2 price used during calculation of cement demand reduction [$/tCO2]"
pm_CementDemandReductionCost(tall,all_regi)          "cost of reducing cement demand [tn$2005]"
p_macPE(ttot,all_regi,all_enty)                      "pe from MACs"
pm_shPerm(tall, all_regi)                            "emission permit shares"
pm_emicapglob(tall)                                  "global emission cap"
p_adj_coeff(ttot,all_regi,all_te)                    "coefficient for adjustment costs"
p_adj_coeff_glob(all_te)                             "coefficient for adjustment costs - global scale"
p_switch_cement(ttot,all_regi)                       "describes an s-curve to provide a smooth switching from the short-term behavior (depending on per capita capital investments) to the long-term behavior (constant per capita emissions) of CO2 emissions from cement production"
p_cint(all_regi,all_enty,all_enty,rlf)               "additional emissions of GHG from mining, on top of emissions from combustion"
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)]"
pm_EN_demand_from_initialcap2(all_regi,all_enty)     "PE demand resulting from the initialcap routine. [EJ, Uranium: MT U3O8]"
pm_budgetCO2eq(all_regi)                             "budget for regional energy-emissions in period 1"
p_actualbudgetco2(tall)                              "actual level of cumulated emissions [GtCO2]"
pm_dataccs(all_regi,char,rlf)                               "maximum CO2 storage capacity using CCS technology. [GtC]"
pm_dataeta(tall,all_regi,all_te)                            "regional eta data"
p_emi_quan_conv_ar4(all_enty)                               "conversion factor for various gases to GtCeq"
pm_emifac(tall,all_regi,all_enty,all_enty,all_te,all_enty)  "emission factor by technology for all types of emissions in emiTe"
pm_omeg (all_regi,opTimeYr,all_te)                          "technical depreciation parameter, gives the share of a capacity that is still usable after tlt. [none/share, value between 0 and 1]"
p_aux_lifetime(all_regi,all_te)                             "auxiliary parameter for calculating life times, calculated externally in excel sheet"
pm_pedem_res(ttot,all_regi,all_te)                          "Demand for pebiolc residues, needed for enhancement of residue potential [TWa]"
p_ef_dem(all_enty)                                          "Demand side emission factor of final energy carriers [MtCO2/EJ]"
p_bioshare(tall,all_regi,all_enty)                          "bioshare for each FE carrier"
p_avCapFac2015(all_regi,all_te)                             "average capacity factor of non-bio renewables in 2015 in REMIND"
p_aux_capToDistr(all_regi,all_te)                           "aux. param. to calculate p_avCapFac2015;

p_share_seliq_s(ttot,all_regi)                       "share of liquids used for stationary sector (fehos). [0..1]"
p_share_seh2_s(ttot,all_regi)                        "share of hydrogen used for stationary sector (feh2s). [0..1]"
p_share_seel_s(ttot,all_regi)                        "Share of electricity used for stationary sector (feels). [0..1]"
p_discountedLifetime(all_te)                         "Sum over the discounted (@6%) depreciation factor (omega)"
p_teAnnuity(all_te)                                  "Annuity factor of a technology"
p_histEmiMac(tall,all_regi,all_enty)                 "historical emissions per MAC;

s_macChange                                           "maximum yearly increase of relative abatement in percentage points of maximum abatement. Unit: 0..1"      /0.05/
s_tgn_2_pgc                                           "conversion factor 100-yr GWP from TgN to PgCeq"
s_tgch4_2_pgc                                         "conversion factor 100-yr GWP from TgCH4 to PgCeq"
sm_MtCH4_2_TWa                                        "Energy content of methane. MtCH4 --> TWa: 1 MtCH4 = 1.23 * 10^6 toe * 42 GJ/toe * 10^-9 EJ/GJ * 1 TWa/31.536 EJ = 0.001638 TWa (BP statistical review)"  /0.001638/
sm_D2015_2_D2005                                      "Convert $2015 to $2005 by dividing by 1.2: 1/1.2 = 0.8333"      /0.8333/
sm_DptCO2_2_TDpGtC                                    "Conversion multiplier to go from $/tCO2 to T$/GtC: 44/12/1000"     /0.00366667/ 
s_co2pipe_leakage                                     "Leakage rate of CO2 pipelines. Unit: [0..1]"
s_tau_cement                                          "range of per capita investments for switching from short-term to long-term behavior in CO2 cement emissions"                / 12000 /
s_c_so2                                               "constant, see S. Smith, 2004, Future Sulfur Dioxide Emissions"    /4.39445/
sm_ccsinjecrate                                       "CCS injection rate factor. Unit: 1/a"
s_t_start                                                      "start year of emission budget"
cm_peakBudgYr                                              "date of net-zero CO2 emissions for peak budget runs without overshoot"
sm_endBudgetCO2eq                                     "end time step of emission budget period 1"
sm_budgetCO2eqGlob                                    "budget for global energy-emissions in period 1"
p_emi_budget1_gdx                                     "budget for global energy-emissions in period 1 from gdx, may overwrite default values"
s_reference2030co2eq                                  "reference level of 2030 GHG emissions for AWP2 myopic scenarios in GtCO2eq p.a., all Kyoto gases"
s_referencebudgetco2                                  "reference level of 2000-2100 cumulated emissions for AWP2 myopic scenarios in GtCO2, including all CO2"
s_actual2030co2eq                                     "actual level of 2030 GHG emissions for AWP2 myopic scenarios in GtCO2eq p.a., all Kyoto gases for last iteration"
s_actualbudgetco2                                     "actual level of 2000-2100 cumulated emissions for AWP2 myopic scenarios in GtCO2, including all CO2 for last iteration"
s_actualbudgetco2_last                                "actual level of 2000-2100 cumulated emissions for previous iteration" /0/
sm_eps                                                "small number: 1e-9 "  /1e-9/
;

Fuel costs are associated with the use of exhaustible primary energy (fossils, uranium) and biomass.

\[\begin{multline*} v\_costFu(t,regi) = vm\_costFuBio(t,regi) + \sum_{peEx(enty)} vm\_costFuEx(t,regi,enty) \end{multline*}\]

Specific investment costs of learning technologies are a model-endogenous variable; those of non-learning technologies are fixed to constant values. Total investment costs are the product of specific costs and capacity additions plus adjustment costs.

\[\begin{multline*} v\_costInv(t,regi) = \sum_{en2en(enty,enty2,te)}\left( v\_costInvTeDir(t,regi,te) + v\_costInvTeAdj(t,regi,te)\$teAdj(te) \right) + \sum_{teNoTransform}\left( v\_costInvTeDir(t,regi,teNoTransform) + v\_costInvTeAdj(t,regi,teNoTransform)\$teAdj(teNoTransform) \right) \end{multline*}\]

\[\begin{multline*} v\_costInvTeDir(t,regi,te) = vm\_costTeCapital(t,regi,te) \cdot \sum_{te2rlf(te,rlf)} vm\_deltaCap(t,regi,te,rlf) \end{multline*}\]

\[\begin{multline*} v\_costInvTeAdj(t,regi,teAdj) = vm\_costTeCapital(t,regi,teAdj) \cdot \left( \left(p\_adj\_coeff(t,regi,teAdj) \cdot v\_adjFactor(t,regi,teAdj)\right) + \left(p\_adj\_coeff\_glob(teAdj) \cdot v\_adjFactorGlob(t,regi,teAdj) \right) \right) \end{multline*}\]

Operation and maintenance resut form costs maintenance of existing facilities according to their capacity and operation of energy transformations according to the amount of produced secondary and final energy.

\[\begin{multline*} v\_costOM(t,regi) = \sum_{en2en(enty,enty2,te)}\left( pm\_data(regi,"omf",te) \cdot \sum_{te2rlf(te,rlf)}\left( vm\_costTeCapital(t,regi,te) \cdot vm\_cap(t,regi,te,rlf) \right) + pm\_data(regi,"omv",te) \cdot \left(vm\_prodSe(t,regi,enty,enty2,te)\$entySe(enty2) + vm\_prodFe(t,regi,enty,enty2,te)\$entyFe(enty2)\right) \right) + \sum_{teNoTransform(te)}\left( pm\_data(regi,"omf",te) \cdot \sum_{te2rlf(te,rlf)}\left( vm\_costTeCapital(t,regi,te) \cdot vm\_cap(t,regi,te,rlf) \right) \right) + vm\_omcosts\_cdr(t,regi) \end{multline*}\]

Energy balance equations equate the production of and demand for each primary, secondary and final energy. The balance equation for primary energy equals supply of primary energy demand on primary energy.

\[\begin{multline*} vm\_prodPe(t,regi,enty) + p\_macPE(t,regi,enty) = \sum_{pe2se(enty,enty2,te)} vm\_demPe(t,regi,enty,enty2,te) +\frac{ p\_datacs(regi,enty) }{ 0.95 } \end{multline*}\]

The secondary energy balance comprises the following terms (except power, defined on module): 1. Secondary energy can be produced from primary or (another type of) secondary energy. 2. Own consumption of secondary energy occurs from the production of secondary and final energy, and from CCS technologies. Own consumption is calculated as the product of the respective production and a negative coefficient. The mapping defines possible combinations: the first two enty types of the mapping define the underlying transformation process, the 3rd argument the technology, and the 4th argument specifies the consumed energy type. 3. Couple production is modeled as own consumption, but with a positive coefficient. 4. Secondary energy can be demanded to produce final or (another type of) secondary energy.

\[\begin{multline*} \sum_{pe2se(enty,enty2,te)} vm\_prodSe(t,regi,enty,enty2,te) + \sum_{se2se(enty,enty2,te)} vm\_prodSe(t,regi,enty,enty2,te) + \sum_{pc2te\left(enty,entySE(enty3),te,enty2\right)}\left( pm\_prodCouple(regi,enty,enty3,te,enty2) \cdot vm\_prodSe(t,regi,enty,enty3,te) \right) + \sum_{pc2te\left(enty4,entyFE(enty5),te,enty2\right)}\left( pm\_prodCouple(regi,enty4,enty5,te,enty2) \cdot vm\_prodFe(t,regi,enty4,enty5,te) \right) + \sum_{pc2te(enty,enty3,te,enty2)}\left( \sum_{teCCS2rlf(te,rlf)}\left( pm\_prodCouple(regi,enty,enty3,te,enty2) \cdot vm\_co2CCS(t,regi,enty,enty3,te,rlf) \right) \right) + \left( sm\_MtCH4\_2\_TWa \cdot \left( vm\_macBase(t,regi,"ch4wstl") - vm\_emiMacSector(t,regi,"ch4wstl") \right) \right)\$\left( sameas(enty2,"segabio") \& t.val gt 2005 \right) + \sum_{prodSeOth2te(enty2,te)} vm\_prodSeOth(t,regi,enty2,te) = \sum_{se2fe(enty2,enty3,te)} vm\_demSe(t,regi,enty2,enty3,te) + \sum_{se2se(enty2,enty3,te)} vm\_demSe(t,regi,enty2,enty3,te) + \sum_{demSeOth2te(enty2,te)} vm\_demSeOth(t,regi,enty2,te) \end{multline*}\]

Taking the technology-specific transformation eficiency into account, the equations describe the transformation of an energy type to another type. Depending on the detail of the technology representation, the transformation technology’s eficiency can depend either only on the current year or on the year when a specific technology was built. Transformation from primary to secondary energy:


q_transPe2se(ttot,regi,pe2se(enty,enty2,te))$(ttot.val ge cm_startyear)..
         vm_demPe(ttot,regi,enty,enty2,te)
         =e=
         (1 / pm_eta_conv(ttot,regi,te) * vm_prodSe(ttot,regi,enty,enty2,te))$teEtaConst(te)
         +
        (1 - vm_capEarlyReti(ttot,regi,te))
        *
        sum(teSe2rlf(teEtaIncr(te),rlf),
                vm_capFac(ttot,regi,te)
             * (
                 sum(opTimeYr2te(te,opTimeYr)$(tsu2opTimeYr(ttot,opTimeYr) AND (opTimeYr.val gt 1) ),
                        pm_ts(ttot-(pm_tsu2opTimeYr(ttot,opTimeYr)-1)) 
                      / pm_dataeta(ttot-(pm_tsu2opTimeYr(ttot,opTimeYr)-1),regi,te) 
                      * pm_omeg(regi,opTimeYr+1,te)
                                * vm_deltaCap(ttot-(pm_tsu2opTimeYr(ttot,opTimeYr)-1),regi,te,rlf)
                      )
               +  pm_dt(ttot)/2 / pm_dataeta(ttot,regi,te)
                * pm_omeg(regi,"2",te)
                * vm_deltaCap(ttot,regi,te,rlf)   
$ifthen setglobal END2110
                      - (pm_ts(ttot) / pm_dataeta(ttot,regi,te) * pm_omeg(regi,"11",te)
                   * 0.5*vm_deltaCap(ttot,regi,te,rlf))$(ord(ttot) eq card(ttot))
$endif
                                )
                        );

Transformation from secondary to final energy:

\[\begin{multline*} pm\_eta\_conv(t,regi,te) \cdot vm\_demSE(t,regi,entySE,entyFE,te) = vm\_prodFE(t,regi,entySE,entyFE,te) \end{multline*}\]

Transformation between secondary energy types:

\[\begin{multline*} pm\_eta\_conv(t,regi,te) \cdot vm\_demSe(t,regi,enty,enty2,te) = vm\_prodSe(t,regi,enty,enty2,te) \end{multline*}\]

Final energy pathway I: Direct hand-over of FEs to CES.

\[\begin{multline*} \sum_{se2fe(entySe,entyFe,te)} vm\_prodFE(t,regi,entySe,entyFe,te) = \sum_{fe2ppfEn(entyFe,ppfEn)}\left( vm\_cesIO(t,regi,ppfEn) + pm\_cesdata(t,regi,ppfEn,"offset\_quantity") \right) + \sum_{fe2es(entyFe,esty,teEs)} vm\_demFeForEs(t,regi,entyFe,esty,teEs) + vm\_otherFEdemand(t,regi,entyFe) \end{multline*}\]

Final energy pathway II: Useful energy layer (prodFe -> demFe -> prodUe), with capacaity tracking. Final energy balance

\[\begin{multline*} \sum_{se2fe(enty,entyFe,te)} vm\_prodFe(t,regi,enty,entyFe,te) + \sum_{pc2te(entyFE2,entyUe,te,entyFE)}\left( pm\_prodCouple(regi,entyFE2,entyUe,te,entyFE) \cdot vm\_prodUe(t,regi,entyFE2,entyUe,te) \right) = \sum_{fe2ue(entyFe,entyUe,te)} v\_demFe(t,regi,entyFe,entyUe,te) + vm\_otherFEdemand(t,regi,entyFe) \end{multline*}\]

Transformation from final energy to useful energy:

\[\begin{multline*} pm\_eta\_conv(t,regi,te) \cdot v\_demFe(t,regi,entyFe,entyUe,te) = vm\_prodUe(t,regi,entyFe,entyUe,te) \end{multline*}\]

Hand-over to CES:

\[\begin{multline*} vm\_cesIO(t,regi,in) + pm\_cesdata(t,regi,in,"offset\_quantity") = \sum_{fe2ue(entyFe,entyUe,te)\$ue2ppfen(entyUe,in)} vm\_prodUe(t,regi,entyFe,entyUe,te) \end{multline*}\]

Definition of capacity constraints for FE to ES transformation:

\[\begin{multline*} vm\_prodUe(t,regi,entyFe,entyUe,te) \leq \sum_{teue2rlf(te,rlf)}\left( vm\_capFac(t,regi,te) \cdot vm\_cap(t,regi,te,rlf) \right) \end{multline*}\]

FE Pathway III: Energy service layer (prodFe -> demFeForEs -> prodEs), no capacity tracking. Transformation from final energy to useful energy:

\[\begin{multline*} pm\_fe2es(t,regi,teEs) \cdot vm\_demFeForEs(t,regi,entyFe,esty,teEs) = v\_prodEs(t,regi,entyFe,esty,teEs) \end{multline*}\]

Hand-over to CES:

\[\begin{multline*} vm\_cesIO(t,regi,in) + pm\_cesdata(t,regi,in,"offset\_quantity") = \sum_{fe2es(entyFe,esty,teEs)\$es2ppfen(esty,in)} v\_prodEs(t,regi,entyFe,esty,teEs) \end{multline*}\]

Shares of FE carriers w.r.t. a CES node:

\[\begin{multline*} \sum_{fe2es(entyFe2,esty,teEs2)\$es2ppfen(esty,in)} vm\_demFeForEs(t,regi,entyFe2,esty,teEs2) \cdot pm\_shFeCes(t,regi,entyFe,in,teEs) = \sum_{fe2es(entyFe,esty,teEs)\$es2ppfen(esty,in)} vm\_demFeForEs(t,regi,entyFe,esty,teEs) \end{multline*}\]

Definition of capacity constraints for primary energy to secondary energy transformation:

\[\begin{multline*} vm\_prodSe(t,regi,enty,enty2,te) = \sum_{teSe2rlf(te,rlf)}\left( vm\_capFac(t,regi,te) \cdot pm\_dataren(regi,"nur",rlf,te) \cdot vm\_cap(t,regi,te,rlf) \right)\$\left(NOT teReNoBio(te)\right) + \sum_{teRe2rlfDetail(te,rlf)}\left( \left( 1\$teRLDCDisp(te) + pm\_dataren(regi,"nur",rlf,te)\$\left(NOT teRLDCDisp(te)\right) \right) \cdot vm\_capFac(t,regi,te) \cdot vm\_capDistr(t,regi,te,rlf) \right)\$teReNoBio(te) \end{multline*}\]

Definition of capacity constraints for secondary energy to secondary energy transformation:

\[\begin{multline*} vm\_prodSe(t,regi,enty,enty2,te) = \sum_{teSe2rlf(te,rlf)}\left( vm\_capFac(t,regi,te) \cdot pm\_dataren(regi,"nur",rlf,te) \cdot vm\_cap(t,regi,te,rlf) \right) \end{multline*}\]

Definition of capacity constraints for secondary energy to final energy transformation:

\[\begin{multline*} \sum_{\left(entySe,entyFe\right)\$se2fe(entySe,entyFe,te)} vm\_prodFe(t,regi,entySe,entyFe,te) \leq \sum_{teFe2rlf(te,rlf)}\left( vm\_capFac(t,regi,te) \cdot vm\_cap(t,regi,te,rlf)\right) \end{multline*}\]

Definition of capacity constraints for CCS technologies:

\[\begin{multline*} vm\_co2CCS(t,regi,enty,enty2,te,rlf) = \sum_{teCCS2rlf(te,rlf)}\left( vm\_capFac(t,regi,te) \cdot vm\_cap(t,regi,te,rlf)\right) \end{multline*}\]

The capacities of vintaged technologies depreciate according to a vintage depreciation scheme, with generally low depreciation at the beginning of the lifetime, and fast depreciation around the average lifetime. Depreciation can generally be tracked for each grade separately. By implementation, however, only grades of level 1 are affected. The depreciation of any fossil technology can be accelerated by early retirement, which is a crucial way to quickly phase out emissions after the implementation of stringent climate policies. Calculation of actual capacities (exponential and vintage growth TE):


q_cap(ttot,regi,te2rlf(te,rlf))$(ttot.val ge cm_startyear)..
         vm_cap(ttot,regi,te,rlf)
         =e=
        (1 - vm_capEarlyReti(ttot,regi,te))
        *
        (sum(opTimeYr2te(te,opTimeYr)$(tsu2opTimeYr(ttot,opTimeYr) AND (opTimeYr.val gt 1) ),
                  pm_ts(ttot-(pm_tsu2opTimeYr(ttot,opTimeYr)-1)) 
                * pm_omeg(regi,opTimeYr+1,te)
                * vm_deltaCap(ttot-(pm_tsu2opTimeYr(ttot,opTimeYr)-1),regi,te,rlf)
            )
        +  pm_dt(ttot)/2 
         * pm_omeg(regi,"2",te)
         * vm_deltaCap(ttot,regi,te,rlf)
$ifthen setGlobal END2110
             - (pm_ts(ttot)* pm_omeg(regi,"11",te)
                  * 0.5 * vm_deltaCap(ttot,regi,te,rlf))$(ord(ttot) eq card(ttot))
$endif
        );

\[\begin{multline*} \sum_{teRe2rlfDetail(te,rlf)} vm\_capDistr(t,regi,te,rlf) = vm\_cap(t,regi,te,"1") \end{multline*}\]

Technological change is an important driver of the evolution of energy systems. For mature technologies, such as coal-fired power plants, the evolution of techno-economic parameters is prescribed exogenously. For less mature technologies with substantial potential for cost decreases via learning-bydoing, investment costs are determined via an endogenous one-factor learning curve approach that assumes floor costs. Calculation of cumulated capacities (learning technologies only):

\[\begin{multline*} vm\_capCum(ttot+1,regi,teLearn) = \sum_{te2rlf(teLearn,rlf)}\left( \left(\frac{pm\_ts(ttot) }{ 2 } \cdot vm\_deltaCap(ttot,regi,teLearn,rlf)\right) + \left(\frac{pm\_ts(ttot+1) }{ 2 } \cdot vm\_deltaCap(ttot+1,regi,teLearn,rlf)\right) \right) + vm\_capCum(ttot,regi,teLearn) \end{multline*}\]

Initial values for cumulated capacities (learning technologies only):

\[\begin{multline*} vm\_capCum(t0,regi,teLearn) = pm\_data(regi,"ccap0",teLearn) \end{multline*}\]

Additional equation for fuel shadow price calulation:

\[\begin{multline*} vm\_prodPe(t,regi,enty) = \sum_{pe2rlf(enty,rlf2)}vm\_fuExtr(t,regi,enty,rlf2)-\left(vm\_Xport(t,regi,enty)-\left(1-pm\_costsPEtradeMp(regi,enty)\right) \cdot vm\_Mport(t,regi,enty)\right)\$tradePe(enty) - \sum_{pe2rlf(enty2,rlf2)}\left( \left(pm\_fuExtrOwnCons\left(regi, enty, enty2\right) \cdot vm\_fuExtr(t,regi,enty2,rlf2)\right)\$\left(pm\_fuExtrOwnCons\left(regi, enty, enty2\right) gt 0\right)\right) \end{multline*}\]

Definition of resource constraints for renewable energy types:

\[\begin{multline*} pm\_dataren(regi,"maxprod",rlf,te) \geq \left( 1\$teRLDCDisp(te) + pm\_dataren(regi,"nur",rlf,te)\$\left(NOT teRLDCDisp(te)\right) \right) \cdot vm\_capFac(t,regi,te) \cdot vm\_capDistr(t,regi,te,rlf) \end{multline*}\]

Definition of competition for geographical potential for renewable energy types:

\[\begin{multline*} p\_datapot(regi,"limitGeopot",rlf,enty) \geq \sum_{te\$teReComp2pe(enty,te,rlf)}\left(\frac{vm\_capDistr(t,regi,te,rlf) }{ \left(\frac{pm\_data(regi,"luse",te)}{1000}\right)}\right) \end{multline*}\]

\[\begin{multline*} vm\_costTeCapital(t,regi,teLearn) = \left( fm\_dataglob("learnMult\_wFC",teLearn) \cdot \left( \left( \sum_{regi2} vm\_capCum(t,regi2,teLearn) + pm\_capCumForeign(t,regi,teLearn) \right) ^{ fm\_dataglob("learnExp\_wFC",teLearn) }\right) \right)\$\left( t.val le 2005 \right) + \left(\frac{ \left(2020 - t.val\right)}{15 } \cdot fm\_dataglob("learnMult\_wFC",teLearn) \cdot \left( \sum_{regi2} vm\_capCum(t,regi2,teLearn) + pm\_capCumForeign(t,regi,teLearn) \right) ^{ fm\_dataglob("learnExp\_wFC",teLearn) }+\frac{ \left(t.val - 2005\right)}{15 } \cdot pm\_data(regi,"learnMult\_wFC",teLearn) \cdot \left( \sum_{regi2} vm\_capCum(t,regi2,teLearn) + pm\_capCumForeign(t,regi,teLearn) \right) ^{ pm\_data(regi,"learnExp\_wFC",teLearn) }\right)\$\left( \left(t.val gt 2005\right) \& \left(t.val lt 2020\right) \right) + \left(\frac{ \left(pm\_ttot\_val(t) - 2020\right) }{ 30 } \cdot fm\_dataglob("learnMult\_wFC",teLearn) \cdot \left( \sum_{regi2} vm\_capCum(t,regi2,teLearn) + pm\_capCumForeign(t,regi,teLearn) \right) ^{ fm\_dataglob("learnExp\_wFC",teLearn) }+\frac{ \left(2050 - pm\_ttot\_val(t)\right) }{ 30 } \cdot pm\_data(regi,"learnMult\_wFC",teLearn) \cdot \left( \sum_{regi2} vm\_capCum(t,regi2,teLearn) + pm\_capCumForeign(t,regi,teLearn) \right) ^{ pm\_data(regi,"learnExp\_wFC",teLearn) }\right)\$\left( t.val ge 2020 \& t.val le 2050 \right) + \left( fm\_dataglob("learnMult\_wFC",teLearn) \cdot \left(\sum_{regi2} vm\_capCum(t,regi2,teLearn) + pm\_capCumForeign(t,regi,teLearn) \right) ^{fm\_dataglob("learnExp\_wFC",teLearn) }\right)\$\left(t.val gt 2050\right) + pm\_data(regi,"floorcost",teLearn) \end{multline*}\]

EMF27 limits on fluctuating renewables, only turned on for special EMF27 and AWP 2 scenarios, not for SSP

\[\begin{multline*} vm\_prodSe(t,regi,"pebiolc","sesobio","biotrmod") - \sum \left(in\$sameAs("fesob",in), vm\_cesIO(t,regi,in)\right) - \sum \left(fe2es(entyFe,esty,teEs)\$buildMoBio(esty), vm\_demFeForEs(t,regi,entyFe,esty,teEs) \right) \leq \left(2 + max\left(0,min\left(\frac{1,\left( 2100 - pm\_ttot\_val(t)\right) }{ \left( 2100 - 2020 \right)}\right)\right) \cdot 3\right) !! 5 in 2020 and 2 in 2100 \cdot vm\_prodSe(t,regi,"pecoal","sesofos","coaltr") \end{multline*}\]

Emissions result from primary to secondary energy transformation, from secondary to final energy transformation (some air pollutants), or transformations within the chain of CCS steps (Leakage).

\[\begin{multline*} vm\_emiTeDetail(t,regi,enty,enty2,te,enty3) = \sum_{emi2te(enty,enty2,te,enty3)}\left( \sum_{pe2se(enty,enty2,te)}\left( pm\_emifac(t,regi,enty,enty2,te,enty3) \cdot vm\_demPE(t,regi,enty,enty2,te) \right) + \sum_{se2fe(enty,enty2,te)}\left( pm\_emifac(t,regi,enty,enty2,te,enty3) \cdot vm\_prodFE(t,regi,enty,enty2,te) \right) + \sum_{ccs2Leak(enty,enty2,te,enty3),teCCS2rlf(te,rlf)}\left( pm\_emifac(t,regi,enty,enty2,te,enty3) \cdot vm\_co2CCS(t,regi,enty,enty2,te,rlf) \right) \right) \end{multline*}\]

Total energy-emissions:

\[\begin{multline*} vm\_emiTe(t,regi,enty) = !! emissions from fuel combustion \sum_{emi2te(enty2,enty3,te,enty)}\left( vm\_emiTeDetail(t,regi,enty2,enty3,te,enty) \right) !! emissions from non-conventional fuel extraction + \sum_{emi2fuelMine(enty,enty2,rlf)}\left( p\_cint(regi,enty,enty2,rlf) \cdot vm\_fuExtr(t,regi,enty2,rlf) \right)\$\left( c\_cint\_scen eq 1 \right) !! emissions from conventional fuel extraction + \sum_{\left(pe2rlf(enty3,rlf2),enty2\right)\$\left( pm\_fuExtrOwnCons(regi,enty,enty2) gt 0 \right)}\left( p\_cintraw(enty2) \cdot pm\_fuExtrOwnCons(regi,enty2,enty3) \cdot vm\_fuExtr(t,regi,enty3,rlf2) \right) !! Industry CCS emissions -\frac{ \sum_{emiMac2mac(emiInd37\_fuel,enty2)}\left( vm\_emiIndCCS(t,regi,emiInd37\_fuel) \right)\$ sameas(enty,"co2") !! Valve from cco2 capture step, to mangage if capture capacity and CCU}{CCS !! capacity don't have the same lifetime }+ v\_co2capturevalve(t,regi)\$ sameas(enty,"co2") !! CO2 from short-term CCU + \sum_{teCCU2rlf(te2,rlf)}\left( vm\_co2CCUshort(t,regi,"cco2","ccuco2short",te2,rlf) \right) \end{multline*}\]

Mitigation options that are independent of energy consumption are represented using marginal abatement cost (MAC) curves, which describe the percentage of abated emissions as a function of the costs. Baseline emissions are obtained by three different methods: by source (via emission factors), by econometric estimate, and exogenous. Emissions are calculated as baseline emissions times (1 - relative emission reduction). In case of CO2 from landuse (co2luc), emissions can be negative. To treat these emissions in the same framework, we subtract the minimal emission level from baseline emissions. This shift factor is then added again when calculating total emissions. The ndogenous baselines of non-energy emissions are calculated in the following equation:

\[\begin{multline*} vm\_macBase(t,regi,enty) = \sum_{emi2fuel(enty2,enty)}\left( p\_efFossilFuelExtr(regi,enty2,enty) \cdot \sum_{pe2rlf(enty2,rlf)} vm\_fuExtr(t,regi,enty2,rlf) \right)\$ emiFuEx(enty) + \left( p\_macBaseMagpie(t,regi,enty) + p\_efFossilFuelExtr(regi,"pebiolc","n2obio") \cdot vm\_fuExtr(t,regi,"pebiolc","1") \right)\$ sameas(enty,"n2ofertin") \end{multline*}\]

Total non-energy emissions:

\[\begin{multline*} vm\_emiMacSector(t,regi,enty) = \left( vm\_macBase(t,regi,enty) \cdot \sum_{emiMac2mac(enty,enty2)}\left( 1 - \left(pm\_macSwitch(enty) \cdot pm\_macAbatLev(t,regi,enty2)\right) \right) \right)\$\left( NOT sameas(enty,"co2cement\_process") \right) + \left( vm\_macBaseInd(t,regi,enty,"cement") - vm\_emiIndCCS(t,regi,enty) \right)\$ sameas(enty,"co2cement\_process") + p\_macPolCO2luc(t,regi)\$ sameas(enty,"co2luc") \end{multline*}\]

\[\begin{multline*} vm\_emiMac(t,regi,emiMac) = \sum_{emiMacSector2emiMac(emiMacSector,emiMac)}\left( vm\_emiMacSector(t,regi,emiMacSector) \right) \end{multline*}\]

Total regional emissions are the sum of emissions from technologies, MAC-curves, CDR-technologies and emissions that are exogenously given for REMIND.

\[\begin{multline*} vm\_emiAll(t,regi,enty) = vm\_emiTe(t,regi,enty) + vm\_emiMac(t,regi,enty) + vm\_emiCdr(t,regi,enty) + pm\_emiExog(t,regi,enty) \end{multline*}\]

Total global emissions are calculated for each GHG emission type and links the energy system to the climate module.

\[\begin{multline*} vm\_emiAllGlob(t,enty) = \sum_{regi}\left( vm\_emiAll(t,regi,enty) + pm\_emissionsForeign(t,regi,enty) \right) \end{multline*}\]

Total regional emissions in CO2 equivalents that are part of the climate policy are computed based on regional GHG emissions from different sectors(energy system, non-energy system, exogenous, CDR technologies).

\[\begin{multline*} vm\_co2eq(ttot,regi) = vm\_emiAll(ttot,regi,"co2") + \left(s\_tgn\_2\_pgc \cdot vm\_emiAll(ttot,regi,"n2o") + s\_tgch4\_2\_pgc \cdot vm\_emiAll(ttot,regi,"ch4")\right) \$\left(cm\_multigasscen eq 2 or cm\_multigasscen eq 3\right) - vm\_emiMacSector(ttot,regi,"co2luc") \$\left(cm\_multigasscen eq 3\right) \end{multline*}\]

Total global emissions in CO2 equivalents that are part of the climate policy also take into account foreign emissions.

\[\begin{multline*} vm\_co2eqGlob(t) = \sum_{regi}\left( vm\_co2eq(t,regi) + pm\_co2eqForeign(t,regi)\right) \end{multline*}\]

Linking GHG emissions to tradable emission permits.

\[\begin{multline*} vm\_co2eq(t,regi) + vm\_Xport(t,regi,"perm") - vm\_Mport(t,regi,"perm") + vm\_banking(t,regi) \leq vm\_perm(t,regi) \end{multline*}\]

\[\begin{multline*} v\_co2eqCum(regi) = \sum_{ttot\$\left(ttot.val lt sm\_endBudgetCO2eq and ttot.val gt s\_t\_start\right)}\left( pm\_ts(ttot) \cdot vm\_co2eq(ttot,regi) \right) + \sum_{ttot\$\left(ttot.val eq sm\_endBudgetCO2eq or ttot.val eq s\_t\_start\right)}\left(\frac{ pm\_ts(ttot) }{ 2 } \cdot vm\_co2eq(ttot,regi) \right) \end{multline*}\]

\[\begin{multline*} \sum_{regi} v\_co2eqCum(regi) \leq \sum_{regi} pm\_budgetCO2eq(regi) \end{multline*}\]

Definition of carbon capture :

\[\begin{multline*} \sum_{teCCS2rlf(te,rlf)}vm\_co2capture(t,regi,enty,enty2,te,rlf) = \sum_{emi2te(enty3,enty4,te2,enty)}\left( vm\_emiTeDetail(t,regi,enty3,enty4,te2,enty) \right) + \sum_{teCCS2rlf(te,rlf)}\left( vm\_ccs\_cdr(t,regi,enty,enty2,te,rlf) \right) + \sum_{emiInd37}\left( vm\_emiIndCCS(t,regi,emiInd37) \right) \end{multline*}\]

Definition of splitting of captured CO2 to CCS, CCU and a valve (the valve accounts for different lifetimes of capture, CCS and CCU technologies s.t. extra capture capacities of CO2 capture can release CO2 directly to the atmosphere)

\[\begin{multline*} \sum_{teCCS2rlf(te,rlf)} vm\_co2capture(t,regi,"cco2","ico2",te,rlf) = \sum_{teCCS2rlf(te,rlf)} vm\_co2CCS(t,regi,"cco2","ico2",te,rlf) + \sum_{teCCU2rlf(te,rlf)} vm\_co2CCUshort(t,regi,"cco2","ccuco2short",te,rlf) + v\_co2capturevalve(t,regi) \end{multline*}\]

Definition of the CCS transformation chain:

\[\begin{multline*} \left(1-pm\_emifac(t,regi,enty,enty2,te,"co2")\right) \cdot vm\_co2CCS(t,regi,enty,enty2,te,rlf) = vm\_co2CCS(t,regi,enty2,enty3,te2,rlf) \end{multline*}\]

\[\begin{multline*} \sum_{ttot \$\left(ttot.val ge 2005\right)}\left( pm\_ts(ttot) \cdot vm\_co2CCS(ttot,regi,enty,"ico2",te,rlf)\right) \leq pm\_dataccs(regi,"quan",rlf) \end{multline*}\]

Emission constraint on SO2 after 2050:

\[\begin{multline*} vm\_emiTe(ttot+1,regi,"so2") \leq vm\_emiTe(ttot,regi,"so2") \end{multline*}\]

\[\begin{multline*} vm\_emiTe(ttot+1,regi,"co2") \leq vm\_emiTe(ttot,regi,"co2") \end{multline*}\]

\[\begin{multline*} v\_adjFactor(ttot,regi,te) = \frac{ \left(\frac{ \left(\sum_{te2rlf(te,rlf)}vm\_deltaCap(ttot,regi,te,rlf) - \sum_{te2rlf(te,rlf)}vm\_deltaCap(ttot-1,regi,te,rlf)\right)}{\left(pm\_ttot\_val(ttot)-pm\_ttot\_val(ttot-1)\right) }\right)^{2} }{\left( \sum_{te2rlf(te,rlf)}vm\_deltaCap(ttot-1,regi,te,rlf) + p\_adj\_seed\_reg(ttot,regi) \cdot p\_adj\_seed\_te(ttot,regi,te) + p\_adj\_deltacapoffset("2010",regi,te)\$\left(ttot.val eq 2010\right) + p\_adj\_deltacapoffset("2015",regi,te)\$\left(ttot.val eq 2015\right) \right)} \end{multline*}\]

The use of early retirement is restricted by the following equations:

\[\begin{multline*} vm\_capEarlyReti(ttot+1,regi,te) \geq vm\_capEarlyReti(ttot,regi,te) \end{multline*}\]

\[\begin{multline*} vm\_capEarlyReti(ttot+1,regi,te) \leq vm\_capEarlyReti(ttot,regi,te) + \left(pm\_ttot\_val(ttot+1)-pm\_ttot\_val(ttot)\right) \cdot \left(cm\_earlyreti\_rate + p\_earlyreti\_adjRate(regi,te)\$\left(ttot.val lt 2035\right) + 0.05\$\left(sameas(te,"biodiesel") or sameas\left(te, "bioeths"\right)\right)\right) \end{multline*}\]

\[\begin{multline*} vm\_costEnergySys(ttot,regi) = \left( v\_costFu(ttot,regi) + v\_costOM(ttot,regi) + v\_costInv(ttot,regi) \right) + \sum_{emiInd37} vm\_IndCCSCost(ttot,regi,emiInd37) + pm\_CementDemandReductionCost(ttot,regi) \end{multline*}\]

Investment equation for end-use capital investments (energy service layer):

\[\begin{multline*} vm\_esCapInv(ttot,regi,teEs) = \sum \left(fe2es(entyFe,esty,teEs), pm\_esCapCost(ttot,regi,teEs) \cdot v\_prodEs(ttot,regi,entyFe,esty,teEs) \right) \end{multline*}\]

Limit electricity use for fehes to 1/4th of total electricity use:

\[\begin{multline*} \frac{ 1}{4 } \cdot vm\_usableSe(t,regi,"seel") \geq - vm\_prodSe(t,regi,"pegeo","sehe","geohe") \cdot pm\_prodCouple(regi,"pegeo","sehe","geohe","seel") \end{multline*}\]

Requires minimum share of liquids from oil in total liquids of 5%:

\[\begin{multline*} \sum_{pe2se("peoil",enty2,te)\$sameas(te,"refliq") }\left( vm\_prodSe(t,regi,"peoil",enty2,te) \right) \geq 0.05 \cdot \sum_{se2fe(enty,enty2,te)\$\left(sameas(te,"tdfoshos") OR sameas(te,"tdfospet") OR sameas(te,"tdfosdie") \right)}\left( vm\_demSe(t,regi,enty,enty2,te) \right) \end{multline*}\]

PE Historical Capacity:

\[\begin{multline*} \sum_{te\$pe2se(entyPe,entySe,te)}\left( \sum\left(te2rlf(te,rlf), vm\_cap(t,regi,te,rlf)\right) \right) \geq 0.9 \cdot p\_PE\_histCap(t,regi,entyPe,entySe) \end{multline*}\]


...                        data
lines 7 - 9 repeat for each region
$offtext
put " 24" /;

Limitations There are no known limitations.

Definitions

Objects

Sets

Authors

See Also

01_macro, 02_welfare, 04_PE_FE_parameters, 05_initialCap, 11_aerosols, 15_climate, 16_downscaleTemperature, 20_growth, 21_tax, 22_subsidizeLearning, 23_capitalMarket, 24_trade, 26_agCosts, 29_CES_parameters, 30_biomass, 31_fossil, 32_power, 33_CDR, 35_transport, 36_buildings, 37_industry, 38_stationary, 39_CCU, 40_techpol, 41_emicapregi, 42_banking, 45_carbonprice, 47_regipol, 50_damages, 51_internalizeDamages, 70_water, 80_optimization, 81_codePerformance

References