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. |
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_flex_tax | switch for enabling flexibility tax | |
cm_FlexTaxFeedback | switch deciding whether flexibility tax feedback on buildlings and industry electricity prices is 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_GDPcovid | GDP correction for covid | |
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 | |
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_PriceDurSlope_elh2 | slope of price duration curve of electrolysis | |
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_shSynTrans | lower bound on share of synthetic fuels in all transport fuels by 2035 | |
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_TaxConvCheck | switch for enabling tax convergence check in nash mode | |
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_calibrate_eff_scale (all_in, all_in, eff_scale_par) |
parameters for scaling efficiencies in CES calibration | |
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_fedemand | final energy demand | |
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_priceSeel (ttot, all_regi) |
parameter with electricity price from last iteration (unit: trUSD/TWa) | |
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_flexAdj (tall, all_regi, all_te) |
level of flexibility tax which serves to adjust electricity prices for flexible and inflexible technologies that demand electricity | |
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\) |
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;
v_shGreenH2(ttot,all_regi) "share of green hydrogen in all hydrogen by 2030 [0..1]"
v_shBioTrans(ttot,all_regi) "Share of biofuels in transport liquids from 2025 onwards. Value between 0 and 1."
vm_demFeForEs(ttot,all_regi,all_enty,all_esty,all_teEs) "Final energy which will be used in the ES layer."
v_prodEs(ttot,all_regi,all_enty,all_esty,all_teEs) "Energy services (unit determined by conversion factor pm_fe2es)."
;
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 costs from 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( pm\_dataren(regi,"nur",rlf,te) \cdot vm\_capFac(t,regi,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) / 2
* pm_omeg(regi,"11",te)
* 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) \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) = \sum_{emi2te(enty2,enty3,te,enty)}\left( vm\_emiTeDetail(t,regi,enty2,enty3,te,enty) \right) + \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) + \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) - \sum_{emiMac2mac(emiInd37\_fuel,enty2)}\left( vm\_emiIndCCS(t,regi,emiInd37\_fuel) \right)\$ sameas(enty,"co2") + v\_co2capturevalve(t,regi)\$ sameas(enty,"co2") + \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) + p\_adj\_deltacapoffset("2020",regi,te)\$\left(ttot.val eq 2020\right) + p\_adj\_deltacapoffset("2025",regi,te)\$\left(ttot.val eq 2025\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*}\]
Share of green hydrogen in all hydrogen.
\[\begin{multline*} \sum_{se2se("seel","seh2",te)} vm\_prodSe(t,regi,"seel","seh2",te) = \left( \sum_{pe2se(entyPe,"seh2",te)} vm\_prodSe(t,regi,entyPe,"seh2",te) + \sum_{se2se(entySe,"seh2",te)} vm\_prodSe(t,regi,entySe,"seh2",te) \right) \cdot v\_shGreenH2(t,regi) \end{multline*}\]
Share of biofuels in transport liquids
\[\begin{multline*} \sum_{se2fe(entySe,entyFeTrans,te)\$seAgg2se("all\_seliq",entySe)} vm\_prodFe(t,regi,entySe,entyFeTrans,te) \cdot v\_shBioTrans(t,regi) = \sum_{se2fe("seliqbio",entyFeTrans,te)} vm\_prodFe(t,regi,"seliqbio",entyFeTrans,te) \end{multline*}\]
... data
lines 7 - 9 repeat for each region
$offtext
put " 24" /;
Limitations There are no known limitations.
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