Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
*** | (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--------------------------
pm_welf(tall) "weight parameter in the welfare function to avoid jumps with cm_less_TS"
***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_Xport0(tall,all_regi,all_enty) "reference level value of export"
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_delta_kap(all_regi,all_in) "depreciation rate of capital"
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_IO_trade(tall,all_regi,all_enty,char) "Energy trade bounds based on IEA data"
pm_esCapCost(tall,all_regi,all_teEs) "Capital energy cost per unit of consumption for end-use capital (energy service layer)"
pm_ppfen_ratios(all_in,all_in) "limit ratio of two primary production factors of energy (ppfEn)"
pm_ppfen_shares(all_in,all_in) "limit the share of one ppfEn in total CES nest inputs"
$IFTHEN.INCONV %c_INCONV_PENALTY% == "on"
p_inconvpen_lap(ttot,all_regi,all_te) "parameter for inconvenience penalty for local air pollution. [T$/TWa at Consumption of 1000$/cap]"
$ENDIF.INCONV
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"
o_delay_increase_peakBudgYear(iteration) "Switch that tracks if flip-flopping of peakBudgYr happened. Starts an inner loop to try and overcome this"
o_reached_until2150pricepath(iteration) "Switch 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"
***----------------------------------------------------------------------------------------
***-----------------------------------------------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"
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)"
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
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
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
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
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
396
397
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
442
443
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
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
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_consPC(tall,all_regi) "consumption per capita"
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_w(all_regi) "Negishi weights"
p_tradecostgood(all_regi) "tradecosts (final good)"
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"
pm_prtp(all_regi) "pure rate of time preference"
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"
pm_cumDeprecFactor_old(ttot,all_regi,all_in) "investment depreciation within a period, applied to the investment of t -1"
pm_cumDeprecFactor_new(ttot,all_regi,all_in) "investment depreciation within a period, applied to the investment of t"
p_Mport2005correct(all_regi,all_enty) "correction factor to match fossil supply and internal region energy demand in the initial year"
;
***----------------------------------------------------------------------------------------
*** VARIABLES
***----------------------------------------------------------------------------------------
variables
***----------------------------------------------------------------------------------------
***--------------------------------------------------MACRO module--------------------------
v_welfare(all_regi) "regional welfare"
vm_welfareGlob "global welfare"
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"
$ifthen.inconv %c_INCONV_PENALTY% == "on"
v_inconvPen(ttot,all_regi) "Inconvenience penalty in the welfare function, e.g. for air pollution. [Utils]"
v_inconvPenCoalSolids(ttot,all_regi) "Inconvenience penalty in the welfare function, e.g. for air pollution. [Utils]"
v_inconvPenCoalSolids(ttot,all_regi) "Inconvenience penalty in the welfare function, e.g. for air pollution. [Utils]"
v_sesoInconvPenSlack(ttot,all_regi) "slack to avoid negative inconvenience penalty for Coal Solids"
$endif.inconv
***----------------------------------------------------------------------------------------
***-------------------------------------------------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_cesIO(tall,all_regi,all_in) "production factor"
vm_invMacro(ttot,all_regi,all_in) "investment for capital for ttot"
vm_cons(ttot,all_regi) "consumption"
v_invMacroAdj(ttot,all_regi,all_in) "adjustment costs of macro economic investments"
vm_effGr(ttot,all_regi,all_in) "growth of factor efficiency"
vm_invInno(ttot,all_regi,all_in) "investment into innovation"
vm_invImi(ttot, all_regi,all_in) "investment into imitation"
vm_cesIOdelta(tall,all_regi,all_in) "putty-clay production factor"
vm_enerSerAdj(tall,all_regi,all_in) "adjustment costs for energy service transformations"
vm_damageFactor(ttot,all_regi) "damage factor reducing GDP"
v_esCapInv(ttot,all_regi,all_teEs) "investment for energy end-use capital at the energy service level"
***----------------------------------------------------------------------------------------
*-----------------------------------------------ESM module---------------------------------
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"
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"
vm_pebiolc_price_shifted(ttot,all_regi) "bioenergy price according to shifted MAgPIE supply curves, required only for calculation of the bioenergy tax"
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]"
*** 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)."
***----------------------------------------------------------------------------------------
***------------------------------------------------trade module----------------------------
vm_Xport(tall,all_regi,all_enty) "export of traded commodity"
vm_Mport(tall,all_regi,all_enty) "import of traded commodity"
*AG* brought here from former climate files during modularisation
vm_forcOs(ttot) "forcing overshoot"
*** Adjustment costs for Nash trade algorithm. Only non-zero in the Nash_test realization of 80_optimization module.
vm_costAdjNash(ttot,all_regi) "adjustment costs for deviation from the trade structure of the last iteration"
;
***----------------------------------------------------------------------------------------
*** EQUATIONS
***----------------------------------------------------------------------------------------
equations
***----------------------------------------------------------------------------------------
***------------------------------------------------MACRO module----------------------------
q_welfareGlob "global welfare"
q_welfare "regional welfare"
qm_budget(ttot,all_regi) "budget balance"
q_balLab(ttot,all_regi) "labour balance"
q_cesIO(ttot,all_regi,all_in) "production function"
q_prodCompl(ttot,all_regi,all_in,all_in) "Constraints for perfect complements in the CES tree"
q_kapMo(ttot,all_regi,all_in) "capital motion equation"
q_kapMo0(t0,all_regi,all_in) "initial condition for capital"
q_invMacroAdj(ttot,all_regi,all_in) "adjustment costs for macro economic investments"
*** FIXME q_balFeForCes(ttot,all_regi,all_enty,all_in) "balance of final energy to couple esm and mgm"
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)"
*** perm_restr(ttot,all_regi) "emission permit trade restriction"
*** multistage(ttot) "calculation of remaining permits in multistage approach"
$ifthen.inconv %c_INCONV_PENALTY% == "on"
q_inconvPen(ttot,all_regi) "calculate the inconvenience penalty v_inconvPen"
q_inconvPenCoalSolids(ttot,all_regi) "calculate the inconvenience penalty v_inconvPen"
$endif.inconv
q_limtRatioPpfen(ttot,all_regi,all_in,all_in) "limit the ratio of two ppfEn"
q_limitShPpfen(ttot,all_regi,all_in,all_in) "limit the share of one ppfEn in total CES nest inputs"
q_limitSeel2fehes(ttot,all_regi) "equation to limit the share of electricity that can be used for fehes"
*** putty-clay
q_cesIO_puttyclay(ttot,all_regi,all_in) "putty-clay production function"
q_puttyclay(ttot,all_regi,all_in) "putty-clay Correspondance between variations in input and past stocks of input"
q_prodCompl_putty(ttot,all_regi,all_in,all_in) "Putty-Clay constraints for perfect complements in the CES tree"
***q_puttykap(ttot,all_regi,all_in) "putty-clay Correspondance between variations in capital and past stocks of capital"
q_kapMo_putty(ttot,all_regi,all_in) "putty-clay capital motion equation"
q_esCapInv(ttot,all_regi,all_teEs) "investment equation for end-use capital investments (energy service layer)"
***----------------------------------------------------------------------------------------
***-----------------------------------------------ESM module-------------------------------
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."
***----------------------------------------------------------------------------------------
***----------------------------------------------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_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