Newer
Older
*** | (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK)
*** | authors, and contributors see CITATION.cff file. This file is part
*** | of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of
*** | AGPL-3.0, you are granted additional permissions described in the
*** | REMIND License Exception, version 1.0 (see LICENSE file).
*** | Contact: remind@pik-potsdam.de
*** SOF ./core/declarations.gms
*LB* declaration of parameters, variables and equations
***----------------------------------------------------------------------------------------
*** PARAMETERS
***----------------------------------------------------------------------------------------
parameters
***----------------------------------------------------------------------------------------
***--------------------------------------------------MACRO module--------------------------
***prices
pm_pvp(ttot,all_enty) "Price on commodity markets",
p_pvpRef(ttot,all_enty) "Price on commodity markets - imported from REF gdx",
pm_pvpRegi(ttot,all_regi,all_enty) "prices of traded commodities - regional. only used for permit trade"
p_pvpRegiBeforeStartYear(ttot,all_regi,all_enty) "prices of traded commodities before start year - regional. only used for permit trade"
pm_pricePerm(ttot) "permit price in special case when the marginal is only found in box module"
p_share(ttot,all_regi,all_in,all_in) "share of production factors"
pm_share_trans(tall,all_regi) "transportation share"
pm_gdp_gdx(tall,all_regi) "GDP path from gdx, updated iteratively."
p_inv_gdx(tall,all_regi) "macro-investments path from gdx, updated iteratively."
pm_taxCO2eq(ttot,all_regi) "CO2 tax path in T$/GtC = $/kgC. To get $/tCO2, multiply with 272 [T$/GtC]"
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_taxCO2eq_iteration(iteration,ttot,all_regi) "save CO2eq tax used in iteration"
p_taxCO2eq_iterationdiff(ttot,all_regi) "help parameter for iterative adjustment of taxes"
p_taxCO2eq_iterationdiff_tmp(ttot,all_regi) "help parameter for iterative adjustment of taxes"
o_taxCO2eq_iterDiff_Itr(iteration,all_regi) "track p_taxCO2eq_iterationdiff over iterations"
pm_emissionsForeign(tall,all_regi,all_enty) "total emissions of other regions (nash relevant)"
pm_co2eqForeign(tall,all_regi) "emissions, which are part of the climate policy, of other regions (nash relevant)"
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_capital_lifetime_exp(all_regi,all_in) "number of years for which 25% of the CES capital stocks remains"
f_pop(tall,all_regi,all_POPscen) "population data for all possible scenarios"
pm_pop(tall,all_regi) "population data [bn people]"
pm_gdp(tall,all_regi) "GDP data [trn US$ 2005]"
p_developmentState(tall,all_regi) "level of development based on GDP per capita"
f_lab(tall,all_regi,all_POPscen) "labour data for all possible scenarios"
pm_lab(tall,all_regi) "data for labour [bn people]"
pm_esCapCost(tall,all_regi,all_teEs) "Capital energy cost per unit of consumption for end-use capital (energy service layer)"
pm_cesdata_sigma(ttot,all_in) "elasticities of substitution"
o_diff_to_Budg(iteration) "Difference between actual CO2 budget and target CO2 budget"
o_totCO2emi_peakBudgYr(iteration) "Total CO2 emissions in the peakBudgYr"
o_peakBudgYr_Itr(iteration) "Year in which the CO2 budget is supposed to peak. Is changed in iterative_target_adjust = 9"
o_factorRescale_taxCO2_afterPeakBudgYr(iteration) "Multiplicative factor for rescaling the CO2 price in the year after peakBudgYr - only needed if flip-flopping of peakBudgYr occurs"
Robert Pietzcker
committed
o_delay_increase_peakBudgYear(iteration) "Counter that tracks if flip-flopping of peakBudgYr happened. Starts an inner loop to try and overcome this"
o_reached_until2150pricepath(iteration) "Counter that tracks if the inner loop of increasing the CO2 price AFTER peakBudgYr goes beyond the initial trajectory"
p_taxCO2eq_until2150(ttot,all_regi) "CO2 price trajectory continued until 2150 - as if there was no change in trajectory after peakBudgYr. Needed to recalculate CO2 price trajectory after peakBudgYr was shifted right"
o_totCO2emi_allYrs(ttot,iteration) "Global CO2 emissions over time and iterations. Needed to check the procedure to find the peakBudgYr"
o_change_totCO2emi_peakBudgYr "Measure for how much the CO2 emissions change around the peakBudgYr"
p_factorRescale_taxCO2(iteration) "Multiplicative factor for rescaling the CO2 price to reach the target"
p_factorRescale_taxCO2_Funneled(iteration) "Multiplicative factor for rescaling the CO2 price to reach the target - limited by an iteration-dependent funnel"
o_taxCO2eq_Itr_1regi(ttot,iteration) "CO2 taxed in the last region, tracked over iterations for debugging"
Robert Pietzcker
committed
o_pkBudgYr_flipflop(iteration) "Counter that tracks if flipfloping of cm_peakBudgYr occured in the last iterations"
o_taxCO2eq_afterPeakShiftLoop_Itr_1regi(ttot, iteration) "CO2 taxed in the last region, after the loop that shifts peakBudgYr, tracked over iterations for debugging"
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
***----------------------------------------------------------------------------------------
***-----------------------------------------------ESM module-------------------------------
pm_emiExog(tall,all_regi,all_enty) "exogenous emissions"
p_macBaseMagpie(tall,all_regi,all_enty) "baseline emissions from MAgPIE (type emiMacMagpie)"
p_macBaseExo(tall,all_regi,all_enty) "exogenous baseline emissions (type emiMacExo)"
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]"
p_macAbat_lim(tall,all_regi,all_enty) "limit of abatement level based on limit of yearly change [fraction]"
p_macUse2005(all_regi,all_enty) "usage of MACs in 2005 [fraction]"
p_macLevFree(tall,all_regi,all_enty) "Phase in of zero-cost MAC options [fraction]"
pm_macCost(tall,all_regi,all_enty) "abatement costs for all emissions subject to MACCs (type emiMacSector) []"
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_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_priceCO2(tall,all_regi) "carbon price [$/tC]"
p_priceCO2forMAC(tall,all_regi,all_enty) "carbon price defined for MAC gases [$/tC]"
p_priceGas(tall,all_regi) "gas price in [$/tCeq] for ch4gas MAC"
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; The historic capacity in 2015"
s_aux_cap_remaining "aux. param. to calculate p_avCapFac2015; countdown parameter"
p_aux_capThisGrade(all_regi,all_te,rlf) "aux. param. to calculate p_avCapFac2015; How the historic 2015 capacity is distributed among grades"
p_aux_capacityFactorHistOverREMIND(all_regi,all_te) "aux. param. to calculate capacity factors correction (wind and spv): the ratio of historic over REMIND CapFac in 2015"
pm_fe2es(tall,all_regi,all_teEs) "Conversion factor from final energies to energy services. Default is 1."
pm_shFeCes(ttot,all_regi,all_enty,all_in,all_teEs) "Final energy shares for CES nodes"
p_adj_coeff_Orig(ttot,all_regi,all_te) "initial value of p_adj_coeff"
p_adj_seed_te_Orig(ttot,all_regi,all_te) "initial value of p_adj_seed_te"
p_varyAdj_mult_adjSeedTe(ttot,all_regi) "Multiplicative factor to adjust adjustment cost parameter p_adj_seed_te according to CO2 price level"
p_varyAdj_mult_adjCoeff(ttot,all_regi) "Multiplicative factor to adjust adjustment cost parameter p_adj_coeff according to CO2 price level"
p_boundtmp(tall,all_regi,all_te,rlf) "read-in bound on capacities"
p_bound_cap(tall,all_regi,all_te,rlf) "read-in bound on capacities"
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_cf(tall,all_regi,all_te) "Installed capacity availability - capacity factor (fraction of the year that a plant is running)"
Lavinia Baumstark
committed
p_tkpremused(all_regi,all_te) "turn-key cost premium used in the model (with a discount rate of 3+ pure rate of time preference); in comparison to overnight costs)"
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
p_aux_tlt(all_te) "auxilliary parameter to determine maximal lifetime of a technology"
p_aux_check_omeg(all_te) "auxiliary parameter for an automated check that no technology is erroneously entered with pm_omeg('1') value of 0"
p_aux_check_tlt(all_te) "auxiliary parameter for an automated check that the pm_omeg calculation and filling of the opTimeYr2te mapping is in accordance"
p_aux_tlt_max(all_te) "auxiliary parameter to find the last mapping in opTimeYr2te for each technology"
pm_vintage_in(all_regi,opTimeYr,all_te) "historical vintage structure. [arbitrary]"
p_efFossilFuelExtr(all_regi,all_enty,all_enty) "emission factor for CH4 from fossil fuel extraction and N2O from bioenergy"
p_efFossilFuelExtrGlo(all_enty,all_enty) "global emission factor for CH4 from fossil fuel extraction and N2O from bioenergy"
pm_dataren(all_regi,char,rlf,all_te) "Array including both regional renewable potential and capacity factor"
p_datapot(all_regi,char,rlf,all_enty) "Total land area usable for the solar technologies PV and CSP. [km^2]"
p_adj_seed_reg(tall,all_regi) "market capacity that can be built from 0 and gives v_adjFactor=1"
p_adj_seed_te(ttot,all_regi,all_te) "technology-dependent multiplicative prefactor to the v_adjFactor seed value. Smaller means slower scale-up"
*** appears in q_esm2macro and q_balFeForCes. This energy category is 0 in LAM, IND and AFR in 2005, but a value > 0 is needed for the calculation of CES parameters.
*** Accordingly, a value of sm_eps is inserted in pm_cesdata to allow calculation of the CES parameters.
p_datacs(all_regi,all_enty) "fossil energy that is not oxidized (=carbon stored)"
pm_inco0_t(ttot,all_regi,all_te) "New inco0 that is time-dependent for some technologies. [T$/TW]"
*LB* calculate parameter pm_tsu2opTimeYr for the eq q_transPe2se and q_cap;
***this parameter counts backwards from time ttot - only the existing time steps
p_tsu2opTimeYr_h(ttot,opTimeYr) "parameter to generate pm_tsu2opTimeYr",
pm_tsu2opTimeYr(ttot,opTimeYr) "parameter that counts opTimeYr regarding tsu2opTimeYr apping"
pm_emissions0(tall,all_regi,all_enty) "Emissions in last iteration"
pm_co2eq0(tall,all_regi) "vm_co2eq from last iteration"
pm_capCum0(tall,all_regi,all_te) "vm_capCum from last iteration"
p_capCum(tall, all_regi,all_te) "vm_capCum from input.gdx for recalibration of learning investment costs"
pm_capCumForeign(ttot,all_regi,all_te) "parameter for learning externality (cumulated capacity of other regions except regi)"
pm_SolNonInfes(all_regi) "model status from last iteration. 1 means status 2 or 7, 0 for all other status codes"
p_cintraw(all_enty) "carbon intensity of fossils [GtC per TWa]"
p_CapFixFromRWfix(ttot,all_regi,all_te) "parameter for fixing capacity variable to Real-World values in 2010/2015"
p_deltaCapFromRWfix(ttot,all_regi,all_te) "parameter with resulting deltacap values resulting from fixing capacity to real-world values in 2010/2015"
*** climate related
pm_globalMeanTemperature(tall) "global mean temperature anomaly"
pm_globalMeanTemperatureZeroed1900(tall) "global mean temperature anomaly, zeroed around 1900"
pm_temperatureImpulseResponseCO2(tall,tall) "temperature impulse response to CO2 [K/GtCO2]"
pm_regionalTemperature(tall,all_regi) "regional temperature"
pm_tempScaleGlob2Reg(tall,all_regi) "scaling factor from global to regional temperature"
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_taxCO2eqSCC(ttot,all_regi) "carbon tax component due to damages (social cost of carbon) "
pm_GDPGross(tall,all_regi) "gross GDP (before damages)"
***----------------------------------------------------------------------------------------
*** ----- Parameters needed for MAGICC ----------------------------------------------------
p_MAGICC_emi(tall,RCP_regions_world_bunkers,emiRCP) "emission data to export"
***----------------------------------------------------------------------------------------
***---------------------------parameter for output-----------------------------------------
o_DirlcoCCS(ttot,all_regi,all_te) "Annuity per sequestered CO2 by CCS technology, calc. from investment costs and fixOM. [$/tCO2]"
o_DirlcoCCS_total(ttot,all_regi) "Total annuity per sequestered CO2. [$/tCO2]"
o_CO2emi_per_energy(ttot,all_regi,all_te) "Emitted CO2 per MWh energy (main product) produced. [kgCO2/MWh]"
o_seq_CCO2emi_per_energy(ttot,all_regi,all_te) "Sequestered CO2 per MWh energy produced (main product). [kgCO2/MWh]"
o_lcoemarkup_CCS(ttot,all_regi,all_te) "Additional LCOE mark-up due to CCS transport&storage. [$/MWh]"
o_INI_DirProdSeTe "directly produced SE by technology in 2005 (from initialcap2)"
o_INI_TotalDirProdSe "Total direct SE production in 2005 (from initialcap2)"
o_INI_TotalCap "Total electricity producing capacity in 2005 (from initialcap2)"
o_INI_AvCapFac "Average regional capacity factor of the power sector in 2005 (from initialcap2)"
o_iterationNumber "output parameter to be able to display the iteration number"
*** Keep track of ESM numbers for output to see changes between iterations
o_negitr_cumulative_peprod(iteration,entyPe) "estimated production 2005-2100. 'estimated' because of different times step lengths around 2100 [ZJ]"
o_negitr_cumulative_CO2_emineg_co2luc(iteration) "estimated CO2 emissions from LUC 2005-2100. 'estimated' because of different times step lengths around 2100 [GtCO2]"
o_negitr_cumulative_CO2_emineg_cement(iteration) "estimated CO2 emissions from cement 2005-2100. 'estimated' because of different times step lengths around 2100 [GtCO2]"
o_negitr_cumulative_CO2_emieng_seq(iteration) "estimated sequestered CO2 emissions 2005-2100. 'estimated' because of different times step lengths around 2100 [GtCO2]"
o_negitr_disc_cons_dr5_reg(iteration,all_regi) "estimated discounted consumption 2005-2100 with discount rate 5%. 'estimated' because of different times step lengths around 2100 [T$]"
o_negitr_disc_cons_drInt_reg(iteration,all_regi) "estimated discounted consumption 2005-2100 with internal discount rate. 'estimated' because of different times step lengths around 2100 [T$]"
o_negitr_total_forc(iteration) "total forcing in 2100"
***----------------------------------------------------------------------------------------
***------------------------------------------------trade module----------------------------
pm_ttot_val(ttot) "value of ttot set element"
p_tall_val(tall) "value of tall set element"
pm_ts(tall) "(t_n+1 - t_n-1)/2 for a timestep t_n"
pm_dt(tall) "difference to last timestep"
pm_interpolWeight_ttot_tall(tall) "weight for linear interpolation of ttot-dependent variables"
pm_tall_2_ttot(tall,ttot) "mapping from tall to ttot"
pm_ttot_2_tall(ttot,tall) "mapping from ttot to tall"
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"
Christoph Bertram
committed
p_histEmiMac(tall,all_regi,all_enty) "historical emissions per MAC; from Eurostat and CEDS, to correct CH4 and N2O reporting"
p_histEmiSector(tall,all_regi,all_enty,emi_sectors,sector_types) "historical emissions per sector; from Eurostat and CEDS, to correct CH4 and N2O reporting"
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
;
***----------------------------------------------------------------------------------------
*** VARIABLES
***----------------------------------------------------------------------------------------
variables
***----------------------------------------------------------------------------------------
***--------------------------------------------------MACRO module--------------------------
vm_taxrev(ttot,all_regi) "difference between tax volume in current and previous iteration"
vm_costSubsidizeLearning(ttot,all_regi) "regional cost of subsidy for learning technologies"
vm_dummyBudget(ttot,all_regi) "auxiliary variable that helps to meet permit allocation equation in nash case"
***----------------------------------------------------------------------------------------
***-------------------------------------------------ESM module-----------------------------
vm_macBase(ttot,all_regi,all_enty) "baseline emissions for all emissions subject to MACCs (type emismac)"
vm_emiTeDetail(ttot,all_regi,all_enty,all_enty,all_te,all_enty) "energy-related emissions per region and technology"
vm_emiTe(ttot,all_regi,all_enty) "total energy-related emissions 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_emiCdr(ttot,all_regi,all_enty) "total (negative) emissions due to CDR technologies of each region. [GtC]"
vm_emiMac(ttot,all_regi,all_enty) "total non-energy-related emission of each region. [GtC, Mt CH4, Mt N]"
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_perm(ttot,all_regi) "emission allowances"
vm_co2eqGlob(ttot) "global emissions to be balanced by allowances. [GtCeq]"
vm_co2eq(ttot,all_regi) "total emissions measured in co2 equivalents ATTENTION: content depends on multigasscen. [GtCeq]"
v_co2eqCum(all_regi) "cumulated vm_co2eq emissions for the first budget period. [GtCeq]"
vm_banking(ttot,all_regi) "banking of emission permits"
v_adjFactor(tall,all_regi,all_te) "factor to multiply with investment costs for adjustment costs"
v_adjFactorGlob(tall,all_regi,all_te) "factor to multiply with investment costs for adjustment costs - global scale"
v_costInvTeDir(tall,all_regi,all_te) "annual direct investments into a technology"
v_costInvTeAdj(tall,all_regi,all_te) "annual investments into a technology due to adjustment costs"
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]"
vm_costFuBio(ttot,all_regi) "fuel costs from bio energy [tril$US]"
vm_omcosts_cdr(tall,all_regi) "O&M costs for spreading grinded rocks on fields"
vm_costpollution(tall,all_regi) "costs for air pollution policies"
vm_emiFgas(tall,all_regi,all_enty) "F-gas emissions by single gases from IMAGE"
;
***----------------------------------------------------------------------------------------
*** POSITIVE VARIABLES
***----------------------------------------------------------------------------------------
positive variables
***----------------------------------------------------------------------------------------
***-------------------------------------------------MACRO module---------------------------
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"
***----------------------------------------------------------------------------------------
*-----------------------------------------------ESM module---------------------------------
vm_costEnergySys(ttot,all_regi) "energy system costs"
vm_cap(tall,all_regi,all_te,rlf) "net total capacities"
vm_capDistr(tall,all_regi,all_te,rlf) "net capacities, distributed to the different grades for renewables"
vm_capFac(ttot,all_regi,all_te) "capacity factor of conversion technologies"
vm_deltaCap(tall,all_regi,all_te,rlf) "capacity additions"
vm_capCum(tall,all_regi,all_te) "gross capacities (=capacities cumulated over time)"
vm_fuExtr(ttot,all_regi,all_enty,rlf) "fuel use [TWa]"
vm_demPe(tall,all_regi,all_enty,all_enty,all_te) "pe demand. [TWa, Uranium: Mt Ur]"
vm_prodPe(ttot,all_regi,all_enty) "pe production. [TWa, Uranium: Mt Ur]"
vm_demSe(ttot,all_regi,all_enty,all_enty,all_te) "se demand. [TWa]"
vm_prodSe(tall,all_regi,all_enty,all_enty,all_te) "se production. [TWa]"
vm_prodFe(ttot,all_regi,all_enty,all_enty,all_te) "fe production. [TWa]"
v_costFu(ttot,all_regi) "fuel costs"
vm_costFuEx(ttot,all_regi,all_enty) "fuel costs from exhaustible energy [tril$US]"
vm_pebiolc_price(ttot,all_regi) "Bioenergy price according to MAgPIE supply curves [T$US/TWa]"
v_costOM(ttot,all_regi) "o&m costs"
v_costInv(ttot,all_regi) "investment costs"
vm_costTeCapital(ttot,all_regi,all_te) "investment costs"
vm_co2CCS(ttot,all_regi,all_enty,all_enty,all_te,rlf) "all differenct ccs. [GtC/a]"
vm_co2capture(ttot,all_regi,all_enty,all_enty,all_te,rlf) "all captured CO2. [GtC/a]"
v_co2capturevalve(ttot,all_regi) "CO2 emitted right after capture [GtC/a] (in q_balCCUvsCCS to account for different lifetimes of capture and CCU/CCS te and capacities)"
vm_prodUe(ttot,all_regi,all_enty,all_enty,all_te) "Useful energy production [TWa]"
v_demFe(ttot,all_regi,all_enty,all_enty,all_te) "fe demand [TWa]"
vm_capEarlyReti(tall,all_regi,all_te) "fraction of early retired capital"
vm_otherFEdemand(ttot,all_regi,all_enty) "final energy demand from no transformation technologies (e.g. enhanced weathering)"
vm_demSeOth(ttot,all_regi,all_enty,all_te) "other sety demand from certain technologies, have to calculated in additional equations [TWa]"
vm_prodSeOth(ttot,all_regi,all_enty,all_te) "other sety production from certain technologies, have to be calculated in additional equations [TWa]"
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."
*** ES layer variables
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)."
;
***----------------------------------------------------------------------------------------
*** EQUATIONS
***----------------------------------------------------------------------------------------
equations
***----------------------------------------------------------------------------------------
***------------------------------------------------MACRO module----------------------------
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)"
q_limitSeel2fehes(ttot,all_regi) "equation to limit the share of electricity that can be used for fehes"
q_esCapInv(ttot,all_regi,all_teEs) "investment equation for end-use capital investments (energy service layer)"
***----------------------------------------------------------------------------------------
***-----------------------------------------------ESM module-------------------------------
q_costEnergySys(ttot,all_regi) "energy system costs"
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
q_costFu(ttot,all_regi) "costs of fuels"
q_costOM(ttot,all_regi) "costs of o&m"
q_costInv(ttot,all_regi) "costs of investment"
q_cap(tall,all_regi,all_te,rlf) "definition of available capacities"
q_capDistr(tall,all_regi,all_te) "distribute available capacities across grades"
q_limitCapSe(ttot,all_regi,all_enty,all_enty,all_te) "capacity constraint for se production"
q_limitCapSe2se(ttot,all_regi,all_enty,all_enty,all_te) "capacity constraint for se to se transformation"
q_limitCapFe(ttot,all_regi,all_te) "capacity constraint for fe production"
q_capCumNet(t0,all_regi,all_te) "cumulative net capactiy"
qm_deltaCapCumNet(ttot,all_regi,all_te) "increase of cumulative net capacity"
q_costTeCapital(tall,all_regi,all_te) "calculation of investment cost for learning technologies"
q_balPe(ttot,all_regi,all_enty) "balance of primary energy (pe)"
q_balSe(ttot,all_regi,all_enty) "balance of secondary energy (se)"
q_transPe2se(ttot,all_regi,all_enty,all_enty,all_te) "energy tranformation pe to se"
q_transSe2fe(ttot,all_regi,all_enty,all_enty,all_te) "energy tranformation se to fe"
q_transSe2se(ttot,all_regi,all_enty,all_enty,all_te) "energy transformation se to se"
qm_fuel2pe(ttot,all_regi,all_enty) "constraint on cumulative fuel use"
q_limitProd(ttot,all_regi,all_te,rlf) "constraint on annual production"
q_emiTeDetail(ttot,all_regi,all_enty,all_enty,all_te,all_enty) "determination of emissions"
q_macBase(tall,all_regi,all_enty) "baseline emissions for all emissions subject to MACCs (type emiMacSector)"
q_emiMacSector(ttot,all_regi,all_enty) "total non-energy-related emission of each region"
q_emiTe(ttot,all_regi,all_enty) "total energy-emissions per region"
q_emiAll(ttot,all_regi,all_enty) "calculates all regional emissions as sum over energy and non-energy relates emissions"
q_emiAllGlob(ttot,all_enty) "calculates all global emissions as sum over regions"
q_emiCap(ttot,all_regi) "emission cap"
q_emiMac(ttot,all_regi,all_enty) "summing up all non-energy emissions"
q_co2eq(ttot,all_regi) "regional emissions in co2 equivalents"
q_co2eqGlob(ttot) "global emissions in co2 equivalents"
qm_co2eqCum(all_regi) "cumulate regional emissions over time"
q_budgetCO2eqGlob "global emission budget balance"
q_transCCS(ttot,all_regi,all_enty,all_enty,all_te,all_enty,all_enty,all_te,rlf) "transformation equation for ccs"
q_limitCapCCS(ttot,all_regi,all_enty,all_enty,all_te,rlf) "capacity constraint for ccs"
q_limitCCS(all_regi,all_enty,all_enty,all_te,rlf) "ccs constraint for sequestration alternatives"
q_balcapture(ttot,all_regi,all_enty,all_enty,all_te) "balance equation for carbon capture"
q_balCCUvsCCS(ttot,all_regi) "balance equation for captured carbon to CCU or CCS or valve"
q_limitCapUe(ttot,all_regi,all_enty,all_enty,all_te) "capacity constraint for ES production"
q_transFe2Ue(ttot,all_regi,all_enty,all_enty,all_te) "energy tranformation fe to es"
q_balFe(ttot,all_regi,all_enty) "balance of FE that are transformed into ES"
q_esm2macro(ttot,all_regi,all_in) "hand over amount of entyFe/entyUe from ESM(GENERIS) to the MACRO module"
q_limitSo2(ttot,all_regi) "prevent SO2 from rising again after 2050"
q_limitCO2(ttot,all_regi) "prevent CO2 from rising again after 2050"
q_limitGeopot(ttot,all_regi,all_enty,rlf) "constraint on annual renewable production due to competition for the same geographical potential"
q_costInvTeAdj(ttot,all_regi,all_te) "calculation of total adjustment costs for a technology"
q_costInvTeDir(ttot,all_regi,all_te) "calculation of total direct investment costs (without adjustment costs) for a technology"
q_eqadj(all_regi,tall,all_te) "calculation of adjustment factor for a technology"
q_limitCapEarlyReti(ttot,all_regi,all_te) "constraint to avoid reactivation of retired capacities"
q_smoothphaseoutCapEarlyReti(ttot,all_regi,all_te) "phase-out constraint for early retirement to avoid immediate retirement"
q_limitBiotrmod(ttot,all_regi) "limit the total amount of modern biomass use for solids to the amount of coal use for solids "
q_limitShOil(ttot,all_regi) "requires minimum share of liquids from oil in total liquids of 15%"
q_PE_histCap(ttot,all_regi,all_enty,all_enty) "model capacity must be equal or greater than historical capacity"
*** ES layer equations
q_transFe2Es(ttot,all_regi,all_enty,all_esty,all_teEs) "Conversion from final energy to energy service"
q_es2ppfen(ttot,all_regi,all_in) "Energy services are handed to the CES tree."
q_shFeCes(ttot,all_regi,all_enty,all_in,all_teEs) "Shares of final energies in production factors."
*q_shFeCesNorm(ttot,all_regi,all_in) "Shares have to sum to 1."
q_shGreenH2(ttot,all_regi) "share of green hydrogen in all hydrogen"
q_shBioTrans(ttot,all_regi) "Define the share of biofuels in transport liquids from 2025 on."
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
***----------------------------------------------------------------------------------------
***----------------------------------------------trade module------------------------------
;
***----------------------------------------------------------------------------------------
*** SCALARS
***----------------------------------------------------------------------------------------
scalars
o_modelstat "critical solver status for solution"
***----------------------------------------------------------------------------------------
***------------------------------------------------MACRO module----------------------------
***----------------------------------------------------------------------------------------
***-----------------------------------------------ESM module-------------------------------
pm_conv_TWa_EJ "conversion from TWa to EJ" /31.536/,
sm_c_2_co2 "conversion from c to co2" /3.666666666667/,
*** conversion factors of time units
sm_year_2_day "days per year" /365/,
sm_day_2_hour "hours per day" /24/,
sm_mega_2_non "mega to non" /1e+6/,
sm_giga_2_non "giga to non" /1e+9/,
sm_trillion_2_non "trillion to non" /1e+12/,
*** conversion of energy units
*** 1J = 1Ws ==> 1GJ = 10^9 / 3600 kWh = 277.77kWh = 277.77 / 8760 kWyr = 0.03171 kWyr
s_zj_2_twa "zeta joule to tw year" /31.7098/,
sm_EJ_2_TWa "multiplicative factor to convert from EJ to TWa" /31.71e-03/,
sm_GJ_2_TWa "multiplicative factor to convert from GJ to TWa" /31.71e-12/,
sm_TWa_2_MWh "tera Watt year to Mega Watt hour" /8.76e+9/,
sm_TWa_2_kWh "tera Watt year to kilo Watt hour" /8.76e+12/,
*RP* all these new conversion factors with the form "s_xxx_2_yyy" are multplicative factors. Thus, if you have a number in Unit xxx, you have to
*RP* multiply this number by the conversion factor s_xxx_2_yyy to get the new value in Unit yyy.
s_NO2_2_N "convert NO2 to N [14 / (14 + 2 * 16)]" / .304 /
s_DpKWa_2_TDpTWa "convert Dollar per kWa to TeraDollar per TeraWattYear" /0.001/
sm_DpKW_2_TDpTW "convert Dollar per kW to TeraDollar per TeraWatt" /0.001/
sm_DpGJ_2_TDpTWa "multipl. factor to convert (Dollar per GJoule) to (TerraDollar per TWyear)" / 31.54e-03/
s_gwpCH4 "Global Warming Potentials of CH4, AR5 WG1 CH08 Table 8.7" /28/
s_gwpN2O "Global Warming Potentials of N2O, AR5 WG1 CH08 Table 8.7" /265/
sm_dmac "step in MAC functions [US$]" /5/
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/
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
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/
***----------------------------------------------------------------------------------------
***----------------------------------------------trade module------------------------------
;
s_tgn_2_pgc = (44/28) * s_gwpN2O * (12/44) * 0.001;
s_tgch4_2_pgc = s_gwpCH4 * (12/44) * 0.001;
***----------------------------------------------------------------------------------------
*----------------------------------------------carbon intensities of coal, oil, and gas
p_cintraw("pecoal") = 26.1 / s_zj_2_twa;
p_cintraw("peoil") = 20.0 / s_zj_2_twa;
p_cintraw("pegas") = 15.0 / s_zj_2_twa;
***----------------------------------------------------------------------------------------
*** F I L E S
***----------------------------------------------------------------------------------------
file magicc_scenario / "./magicc/REMIND_%c_expname%.SCEN" /;
magicc_scenario.ap = 0;
magicc_scenario.pw = 3000;
file magicc_sed_script / "./magicc/modify_MAGCFG_USER_CFG.sed" /;
magicc_sed_script.ap = 0;
*** EOF ./core/declarations.gms