REMIND - REgional Model of INvestments and Development

3.0.0

created with goxygen 1.2.4

(core)

Description

Interfaces

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_emiTargetESR
(ttot, all_regi)
CO2 or GHG Effort Sharing emissions target per region \(GtC\)
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_pebiolc_demandmag
(tall, all_regi)
Production of lignocellulosic purpose grown bioenergy from MAgPIE \(TWa\)
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_abortOnConsecFail number of iterations of consecutive failures of one region after which to abort
cm_ARIADNE_FeShareBounds switch for minimum share of liquids and gases for industry needed for the ARIADNE project
cm_ariadne_VRECapFac_adj switch for enabling increase of VRE capacity factors for wind and solar PV in Germany until 2040 in line with ARIADNE assumptions
cm_bioenergy_tax level of bioenergy sustainability tax in fraction of bioenergy price
cm_bioenergymaxscen choose bound on global pebiolc production excluding residues
cm_BioImportTax_EU factor for EU bioenergy import tax
cm_biolc_tech_phaseout Switch that allows for a full phaseout of all bioenergy technologies globally
cm_bioprod_histlim regional parameter to limit biomass (pebiolc.1) production to a multiple of the 2015 production
cm_BioSupply_Adjust_EU factor for scaling sub-EU bioenergy supply curves
cm_biotrade_phaseout switch for phaseing out biomass trade in the respective regions by 2030
cm_build_AdjCostActive Activate adjustment cost to penalise inter-temporal variation of area-specific weatherisation demand and space cooling efficiency slope (only in putty)
cm_build_costDecayStart simplified logistic function end of full value (ex. 5% -> between 0 and 5% the function will have the value 1). \(\%\)
cm_build_H2costAddH2Inv additional h2 distribution costs for low diffusion levels (default value: 6.5$/kg = 0.2 $/Kwh)
cm_build_H2costDecayEnd simplified logistic function start of null value (ex. 10% -> after 10% the function will have the value 0). \(\%\)
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_CESMkup_build switch for setting markup cost to CES nodes in buildings
cm_CESMkup_ind switch for setting markup cost to CES nodes in industry
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_CO2TaxSectorMarkup CO2 tax markup in buildings or transport sector, a value of 0.5 means CO2 tax increased by 50%
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_damage_KWSE standard error for Kalkuhl & Wenz damages
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_deuCDRmax switch to limit maximum annual CDR amount in Germany in MtCO2 per y
cm_DiscRateScen Scenario for the implicit discount rate applied to the energy efficiency capital
cm_ElLim_b switch to set maximum share of electricity in FE buildings
cm_emiscen policy scenario choice
cm_EnSecScen switch for running an ARIADNE energy security scenario, introducing a tax on pegas in Germany from 2020 to 2050
cm_expoLinear_yearStart time at which carbon price increases lineraly instead of exponentially
cm_FEtax_trajectory_abs switch for setting the aboslute FE tax level explicitly from a given year onwards, before tax levels increases or decreases linearly to that value
cm_FEtax_trajectory_rel factor for scaling the FE tax level relative to cm_startyear from a given year onwards, before tax levels increases or decreases linearly to that value
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_H2targets switches on capacity targets for electrolysis in NDC techpol following national Hydrogen Strategies
cm_HeatLim_b switch to set maximum share of district heating in FE buildings
cm_import_EU EU switch for different scenarios of EU SE import assumptions
cm_IndCCSscen CCS for Industry
cm_indst_costDecayStart simplified logistic function end of full value (ex. 5% -> between 0 and 5% the simplified logistic function will have the value 1). \(\%\)
cm_indst_H2costAddH2Inv additional h2 distribution costs for low diffusion levels (default value: 3.25$kg = 0.1 $/kWh)
cm_indst_H2costDecayEnd simplified logistic function start of null value (ex. 10% -> between 10% and 100% the simplified logistic function will have the value 0). \(\%\)
cm_INNOPATHS_priceSensiBuild Price sensitivity of energy carrier choice in buildings
cm_iteration_max number of iterations, if optimization is set to negishi or testOneRegi; used in nash mode only with cm_nash_autoconvergence = 0
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_keep_presolve_gdxes save gdxes for all regions/solver tries/nash iterations for debugging
cm_limit_peur_scen limit total uranium production
cm_LimRock limit amount of rock spread each year \(Gt\)
cm_logitCal_markup_conv_b value to which logit calibration markup of standard fe2ue technologies in detailed buildings module converges to
cm_logitCal_markup_newtech_conv_b value to which logit calibration markup of new fe2ue technologies in detailed buildings module converges to
cm_multigasscen scenario on GHG portfolio to be included in permit trading scheme
cm_nash_autoconverge choice of nash convergence mode
cm_NDC_divergentScenario choose scenario about convergence of CO2eq prices in NDC realization of module 45_carbonprice
cm_NDC_version choose version year of NDC targets as well as conditional vs. unconditional targets
cm_noPeFosCCDeu switch to suppress Pe2Se Fossil Carbon Capture in Germany
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_postTargetIncrease carbon price increase per year after target is reached (euro per tCO2)
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_shSynGas lower bound on share of synthetic gases by 2045
cm_shSynTrans lower bound on share of synthetic fuels in all transport fuels by 2045
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_startIter_EDGET starting iteration of EDGE-T
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_tradbio_phaseout Switch that allows for a faster phase out of traditional biomass
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
cm_VRE_supply_assumptions default (0), optimistic (1), sombre (2), or bleak (3) assumptions on VRE supply
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_ccsinjecrate
(all_regi)
Regional CCS injection rate factor. 1/a.
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_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_delta_histCap
(tall, all_regi, all_te)
parameter to store data of historic capacity additions \(TW/yr\)
pm_demPeBio
(tall, all_regi)
Primary energy bioenergy demand from last iteration \(TWyr\)
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_extRegiEarlyRetiRate
(ext_regi)
regional early retirement rate (extended regions)
pm_fe2es
(tall, all_regi, all_teEs)
Conversion factor from final energies to energy services. Default is 1.
pm_fedemand
(tall, all_regi, all_in)
final energy demand
pm_FEPrice
(ttot, all_regi, all_enty, sector, emiMkt)
parameter to capture all FE prices across sectors and markets (tr$2005/TWa)
pm_FEPrice_iter
(iteration, ttot, all_regi, all_enty, sector, emiMkt)
parameter to capture all FE prices across sectors and markets (tr$2005/TWa) across iterations
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_histCap
(tall, all_regi, all_te)
historical installed capacity
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_macBaseMagpie
(tall, all_regi, all_enty)
baseline emissions from MAgPIE (type emiMacMagpie)
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_PEPrice
(ttot, all_regi, all_enty)
parameter to capture all PE prices (tr$2005/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_regiEarlyRetiRate
(ttot, all_regi, all_te)
regional early retirement rate (model native regions)
pm_ResidualCementDemand
(tall, all_regi)
reduction in cemend demand (and thus process emissions) due to climate policy \(0...1\)
pm_secBioShare
(ttot, all_regi, all_enty, emi_sectors)
share of biomass per carrier for each sector
pm_SEPrice
(ttot, all_regi, all_enty)
parameter to capture all SE prices (tr$2005/TWa)
pm_share_CCS_CCO2
(ttot, all_regi)
share of stored CO2 from total captured CO2
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_shfe_lo
(ttot, all_regi, all_enty, emi_sectors)
Final energy shares exogenous lower bounds per sector
pm_shfe_up
(ttot, all_regi, all_enty, emi_sectors)
Final energy shares exogenous upper bounds per sector
pm_shFeCes
(ttot, all_regi, all_enty, all_in, all_teEs)
Final energy shares for CES nodes
pm_shGasLiq_fe_lo
(ttot, all_regi, emi_sectors)
Final energy gases plus liquids shares exogenous lower bounds per sector
pm_shGasLiq_fe_up
(ttot, all_regi, emi_sectors)
Final energy gases plus liquids shares exogenous upper bounds per sector
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_tau_fe_sub
(ttot, all_regi, emi_sectors, all_enty)
subsidy path for final energy
pm_tau_fe_tax
(ttot, all_regi, emi_sectors, all_enty)
tax path for final energy
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_taxCO2eq_iterationdiff
(ttot, all_regi)
help parameter for iterative adjustment of taxes
pm_taxCO2eq_iterationdiff_tmp
(ttot, all_regi)
help parameter for iterative adjustment of taxes
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_taxCO2eqRegi
(tall, all_regi)
additional regional CO2 tax path 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_taxCO2eqSum
(tall, all_regi)
sum of pm_taxCO2eq, pm_taxCO2eqRegi, pm_taxCO2eqHist, pm_taxCO2eqSCC in T$/GtC = $/kgC. To get $/tCO2, multiply with 272 \(T\$/GtC\)
pm_taxemiMkt
(ttot, all_regi, all_emiMkt)
CO2 or CO2eq region and emission market specific emission tax
pm_taxemiMkt_iteration
(iteration, ttot, all_regi, all_emiMkt)
CO2 or CO2eq region and emission market specific emission tax per iteration
pm_temperatureImpulseResponseCO2
(tall, tall)
temperature impulse response to CO2 \(K/GtCO2\)
pm_ts
(tall)
(t_n+1 - t_n-1)/2 for a timestep t_n
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_balFe
(ttot, all_regi, all_enty, all_enty, all_te)
balance of final energy (fe)
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_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_globalBudget_dev actual level of global cumulated emissions budget divided by target budget
sm_mega_2_non mega to non
sm_tgch4_2_pgc conversion factor 100-yr GWP from TgCH4 to PgCeq
sm_tgn_2_pgc conversion factor 100-yr GWP from TgN to PgCeq
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_capTotal
(ttot, all_regi, all_enty, all_enty)
total capacity without technology differentation for technologies where there exists differentation \(TW\)
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_co2eqMkt
(ttot, all_regi, all_emiMkt)
total emissions per market measured in co2 equivalents ATTENTION: content depends on multigasscen. \(GtCeq\)
vm_costAddTeInv
(tall, all_regi, all_te, emi_sectors)
additional sector-specific investment cost of demand-side transformation
vm_costCESMkup
(ttot, all_regi, all_in)
CES markup cost to represent demand-side technology cost of end-use transformation \(trUSD/TWa\)
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_demFeSector
(ttot, all_regi, all_enty, all_enty, emi_sectors, all_emiMkt)
fe demand per sector and emission market. \(TWa\)
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_emiAllMkt
(tall, all_regi, all_enty, all_emiMkt)
total regional emissions for each emission market. \(GtC, Mt CH4, Mt N\)
vm_emiCdr
(ttot, all_regi, all_enty)
total (negative) emissions due to CDR technologies of each region. \(GtC\)
vm_emiCdrAll
(ttot, all_regi)
all CDR emissions
vm_emiCO2Sector
(ttot, all_regi, emi_sectors)
total CO2 emissions from individual sectors \(GtC\)
vm_emiFgas
(ttot, 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_emiTeMkt
(tall, all_regi, all_enty, all_emiMkt)
total energy-emissions of each region and emission market. \(GtC, Mt CH4, Mt N\)
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)
flexibility adjustment used for flexibility subsidy (tax) to emulate price changes of technologies which see lower-than-average (higher-than-average) elec. prices \(trUSD/TWa\)
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_prodEs
(ttot, all_regi, all_enty, all_esty, all_teEs)
Energy services (unit determined by conversion factor pm_fe2es).
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_taxrevimplFETax
(ttot, all_regi)
implicit efficiency directive target tax
vm_transpGDPscale
(ttot, all_regi)
dampening factor to align edge-t non-energy transportation costs with historical GDP data
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"
$include "./core/input/generisdata_trade.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_extRegiEarlyRetiRate(ext_regi)                    "regional early retirement rate (extended regions)" / %c_regi_earlyreti_rate% /
$IFTHEN.tech_earlyreti not "%c_tech_earlyreti_rate%" == "off"
p_techEarlyRetiRate(ext_regi,all_te)                 "Technology specific early retirement rate" / %c_tech_earlyreti_rate% /
$ENDIF.tech_earlyreti
pm_regiEarlyRetiRate(ttot,all_regi,all_te)                "regional early retirement rate (model native regions)"
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 starting from 2020 [GtCO2]"
pm_dataccs(all_regi,char,rlf)                               "maximum CO2 storage capacity using CCS technology. [GtC]"
pm_ccsinjecrate(all_regi)                                   "Regional CCS injection rate factor. 1/a."
p_extRegiccsinjecrateRegi(ext_regi)                         "Regional CCS injection rate factor. 1/a. (extended regions)"
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_regi,all_enty)                                 "Demand side emission factor of final energy carriers [MtCO2/EJ]"
pm_demPeBio(tall,all_regi)                                  "Primary energy bioenergy demand from last iteration [TWyr]"
pm_secBioShare(ttot,all_regi,all_enty,emi_sectors)           "share of biomass per carrier for each sector"
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"
;

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."
v_shfe(ttot,all_regi,all_enty,emi_sectors)           "share of final energy in sector total final energy [0..1]"
v_shGasLiq_fe(ttot,all_regi,emi_sectors)             "share of gases and liquids in sector final energy [0..1]"
vm_emiCdrAll(ttot,all_regi)                          "all CDR emissions"
vm_demFeForEs(ttot,all_regi,all_enty,all_esty,all_teEs)     "Final energy which will be used in the ES layer."
vm_prodEs(ttot,all_regi,all_enty,all_esty,all_teEs)          "Energy services (unit determined by conversion factor pm_fe2es)."
vm_transpGDPscale(ttot,all_regi)                            "dampening factor to align edge-t non-energy transportation costs with historical GDP data"  
vm_costCESMkup(ttot,all_regi,all_in)                                   "CES markup cost to represent demand-side technology cost of end-use transformation [trUSD/TWa]"
;

s_macChange                                           "maximum yearly increase of relative abatement in percentage points of maximum abatement. [0..1]"      /0.05/
sm_tgn_2_pgc                                           "conversion factor 100-yr GWP from TgN to PgCeq"
sm_tgch4_2_pgc                                         "conversion factor 100-yr GWP from TgCH4 to PgCeq"
s_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. [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/
s_ccsinjecrate                                        "CCS injection rate factor. [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_actualbudgetco2                                     "actual level of 2020-2100 cumulated emissions, including all CO2 for last iteration"
s_actualbudgetco2_last                                "actual level of 2020-2100 cumulated emissions for previous iteration" /0/
sm_globalBudget_dev                                   "actual level of global cumulated emissions budget divided by target budget"
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) + \sum_{sector2te\_addTDCost(sector,te)}\left( vm\_costAddTeInv(t,regi,te,sector) \right) + \sum_{in\$ppfen\_CESMkup(in)}\left( vm\_costCESMkup(t,regi,in) \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( s\_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) + vm\_Mport(t,regi,enty2) = \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) + vm\_Xport(t,regi,enty2) \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*}\]

\[\begin{multline*} vm\_prodFe(t,regi,entySe,entyFe,te) = \sum_{sector2emiMkt(sector,emiMkt),entyFE2sector(entyFE,sector)}\left( vm\_demFEsector(t,regi,entySE,entyFE,sector,emiMkt) \right) \end{multline*}\]

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

\[\begin{multline*} pm\_fe2es(t,regi,teEs) \cdot vm\_demFeForEs(t,regi,entyFe,esty,teEs) = vm\_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)} vm\_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) / 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*}\]

Calculation of total primary to secondary energy capacities Used for comfortably setting bounds on total capacity without technology differentiation.

\[\begin{multline*} vm\_capTotal(t,regi,entyPe,entySe) = \sum_{ pe2se\left(entyPe, entySe, te\right)}\left( vm\_cap(t,regi,te,"1")\right) \end{multline*}\]

CG: implementing simple exogenous wind offshore energy production

\[\begin{multline*} \sum_{rlf} vm\_deltaCap(t,regi,"windoff",rlf) \geq p\_shareWindOff(t) \cdot p\_shareWindPotentialOff2On(regi) \cdot 0.5 \cdot \sum_{rlf} vm\_deltaCap(t,regi,"wind",rlf) \end{multline*}\]

\[\begin{multline*} \sum_{rlf} vm\_deltaCap(t,regi,"windoff",rlf) \leq p\_shareWindOff(t) \cdot p\_shareWindPotentialOff2On(regi) \cdot 2 \cdot \sum_{rlf} vm\_deltaCap(t,regi,"wind",rlf) \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) + pm\_cesdata(t,regi,in,"offset\_quantity")\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_{emiMkt} v\_emiTeDetailMkt(t,regi,enty,enty2,te,enty3,emiMkt) \end{multline*}\]

Total energy-emissions:

\[\begin{multline*} vm\_emiTe(t,regi,enty) = \sum_{emiMkt} vm\_emiTeMkt(t,regi,enty,emiMkt) \end{multline*}\]

Emissions per market 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*} v\_emiTeDetailMkt(t,regi,enty,enty2,te,enty3,emiMkt) = \sum_{emi2te(enty,enty2,te,enty3)}\left( \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_{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)\$sameas(emiMkt,"ETS") + \sum_{se2fe(enty,enty2,te)}\left( pm\_emifac(t,regi,enty,enty2,te,enty3) \cdot \sum_{sector\$\left(entyFe2Sector(enty2,sector) \& sector2emiMkt(sector,emiMkt)\right)} vm\_demFeSector(t,regi,enty,enty2,sector,emiMkt) \right) \right) \end{multline*}\]

energy emissions from fuel extraction

\[\begin{multline*} v\_emiEnFuelEx(t,regi,enty) = \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) + \left(\sum_{pe2rlf(enty3,rlf2)}\left( \sum_{enty2\$peFos(enty2)}\left( \left(p\_cintraw(enty2) \cdot pm\_fuExtrOwnCons\left(regi, enty2, enty3\right) \cdot vm\_fuExtr(t,regi,enty3,rlf2)\right)\$\left(pm\_fuExtrOwnCons\left(regi, enty2, enty3\right) gt 0\right)\right)\right)\right)\$sameas("co2",enty) \end{multline*}\]

Total energy-emissions per emission market, region and timestep

\[\begin{multline*} vm\_emiTeMkt(t,regi,enty,emiMkt) = \sum_{emi2te(enty2,enty3,te,enty)}\left( v\_emiTeDetailMkt(t,regi,enty2,enty3,te,enty,emiMkt) \right) + v\_emiEnFuelEx(t,regi,enty)\$sameas(emiMkt,"ETS") - \left( \sum_{emiMac2mac(emiInd37\_fuel,enty2)}\left( vm\_emiIndCCS(t,regi,emiInd37\_fuel) \right)\$ sameas(enty,"co2") \right)\$sameas(emiMkt,"ETS") + \left( v\_co2capturevalve(t,regi)\$ sameas(enty,"co2") \right)\$sameas(emiMkt,"ETS") + \sum_{teCCU2rlf(te2,rlf)}\left( vm\_co2CCUshort(t,regi,"cco2","ccuco2short",te2,rlf)\$ sameas(enty,"co2") \right)\$sameas(emiMkt,"ETS") \end{multline*}\]

Total emissions

\[\begin{multline*} vm\_emiAllMkt(t,regi,emi,emiMkt) = vm\_emiTeMkt(t,regi,emi,emiMkt) + \sum_{emiMacSector2emiMac\left(emiMacSector,emiMac(emi)\right)\$macSector2emiMkt(emiMacSector,emiMkt)}\left( vm\_emiMacSector(t,regi,emiMacSector) \right) + vm\_emiCdr(t,regi,emi)\$\left(sameas(emi,"co2") \& sameas(emiMkt,"ETS")\right) + pm\_emiExog(t,regi,emi)\$sameas(emiMkt,"other") \end{multline*}\]

Sectoral energy-emissions used for taxation markup with cm_CO2TaxSectorMarkup

\[\begin{multline*} vm\_emiCO2Sector(t,regi,sector) = \sum_{se2fe(entySe,entyFe,te)}\left( \sum_{emiMkt\$sector2emiMkt(sector,emiMkt)}\left( pm\_emifac(t,regi,entySe,entyFe,te,"co2") \cdot vm\_demFeSector(t,regi,entySe,entyFe,sector,emiMkt) \right) \right) - \sum_{se2fe(entySe,entyFe,te)}\left( pm\_emifac(t,regi,entySe,entyFe,te,"co2") \cdot vm\_demFeSector(t,regi,entySe,entyFe,sector,"other") \right)\$\left(sameAs\left(sector, "trans"\right)\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). If coupled to MAgPIE pm_macBaseMagpie contains all N2O landuse emissions including n2o from biomass production and p_efFossilFuelExtr(regi,“pebiolc”,“n2obio”) is zero then. If running standalone pm_macBaseMagpie does not include n2o from biomass but it is added here. 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 endogenous 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( pm\_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*}\]

All CDR emissions summed up

\[\begin{multline*} vm\_emiCdrAll(t,regi) = \left(\sum_{emiBECCS2te(enty,enty2,te,enty3)}vm\_emiTeDetail(t,regi,enty,enty2,te,enty3) + \sum_{teCCS2rlf(te,rlf)} vm\_ccs\_cdr(t,regi,"cco2","ico2","ccsinje",rlf)\right) \cdot \left(\frac{\sum_{teCCS2rlf(te,rlf)}\left( vm\_co2CCS(t,regi,"cco2","ico2",te,rlf)\right) }{ \left(\sum_{teCCS2rlf(te,rlf)}\left( vm\_co2capture(t,regi,"cco2","ico2","ccsinje",rlf)\right)+sm\_eps\right)}\right) - p\_macBaseMagpieNegCo2(t,regi) - \left(vm\_emiCdr(t,regi,"co2") + \sum_{teCCS2rlf(te,rlf)} vm\_ccs\_cdr(t,regi,"cco2","ico2","ccsinje",rlf)\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) = \sum_{emiMkt} vm\_co2eqMkt(ttot,regi,emiMkt) \end{multline*}\]

\[\begin{multline*} vm\_co2eqMkt(ttot,regi,emiMkt) = vm\_emiAllMkt(ttot,regi,"co2",emiMkt) + \left(sm\_tgn\_2\_pgc \cdot vm\_emiAllMkt(ttot,regi,"n2o",emiMkt) + sm\_tgch4\_2\_pgc \cdot vm\_emiAllMkt(ttot,regi,"ch4",emiMkt)\right) \$\left(cm\_multigasscen eq 2 or cm\_multigasscen eq 3\right) - vm\_emiMacSector(ttot,regi,"co2luc") \$\left(\left(cm\_multigasscen eq 3\right) \& sameas(emiMkt,"other")\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 pm\_regiEarlyRetiRate(ttot,regi,te) \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)\$entyFeTrans(entyFe), vm\_transpGDPscale(ttot,regi) \cdot pm\_esCapCost(ttot,regi,teEs) \cdot vm\_prodEs(ttot,regi,entyFe,esty,teEs) \right) + \sum \left(fe2es(entyFe,esty,teEs)\$\left(notentyFeTrans(entyFe)\right), pm\_esCapCost(ttot,regi,teEs) \cdot vm\_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 fossil 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*}\]

\[\begin{multline*} \sum_{te\$pe2se(entyPe,entySe,te)}\left( \sum\left(te2rlf(te,rlf), vm\_cap(t,regi,te,rlf)\right) \right) \leq 1.5 \cdot p\_PE\_histCap("2015",regi,entyPe,entySe) + 0.01 \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*}\]

Share of final energy carrier in sector

\[\begin{multline*} v\_shfe(t,regi,entyFe,sector) \cdot \sum_{emiMkt\$sector2emiMkt(sector,emiMkt)}\left( \sum_{se2fe(entySe,entyFe2,te)\$entyFe2Sector(entyFe2,sector)}\left( vm\_demFeSector(t,regi,entySe,entyFe2,sector,emiMkt)\right)\right) = \sum_{emiMkt\$sector2emiMkt(sector,emiMkt)}\left( \sum\left(se2fe(entySe,entyFe,te), vm\_demFeSector(t,regi,entySe,entyFe,sector,emiMkt)\right)\right) \end{multline*}\]

\[\begin{multline*} v\_shGasLiq\_fe(t,regi,sector) \cdot \sum_{emiMkt\$sector2emiMkt(sector,emiMkt)}\left( \sum_{se2fe(entySe,entyFe,te)\$entyFe2Sector(entyFe,sector)}\left( vm\_demFeSector(t,regi,entySe,entyFe,sector,emiMkt)\right)\right) = \sum_{emiMkt\$sector2emiMkt(sector,emiMkt)}\left( \sum_{se2fe(entySe,entyFe,te)\$\left(SAMEAS(entyFe,"fegas") OR SAMEAS(entyFe,"fehos")\right)}\left( vm\_demFeSector(t,regi,entySe,entyFe,sector,emiMkt)\right)\right) \end{multline*}\]

\[\begin{multline*} vm\_prodFe(t,regi,"sehe","fehes","tdhes") \leq \%cm\_INNOPATHS\_sehe\_upper\% \cdot vm\_prodFe("2020",regi,"sehe","fehes","tdhes") \end{multline*}\]

H2 t&d capacities in buildings and industry to avoid switching behavior between both sectors

\[\begin{multline*} vm\_cap(t,regi,"tdh2i","1") + vm\_cap(t,regi,"tdh2b","1") = vm\_cap(t,regi,"tdh2s","1") \end{multline*}\]

\[\begin{multline*} \sum_{sector2emiMkt(sector,emiMkt)}\left( vm\_demFeSector(t,regi,"seh2","feh2s",sector,emiMkt)\right) \leq \sum_{te2sectortdH2(te,sector)}\left( \sum\left(teFe2rlfH2BI(te,rlf), vm\_capFac(t,regi,te) \cdot vm\_cap(t,regi,te,rlf)\right)\right) \end{multline*}\]

Enforce historical data biomass share per carrier in sector final energy for buildings and industry (+- 2%)

\[\begin{multline*} \left(pm\_secBioShare(t,regi,entyFe,sector) + 0.02\right) \cdot \sum_{\left(entySe,te\right)\$se2fe(entySe,entyFe,te)} vm\_demFeSector(t,regi,entySe,entyFe,sector,emiMkt) \geq \sum_{\left(entySeBio,te\right)\$se2fe(entySeBio,entyFe,te)} vm\_demFeSector(t,regi,entySeBio,entyFe,sector,emiMkt) \end{multline*}\]

\[\begin{multline*} \left(pm\_secBioShare(t,regi,entyFe,sector) - 0.02\right) \cdot \sum_{\left(entySe,te\right)\$se2fe(entySe,entyFe,te)} vm\_demFeSector(t,regi,entySe,entyFe,sector,emiMkt) \leq \sum_{\left(entySeBio,te\right)\$se2fe(entySeBio,entyFe,te)} vm\_demFeSector(t,regi,entySeBio,entyFe,sector,emiMkt) \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, 39_CCU, 40_techpol, 41_emicapregi, 42_banking, 45_carbonprice, 46_carbonpriceRegi, 47_regipol, 50_damages, 51_internalizeDamages, 70_water, 80_optimization, 81_codePerformance

References