GAMS 33.1.0 rb238721 Released Nov 1, 2020 WEX-WEI x86 64bit/MS Windows - 09/13/22 07:47:46 Page 1 G e n e r a l A l g e b r a i c M o d e l i n g S y s t e m C o m p i l a t i o n 1 * a scenario name is mandatory to load the gdx file - abort the run if not specified or file does not exist 4 5 ** option to run MACRO standalone or interactively linked (iterating) with MESSAGE ** 6 *$SETGLOBAL macromode "linked" 8 INCLUDE c:\repo\message_ix\message_ix\model\MACRO/macro_data_load.gms 10 11 *----------------------------------------------------------------------------------------------------------------------* 12 * set and parameter definitions * 13 *----------------------------------------------------------------------------------------------------------------------* 14 15 * indices to parameters will always be in the following order: 16 * node(location),commodity,level,year(actual),year(vintage), 17 18 20 21 * main sets shared with MESSAGE (imported from database) 22 Sets 23 node all nodes included in the MESSAGE datastructure 24 type_node types of node categories 25 cat_node(type_node,node) mapping of node types to nodes 26 commodity commodity ( resources - oil - gas - electricty - water - land availability - etc. ) 27 level level ( primary - secondary - ... - useful ) 28 year_all years (over entire model horizon) 29 year(year_all) years included in a model instance (for myopic or rolling-horizon optimization) 30 time subannual time periods (seasons - days - hours) 31 type_year types of year aggregations (for easy creation of subsets etc.) 32 cat_year(type_year,year_all) mapping of years to respective categories (for simple reference in summations etc.) 33 ; 34 35 * definition of aliases shared with MESSAGE 36 37 Alias(year_all,year_all2); 38 Alias(year_all,year_all3); 39 Alias(year,year2); 40 Alias(year,year3); 41 Alias(time,time2); 42 44 45 * sets specific to MACRO 46 47 Sets 48 node_macro(node) nodes actually relevant for the MACRO mode 49 node_active(node) active node - region - grid cell 50 sector Energy Sectors for macro-economic analysis in MACRO 51 mapping_macro_sector(sector, commodity, level) mapping of energy sectors in MACRO to MESSAGE commodity and level combinations 52 ; 53 54 * parameters specific to MACRO 55 56 SCALAR node_counter 'node counter for looping over regions' ; 57 58 SCALAR epsilon small number to avoid divergences 59 / 0.01 / 60 ; 61 62 PARAMETERS 63 i0(node) Initial investment in base year 64 c0(node) Initial consumption in base year 65 k0(node) Initial capital in base year 66 y0(node) Initial output in base year 67 68 gdp_calibrate(node, year_all) Calibrated GDP (Trillion $) 69 gdp_base(node) Initial GDP (Trillion $) in base year 70 kgdp(node) Initial capital to GDP ratio in base year 71 depr(node) Annual percent depreciation 72 * VK, 10 April 2008: DRATE (social discount rate, i.e. net rate of return on capital from MESSAGE) introduced as a new parameter as in MERGE 5 73 drate(node) Social discount rate 74 esub(node) Elasticity between capital-labor (K-L) and energy (Sum E) 75 rho(node) Production function exponent between capital-labor and energy nest (rho = (esub - 1) : esub) 76 kpvs(node) Capital value share parameter 77 ecst0(node) Energy costs in base year 78 demand_base(node,sector) base year consumption level of energy services from MESSAGE 79 80 lakl(node) Production function coefficient of capital and labor 81 prfconst(node, sector) Production function coefficient of different energy sectors 82 83 enestart(node,sector,year_all) Consumption level of energy services from MESSAGE model run 84 eneprice(node,sector,year_all) Shadow prices of energy services from MESSAGE model run 85 total_cost(node,year_all) Total energy system costs from MESSAGE model run 86 87 * the following three parameters are used for running MACRO standalone and for calibration purposes 88 demand_MESSAGE(node,sector,year_all) consumption level of energy services from MESSAGE model run 89 price_MESSAGE(node,sector,year_all) shadow prices of energy services from MESSAGE model run 90 cost_MESSAGE(node,year_all) total energy system costs from MESSAGE model run 91 92 udf(node, year_all) Utility discount factor in period year 93 labor(node, year_all) Labor force (efficiency units) in period year 94 newlab(node, year_all) New vintage of labor force in period year 95 96 grow(node, year_all) Annual growth rates of potential GDP 97 aeei(node, sector, year_all) Annual potential decrease of energy intensity in sector sector 98 aeei_factor(node, sector, year_all) Cumulative effect of autonomous energy efficiency improvement (AEEI) 99 100 finite_time_corr(node, year_all) finite time horizon correction factor in utility function 101 lotol(node) Tolerance factor for lower bounds on MACRO variabales 102 103 SVKN(node, year_all) 'start values for new capital variable KN' 104 SVNEWE(node, sector, year_all) 'start values for new energy variable' 105 106 historical_gdp(node,year_all) historical GDP used for the base year (including running MACRO with slicing) 107 ; 108 Parameters 109 * general parameters 110 duration_period(year_all) duration of one multi-year period (in years) 111 * parameters for spatially and temporally flexible formulation, and for myopic/rolling-horizon optimization 112 duration_period_sum(year_all,year_all2) number of years between two periods ('year_all' must precede 'year_all2') 113 interestrate(year_all) interest rate (to compute discount factor) 114 df_period(year_all) cumulative discount factor over period duration 115 df_year(year_all) discount factor of the last year in the period 116 ; 117 118 *----------------------------------------------------------------------------------------------------------------------* 119 * Auxiliary variables for workflow * 120 *----------------------------------------------------------------------------------------------------------------------* 121 122 Parameters 123 ctr counter parameter for loops 124 status(*,*) model solution status parameter for log writing 125 ; 126 127 *----------------------------------------------------------------------------------------------------------------------* 128 * load relevant sets and parameters from dataset gdx * 129 *----------------------------------------------------------------------------------------------------------------------* 130 GDXIN c:\repo\message_ix\message_ix\model\data\MsgData_ENGAGE_SSP2_v4.1.8.3.1_T4.5_r3.1_test_baseline_prep_macro_macro.gdx 133 --- LOAD node = 3:node --- LOAD year_all = 2:year --- LOAD type_year = 14:type_year --- LOAD cat_year = 34:cat_year --- LOAD time = 10:time --- LOAD duration_period = 159:duration_period --- LOAD commodity = 20:commodity --- LOAD level = 19:level --- LOAD interestrate = 161:interestrate 140 --- LOAD type_node = 12:type_node --- LOAD cat_node = 32:cat_node --- LOAD sector = 24:sector --- LOAD mapping_macro_sector = 47:mapping_macro_sector --- LOAD kpvs = 197:kpvs --- LOAD kgdp = 196:kgdp --- LOAD esub = 193:esub --- LOAD depr = 191:depr --- LOAD drate = 192:drate --- LOAD lotol = 199:lotol --- LOAD lakl = 198:lakl --- LOAD prfconst = 200:prfconst --- LOAD aeei = 188:aeei --- LOAD grow = 195:grow --- LOAD gdp_calibrate = 194:gdp_calibrate --- LOAD historical_gdp = 176:historical_gdp --- LOAD demand_MESSAGE = 190:demand_MESSAGE --- LOAD price_MESSAGE = 201:price_MESSAGE --- LOAD cost_MESSAGE = 189:cost_MESSAGE 149 150 node_macro(node)$( cat_node('economy',node) ) = yes ; 151 152 DISPLAY node_macro ; 153 *cat_year("baseyear_macro","2010") = no ; 154 *cat_year("baseyear_macro","2030") = yes ; 155 *cat_year("firstmodelyear","2020") = no ; 156 *cat_year("firstmodelyear","2040") = yes ; 157 158 * ------------------------------------------------------------------------------ 159 * define sets for period structure 160 * ------------------------------------------------------------------------------ 161 162 * compute auxiliary parameters for duration over periods (years) INCLUDE c:\repo\message_ix\message_ix\model\includes/period_parameter_assignment.gms 164 *----------------------------------------------------------------------------------------------------------------------* 165 * assignment and computation of auxiliary parameters * 166 *----------------------------------------------------------------------------------------------------------------------* 167 168 * additional sets and parameters created in GAMS to make notation more concise for myopic/rolling-horizon optimization 169 Sets 170 historical(year_all) set of periods prior to the start of the model horizon 171 model_horizon(year_all) set of periods included in the model horizon 172 macro_horizon(year_all) set of periods included in the MACRO model horizon 173 seq_period(year_all,year_all2) mapping of one period ('year_all') to the next ('year_all2') 174 map_period(year_all,year_all2) mapping of one period ('year_all') to itself and all subsequent periods ('year_all2') 175 map_first_period(type_year, year_all) mapping of a 'type_year' to the first 'year' 176 first_period(year_all) flag for first period in model horizon 177 last_period(year_all) flag for last period in model horizon 178 macro_initial_period(year_all) flag for period in model horizon in which to initialize model parameters in (period prior to first model period) - used in MACRO 179 macro_base_period(year_all) flag for base year period in model horizon (period prior to first model period) - used in MACRO 180 ; 181 182 Parameter 183 duration_period_sum(year_all,year_all2) number of years between two periods ('year_all' must precede 'year_all2') 184 duration_time_rel(time,time2) relative duration of subannual time slice 'time2' relative to parent 'time' (only for 'time' specified in set 'time_relative')') 185 elapsed_years(year_all) elapsed years since the start of the model horizon (not including 'year_all' period) 186 remaining_years(year_all) remaining years until the end of the model horizon (including last period) 187 year_order(year_all) order for members of set 'year_all' 188 ; 189 *----------------------------------------------------------------------------------------------------------------------* 190 * assignment auxiliary dynamic sets * 191 *----------------------------------------------------------------------------------------------------------------------* 192 193 ** treatment of periods ** 194 195 * sanity checks to ensure that not more than one period is assigned to the first- and lastyear categories 196 if ( sum(year_all$( cat_year("firstmodelyear",year_all) ), 1 ) > 1 , 197 abort "There is more than one period assigned as category 'firstmodelyear'!" ) ; 198 if ( sum(year_all$( cat_year("lastmodelyear",year_all) ), 1 ) > 1 , 199 abort "There is more than one period assigned as category 'lastmodelyear'!" ) ; 200 if ( sum(year_all$( cat_year("initializeyear_macro",year_all) ), 1 ) > 1 , 201 abort "There is more than one period assigned as category 'initializeyear_macro'!" ) ; 202 203 * mapping of sequence of periods over the model horizon 204 seq_period(year_all,year_all2)$( ORD(year_all) + 1 = ORD(year_all2) ) = yes ; 205 map_period(year_all,year_all2)$( ORD(year_all) <= ORD(year_all2) ) = yes ; 206 207 * dynamic sets (singleton) with first and last periods in model horizon of MESSAGEix (for easier reference) 208 if ( sum(year_all$( cat_year("firstmodelyear",year_all) ), 1 ), 209 first_period(year_all)$( cat_year("firstmodelyear",year_all) ) = yes ; 210 else 211 first_period(year_all)$( ORD(year_all) eq 1 ) = yes ; 212 ) ; 213 if ( sum(year_all$( cat_year("lastmodelyear",year_all) ), 1 ), 214 last_period(year_all)$( cat_year("lastmodelyear",year_all) ) = yes; 215 else 216 last_period(year_all)$( ORD(year_all) = CARD(year_all) ) = yes ; 217 ) ; 218 219 * dynamic sets for MACRO initialization and base periods 220 macro_initial_period(year_all) = no ; 221 macro_initial_period(year_all)$( cat_year("initializeyear_macro",year_all) ) = yes ; 222 macro_base_period(year_all) = no ; 223 macro_base_period(year_all)$( ORD(year_all) = sum(year_all2$( first_period(year_all2) ), ORD(year_all2) - 1 ) ) = yes ; 224 225 * assign set of historical years, the model horizon and the MACRO hoizon (includes 'macro_base_period') 226 historical(year_all)$( ORD(year_all) < sum(year_all2$cat_year("firstmodelyear",year_all2), ORD(year_all2) ) ) = yes ; 227 model_horizon(year_all) = no ; 228 model_horizon(year_all)$( ORD(year_all) >= sum(year_all2$first_period(year_all2), ORD(year_all2) ) 229 AND ORD(year_all) <= sum(year_all2$last_period(year_all2), ORD(year_all2) ) ) = yes ; 230 macro_horizon(year_all) = no ; 231 macro_horizon(year_all)$macro_base_period(year_all) = yes; 232 macro_horizon(year_all)$model_horizon(year_all) = yes; 233 234 *----------------------------------------------------------------------------------------------------------------------* 235 * assignment of (cumulative) discount factors over time * 236 *----------------------------------------------------------------------------------------------------------------------* 237 238 * simple method to compute discount factor (but this approach implicitly assumes a constant interest rate) 239 *df_year(year_all) = POWER( 1 / ( 1+interestrate(year_all) ), sum(year_all2$( ORD(year_all2) < ORD(year_all) ), 240 * duration_period(year_all2) ) ) ; 241 242 * compute per-year discount factor (using a recursive method) - set to 1 by default (interest rate = 0) 243 df_year(year_all) = 1 ; 244 245 * recursively compute the per-year discount factor 246 loop(year_all$( ORD(year_all) > 1 ), 247 df_year(year_all) = 248 sum(year_all2$( seq_period(year_all2,year_all) ), df_year(year_all2) 249 * POWER( 1 / ( 1 + interestrate(year_all) ), duration_period(year_all) ) ) ; 250 ) ; 251 252 * multiply per-year discount factor by discounted period duration 253 df_period(year_all) = 254 df_year(year_all) * ( 255 * multiply the per-year discount factor by the geometric series of over the duration of the period 256 ( ( POWER( 1 + interestrate(year_all) , duration_period(year_all) ) - 1 ) 257 / interestrate(year_all) )$( interestrate(year_all) ) 258 * if interest rate = 0, multiply by the number of years in that period 259 + ( duration_period(year_all) )$( interestrate(year_all) eq 0 ) ) 260 ; 261 262 *----------------------------------------------------------------------------------------------------------------------* 263 * assignment of auxiliary first-period-per-category mapping and parameters for duration of periods * 264 *----------------------------------------------------------------------------------------------------------------------* 265 266 * define order of set 'year_all' (to use as equivalent of ORD operator on the dynamic set year (subset of 'year_all') ) 267 year_order(year_all) = ORD(year_all) ; 268 269 * assign the first year of each category to a specific mapping set for use in computing emissions prices 270 map_first_period(type_year,year_all)$( cat_year(type_year,year_all) 271 AND year_order(year_all) = SMIN(year_all2$( cat_year(type_year,year_all2) ), year_order(year_all2) ) ) = yes ; 272 273 * auxiliary parameters for duration between periods (years) - not including the final period 'year_all2' 274 duration_period_sum(year_all,year_all2) = 275 SUM(year_all3$( ORD(year_all) <= ORD(year_all3) AND ORD(year_all3) < ORD(year_all2) ) , duration_period(year_all3) ) ; 276 277 * auxiliary parameter for duration since the first year of the model horizon - not including the period 'year_all' 278 elapsed_years(year_all) = sum(first_period, duration_period_sum(first_period,year_all) ) ; 279 280 * auxiliary parameter for duration until the end of the model horizon - including the last period 281 remaining_years(year_all) = SUM(year_all2$( ORD(year_all) <= ORD(year_all2) ) , duration_period(year_all2) ) ; 282 283 year(year_all) = no ; 284 year(year_all)$( ORD(year_all) >= sum(year_all2$cat_year("initializeyear_macro",year_all2), ORD(year_all2) ) ) = yes ; 285 286 DISPLAY cat_year, macro_base_period, first_period, last_period, macro_horizon, year ; 287 288 * order parameters for set node 289 290 PARAMETER node_order(node) 'order for members of set node' ; 291 node_order(node) = ORD(node) ; 292 293 DISPLAY node_macro, node_order ; 294 295 * ------------------------------------------------------------------------------ 296 * use externally (via GDX) supplied scenario parameters as default starting values for MACRO (these will be overwritten in the actual iteration process) 297 * ------------------------------------------------------------------------------ 298 299 * useful energy/service demand levels from MESSAGE get mapped onto MACRO sector structure 300 enestart(node_macro,sector,year) = demand_MESSAGE(node_macro,sector,year) / 1000; 301 * useful energy/service demand prices from MESSAGE get mapped onto MACRO sector structure 302 eneprice(node_macro,sector,year) = price_MESSAGE(node_macro,sector,year) ; 303 * total energy system costs by node and time 304 total_cost(node_macro,year) = cost_MESSAGE(node_macro,year) ; 305 307 308 * base year useful energy/service demand levels from MESSAGE get mapped onto MACRO sector structure 309 demand_base(node_macro,sector) = sum(macro_base_period, enestart(node_macro,sector,macro_base_period) ) ; 310 311 DISPLAY enestart, eneprice, total_cost; 312 313 * ------------------------------------------------------------------------------ 314 * calculate start values 315 * ------------------------------------------------------------------------------ 316 317 PARAMETER growth_factor(node, year_all) 'cumulative growth factor' ; 318 319 growth_factor(node_macro, macro_base_period) = 1; 320 321 LOOP(year $ (NOT macro_base_period(year)), 322 growth_factor(node_macro, year) = SUM(year2$( seq_period(year2,year) ), growth_factor(node_macro, year2) * (1 + grow(node_macro, year))**(duration_period(year))) ; 323 ) ; 324 325 PARAMETER potential_gdp(node, year_all) ; 326 327 potential_gdp(node_macro, year) = sum(macro_base_period, historical_gdp(node_macro,macro_base_period)/1000) * growth_factor(node_macro, year) ; 328 329 DISPLAY growth_factor, potential_gdp ; 330 331 * ------------------------------------------------------------------------------ 332 * assigning parameters and calculation of cumulative effect of AEEI over time 333 * ------------------------------------------------------------------------------ 334 335 * calculation of cumulative effect of AEEI over time 336 aeei_factor(node_macro, sector, macro_initial_period) = 1; 337 338 LOOP(year_all $ ( ORD(year_all) > sum(year_all2$( macro_initial_period(year_all2) ), ORD(year_all2) ) ), 339 aeei_factor(node_macro, sector, year_all) = SUM(year_all2$( seq_period(year_all2,year_all) ), ( (1 - aeei(node_macro, sector, year_all)) ** duration_period(year_all) ) * aeei_factor(node_macro, sector, year_all2)) 340 ); 341 342 DISPLAY aeei_factor ; 343 344 * ------------------------------------------------------------------------------ 345 * calculation of total labor supply, new labor supply and utility discount factor 346 * ------------------------------------------------------------------------------ 347 348 * caluclate production function exponent between capital-labor and energy nest from elasticity of substitution 349 rho(node_macro) = (esub(node_macro) - 1)/esub(node_macro) ; 350 DISPLAY rho ; 351 352 udf(node_macro, macro_initial_period) = 1 ; 353 labor(node_macro, macro_initial_period) = 1 ; 354 355 LOOP(year_all $( ORD(year_all) > sum(year_all2$( macro_initial_period(year_all2) ), ORD(year_all2) ) ), 356 * exogenous labor supply growth (including both changes in labor force and labor productivity growth) 357 labor(node_macro, year_all) = SUM(year_all2$( seq_period(year_all2,year_all) ), labor(node_macro, year_all2) * (1 + grow(node_macro, year_all))**duration_period(year_all)) ; 358 * new labor supply 359 newlab(node_macro, year_all) = SUM(year_all2$( seq_period(year_all2,year_all) ), (labor(node_macro, year_all) - labor(node_macro, year_all2)*(1 - depr(node_macro))**duration_period(year_all))$((labor(node_macro, year_all) - labor(node_macro, year_all2)*(1 - depr(node_macro))**duration_period(year_all)) > 0)) + epsilon ; 360 * calculation of utility discount factor based on discount rate (drate) 361 udf(node_macro, year_all) = SUM(year_all2$( seq_period(year_all2,year_all) ), udf(node_macro, year_all2) * (1 - (drate(node_macro) - grow(node_macro, year_all)))**duration_period(year_all)) ; 362 ); 363 364 DISPLAY labor, newlab, udf; 365 366 * ------------------------------------------------------------------------------ 367 * Calculation of base year energy system costs, capital stock and GDP components (investment, consumption, production) 368 * ------------------------------------------------------------------------------ 369 370 ecst0(node_macro) = sum(macro_base_period, total_cost(node_macro,macro_base_period)) ; 371 372 gdp_base(node_macro) = sum(macro_base_period, historical_gdp(node_macro,macro_base_period) / 1000) ; 373 374 k0(node_macro) = kgdp(node_macro) * gdp_base(node_macro) ; 375 376 * pseudo loop over base_period set which includes single element 377 LOOP(macro_base_period, 378 * VK, 08 April 2008: avoid negative starting values as this causes error in program execution 379 i0(node_macro) = (k0(node_macro) * (grow(node_macro, macro_base_period) + depr(node_macro)))$(k0(node_macro) * (grow(node_macro, macro_base_period) + depr(node_macro)) > 0) + epsilon ; 380 ); 381 c0(node_macro) = gdp_base(node_macro) - i0(node_macro) - ecst0(node_macro)/1000 ; 382 y0(node_macro) = gdp_base(node_macro) ; 383 384 DISPLAY ecst0, k0, i0, c0, y0 ; 385 386 * ------------------------------------------------------------------------------ 387 * Introduced fix for running MACRO myopically when the finite time horizon correction 388 * of the utility function causes problems in case of labour productivity growth rates 389 * that are greater than drate = depr. To avoid negative values the absolute value is 390 * simply taken. 391 * ------------------------------------------------------------------------------ 392 393 finite_time_corr(node_macro, year) = abs(drate(node_macro) - grow(node_macro, year)) ; INCLUDE c:\repo\message_ix\message_ix\model\MACRO/macro_core.gms 395 *** 396 * MACRO core formulation 397 * ====================== 398 * 399 * MACRO is a macroeconomic model maximizing the intertemporal utility function of a single representative producer-consumer 400 * in each node (or macro-economic region). The optimization result is a sequence of optimal savings, investment, and consumption decisions. 401 * The main variables of the model are the capital stock, available labor, and commodity inputs, which together determine the 402 * total output of an economy according to a nested constant elasticity of substitution (CES) production function. End-use service 403 * demands in the (commercial) demand categories of MESSAGE is determined within the model, and is consistent with commodity 404 * supply curves, which are inputs to the model. 405 * 406 *** 407 408 *----------------------------------------------------------------------------------------------------------------------* 409 * Notation declaration * 410 *----------------------------------------------------------------------------------------------------------------------* 411 412 *** 413 * Notation declaration 414 * ~~~~~~~~~~~~~~~~~~~~ 415 * The following short notation is used in the mathematical description relative to the GAMS code: 416 * 417 * ============== =============================== =================================================================== 418 * Math Notation GAMS set & index notation Description 419 * ============== =============================== =================================================================== 420 * :math:`n` node (or node_active in loops) spatial node corresponding to the macro-economic MESSAGE regions 421 * :math:`y` year year (2005, 2010, 2020, ..., 2100) 422 * :math:`s` sector sector corresponding to the (commercial) end-use demands of MESSAGE 423 * ============== =============================== =================================================================== 424 * 425 * A listing of all parameters used in MACRO together with a decription can be found in the table below. 426 * 427 * =========================== ================================================================================================================================ 428 * Parameter Description 429 * =========================== ================================================================================================================================ 430 * :math:`duration\_period_y` Number of years in time period :math:`y` (forward diff) 431 * :math:`total\_cost_{n,y}` Total system costs in region :math:`n` and period :math:`y` from MESSAGE model run 432 * :math:`enestart_{n,s,y}` Consumption level of (commercial) end-use services :math:`s` in region :math:`n` and period :math:`y` from MESSAGE model run 433 * :math:`eneprice_{n,s,y}` Shadow prices of (commercial) end-use services :math:`s` in region :math:`n` and period :math:`y` from MESSAGE model run 434 * :math:`\epsilon_n` Elasticity of substitution between capital-labor and total energy in region :math:`n` 435 * :math:`\rho_n` :math:`\epsilon - 1 / \epsilon` where :math:`\epsilon` is the elasticity of subsitution in region :math:`n` 436 * :math:`depr_n` Annual depreciation rate in region :math:`n` 437 * :math:`\alpha_n` Capital value share parameter in region :math:`n` 438 * :math:`a_n` Production function coefficient of capital and labor in region :math:`n` 439 * :math:`b_{n,s}` Production function coefficients of the different end-use sectors in region :math:`n`, sector :math:`s` and period :math:`y` 440 * :math:`udf_{n,y}` Utility discount factor in period year in region :math:`n` and period :math:`y` 441 * :math:`newlab_{n,y}` New vintage of labor force in region :math:`n` and period :math:`y` 442 * :math:`grow_{n,y}` Annual growth rates of potential GDP in region :math:`n` and period :math:`y` 443 * :math:`aeei_{n,s,y}` Autonomous energy efficiency improvement (AEEI) in region :math:`n`, sector :math:`s` and period :math:`y` 444 * :math:`fin\_time_{n,y}` finite time horizon correction factor in utility function in region :math:`n` and period :math:`y` 445 * =========================== ================================================================================================================================ 446 *** 447 448 *----------------------------------------------------------------------------------------------------------------------* 449 * Variable definitions * 450 *----------------------------------------------------------------------------------------------------------------------* 451 452 *** 453 * Decision variables 454 * ~~~~~~~~~~~~~~~~~~~~ 455 * 456 * ======================== ==================================================== ====================================================================================================== 457 * Variable Definition Description 458 * ======================== ==================================================== ====================================================================================================== 459 * :math:`K_{n,y}` :math:`{K}_{n, y}\geq 0 ~ \forall n, y` Capital stock in region :math:`n` and period :math:`y` 460 * :math:`KN_{n,y}` :math:`{KN}_{n, y}\geq 0 ~ \forall n, y` New Capital vintage in region :math:`n` and period :math:`y` 461 * :math:`Y_{n,y}` :math:`{Y}_{n, y}\geq 0 ~ \forall n, y` Total production in region :math:`n` and period :math:`y` 462 * :math:`YN_{n,y}` :math:`{YN}_{n, y}\geq 0 ~ \forall n, y` New production vintage in region :math:`n` and period :math:`y` 463 * :math:`C_{n,y}` :math:`{C}_{n, y}\geq 0 ~ \forall n, y` Consumption in region :math:`n` and period :math:`y` 464 * :math:`I_{n,y}` :math:`{I}_{n, y}\geq 0 ~ \forall n, y` Investment in region :math:`n` and period :math:`y` 465 * :math:`PHYSENE_{n,s,y}` :math:`{PHYSENE}_{n, s, y}\geq 0 ~ \forall n, s, y` Physical end-use service use in region :math:`n`, sector :math:`s` and period :math:`y` 466 * :math:`PRODENE_{n,s,y}` :math:`{PRODENE}_{n, s, y}\geq 0 ~ \forall n, s, y` Value of end-use service in the production function in region :math:`n`, sector :math:`s` and period :math:`y` 467 * :math:`NEWENE_{n,s,y}` :math:`{NEWENE}_{n, s, y}\geq 0 ~ \forall n, s, y` New end-use service in the production function in region :math:`n`, sector :math:`s` and period :math:`y` 468 * :math:`EC_{n,y}` :math:`EC \in \left[-\infty..\infty\right]` Approximation of system costs based on MESSAGE results 469 * :math:`UTILITY` :math:`UTILITY \in \left[-\infty..\infty\right]` Utility function (discounted log of consumption) 470 * ======================== ==================================================== ====================================================================================================== 471 * 472 *** 473 474 * ------------------------------------------------------------------------------ 475 * model variable declaration 476 * ------------------------------------------------------------------------------ 477 478 POSITIVE VARIABLES 479 K(node, year_all) Capital stock in period year 480 KN(node, year_all) New Capital vintage in period year 481 Y(node, year_all) Production in period year 482 YN(node, year_all) New production vintage in period year 483 484 PHYSENE(node, sector, year_all) Physical end-use service or commodity use 485 PRODENE(node, sector, year_all) Value of end-use services or commodities in the production function 486 NEWENE(node, sector, year_all) New end-use service or commodity (production function value) 487 488 C(node, year_all) Consumption (Trillion $) 489 I(node, year_all) Investment (Trillion $) 490 ; 491 492 VARIABLES 493 UTILITY Utility function (discounted log of consumption) 494 EC(node, year_all) System costs (Trillion $) based on MESSAGE model run 495 ; 496 497 Variables 498 * auxiliary variables for demand, prices, costs and GDP (for reporting when MESSAGE is run with MACRO) 499 GDP(node,year_all) gross domestic product (GDP) in market exchange rates for MACRO reporting 500 ; 501 502 * ------------------------------------------------------------------------------ 503 * model equations declaration 504 * ------------------------------------------------------------------------------ 505 506 EQUATIONS 507 UTILITY_FUNCTION Utility funciton (discounted log of consumpiton summed over all projection periods) 508 CAPITAL_CONSTRAINT(node, year_all) Capital constraint 509 510 NEW_CAPITAL(node, year_all) New capital 511 NEW_PRODUCTION(node, year_all) New production 512 513 TOTAL_CAPITAL(node, year_all) Total capital stock across all vintages 514 TOTAL_PRODUCTION(node, year_all) Total production across all vintages 515 516 NEW_ENERGY(node, sector, year_all) New end-use services or commodities (production function) 517 ENERGY_SUPPLY(node, sector, *) Supply of end-use services or commodities 518 519 COST_ENERGY(node, year_all) system costs approximation based on MESSAGE input 520 TERMINAL_CONDITION(node, year_all) Terminal condition 521 ; 522 523 * ------------------------------------------------------------------------------ 524 * model equations definition 525 * ------------------------------------------------------------------------------ 526 527 *** 528 * Equation UTILITY_FUNCTION 529 * --------------------------------- 530 * The utility function which is maximized sums up the discounted logarithm of consumption of a single representative producer-consumer over the entire time horizon 531 * of the model. 532 * 533 * .. math:: {UTILITY} = \sum_{n} \bigg( & \sum_{y | ( ( {ord}( y ) > 1 ) \wedge ( {ord}( y ) < | y | ) )} {udf}_{n, y} \cdot {\log}( C_{n, y} ) \cdot {duration\_period}_{y} \\ 534 * + &\sum_{y | ( {ord}( y ) = | y | ) } {udf}_{n, y} \cdot {\log}( C_{n, y} ) \cdot \big( {duration\_period}_{y-1} + \frac{1}{{FIN\_TIME}_{n, y}} \big) \bigg) 535 * 536 * The utility discount rate for period :math:`y` is set to :math:`drate_{n} - grow_{n,y}`, where :math:`drate_{n}` is the discount rate used in MESSAGE, typically set to 5%, 537 * and :math:`grow` is the potential GDP growth rate. This choice ensures that in the steady state, the optimal growth rate is identical to the potential GDP growth rates :math:`grow`. 538 * The values for the utility discount rates are chosen for descriptive rather than normative reasons. The term :math:`\frac{{duration\_period}_{y} + {duration\_period}_{y-1}}{2}` mutliples the 539 * discounted logarithm of consumption with the period length. The final period is treated separately to include a correction factor :math:`\frac{1}{{FIN\_TIME}_{n, y}}` reflecting 540 * the finite time horizon of the model. Note that the sum over nodes :math:`node\_active` is artificial, because :math:`node\_active` only contains one element. 541 * 542 *** 543 544 UTILITY_FUNCTION.. 545 UTILITY =E= 546 SUM(node_active, 547 1000 * (SUM(year $ (NOT macro_base_period(year) AND NOT last_period(year)), 548 udf(node_active, year) * LOG(C(node_active, year)) * duration_period(year)) 549 + SUM(year $ last_period(year), 550 udf(node_active, year) * LOG(C(node_active, year)) * (duration_period(year) + 1/finite_time_corr(node_active, year)))) 551 ) 552 ; 553 554 *** 555 * Equation CAPITAL_CONSTRAINT 556 * --------------------------------- 557 * The capital constraint as in the first equation below specifies the allocation of total production among current consumption :math:`{C}_{n, y}`, investment :math:`{I}_{n, y}` into building up capital 558 * stock and energy costs :math:`{EC}_{n, y}` approximated based on MESSAGE system costs :math:`{total\_cost}_{n, r}`. The constraint assures that the net expenditures and savings cannot exceed the total income in a region. Investment excludes the sectors 559 * represented in MESSAGE and the MESSAGE system costs :math:`{total\_cost}_{n, r}` are derived from a previous MESSAGE model run inclduing all the energy systems costs, :math:`{COST NODAL}_{n, y}`, for a certain 560 * region considering the trade balance which is :math:`import\_cost_{n, y} - export\_cost_{n, y}`. The production function in MACRO only accounts for non-energy producing part of the 561 * economy and the energy system is modeled seperately in MESSAGE. In addition, MACRO does not include the trade of normal goods. Therefore, the revenues from fuel or emission certificate 562 * trade should be sepertely added to the total regional income. This is assured by including the trade balance in the :math:`{EC}_{n, y}`. As described in :cite:`manne_buying_1992`, 563 * the first-order optimality conditions lead to the Ramsey rule for the optimal allocation of investment and consumption over time. 564 565 * The GDP is reported as the sum of investment, consumption and energy costs without the trade balance. Positive contribution of energy costs to GDP would be counter balanced by the 566 * decrease of consumption and investment in the certain year as well as by the reduction in capacity to invest and grow the economy for later years. 567 * 568 * .. math:: Y_{n, y} = C_{n, y} + I_{n, y} + {EC}_{n, y} \qquad \forall{n, y} 569 * .. math:: {total\_cost}_{n, r} = COST NODAL_{n, y} + import\_cost_{r, y} - export\_cost_{n, y} \qquad \forall{n, y} 570 * .. math:: GDP_{n, y} = C_{n, y} + I_{n, y} + {EC}_{n, y} - (import\_cost_{r, y} - export\_cost_{n, y}) \qquad \forall{n, y} 571 * 572 *** 573 574 CAPITAL_CONSTRAINT(node_active, year).. 575 Y(node_active, year) =E= 576 C(node_active, year) + I(node_active, year) + EC(node_active, year) 577 ; 578 579 *** 580 * Equation NEW_CAPITAL 581 * --------------------------------- 582 * The accumulation of capital in the sectors not represented in MESSAGE is governed by new capital stock equation. Net capital formation :math:`{KN}_{n,y}` is derived from gross 583 * investments :math:`{I}_{n,y}` minus depreciation of previsouly existing capital stock. 584 * 585 * .. math:: {KN}_{n,y} = {duration\_period}_{y} \cdot I_{n,y} \qquad \forall{n, y > 1} 586 * 587 * Here, the initial boundary condition for the base year :math:`y_0` implies for the investments that :math:`I_{n,y_0} = (grow_{n,y_0} + depr_{n}) \cdot kgdp_{n} \cdot gdp_{n,y_0}`. 588 *** 589 590 NEW_CAPITAL(node_active, year) $ (NOT macro_base_period(year)).. 591 KN(node_active, year) =E= duration_period(year) * I(node_active, year) 592 ; 593 594 *** 595 * Equation NEW_PRODUCTION 596 * --------------------------------- 597 * MACRO employs a nested constant elasticity of substitution (CES) production function with capital, labor and the (commercial) end-use services 598 * represented in MESSAGE as inputs. This version of the production function is equaivalent to that in MARKAL-MACRO. 599 * 600 * .. math:: {YN}_{n,y} = { \left( {a}_{n} \cdot {{KN}_{n, y}}^{ ( {\rho}_{n} \cdot {\alpha}_{n} ) } \cdot {{newlab}_{n, y}}^{ ( {\rho}_{n} \cdot ( 1 - {\alpha}_{n} ) ) } + \displaystyle \sum_{s} ( {b}_{n, s} \cdot {{NEWENE}_{n, s, y}}^{{\rho}_{n}} ) \right) }^{ \frac{1}{{\rho}_{n}} } \qquad \forall{ n, y > 1} 601 * 602 *** 603 604 NEW_PRODUCTION(node_active, year) $ (NOT macro_base_period(year)).. 605 YN(node_active, year) =E= 606 ( LAKL(node_active) * KN(node_active, year)**(rho(node_active) * kpvs(node_active)) * newlab(node_active, year)**(RHO(node_active) * (1 - kpvs(node_active))) 607 + SUM(sector, PRFCONST(node_active, sector) * NEWENE(node_active, sector, year)**rho(node_active)) )**(1/rho(node_active)) 608 ; 609 610 *** 611 * Equation TOTAL_CAPITAL 612 * --------------------------------- 613 * Equivalent to the total production equation above, the total capital stock, again excluding those sectors which are modeled in MESSAGE, is then simply a summation 614 * of capital stock in the previous period :math:`y-1`, depreciated with the depreciation rate :math:`depr_{n}`, and the capital stock added in the current period :math:`y`. 615 * 616 * .. math:: K_{n, y} = K_{n, y-1} \cdot { \left( 1 - {depr}_n \right) }^{duration\_period_{y}} + {KN}_{n, y} \qquad \forall{ n, y > 1} 617 * 618 *** 619 620 TOTAL_CAPITAL(node_active, year) $ (NOT macro_base_period(year)).. 621 K(node_active, year) =E= 622 SUM(year2$( seq_period(year2,year) ), K(node_active, year2)) * (1 - depr(node_active))**duration_period(year) + KN(node_active, year) 623 ; 624 625 *** 626 * Equation TOTAL_PRODUCTION 627 * --------------------------------- 628 * Total production in the economy (excluding energy sectors) is the sum of production from assets that were already existing in the previous period :math:`y-1`, 629 * depreciated with the depreciation rate :math:`depr_{n}`, and the new vintage of production from period :math:`y`. 630 * 631 * .. math:: Y_{n, y} = Y_{n, y-1} \cdot { \left( 1 - {depr}_n \right) }^{duration\_period_{y}} + {YN}_{n, y} \qquad \forall{ n, y > 1} 632 * 633 *** 634 635 TOTAL_PRODUCTION(node_active, year) $ (NOT macro_base_period(year)).. 636 Y(node_active, year) =E= 637 SUM(year2$( seq_period(year2,year) ), Y(node_active, year2)) * (1 - depr(node_active))**duration_period(year) + YN(node_active, year) 638 ; 639 640 *** 641 * Equation NEW_ENERGY 642 * --------------------------------- 643 * Total energy production (across the six commerical energy demands :math:`s`) is the sum of production from all assets that were already existing 644 * in the previous period :math:`y-1`, depreciated with the depreciation rate :math:`depr_{n}`, and the the new vintage of energy production from 645 * period :math:`y`. 646 * 647 * .. math:: {PRODENE}_{n, s, y} = {PRODENE}_{n, s, y-1} \cdot { \left( 1 - {depr}_n \right) }^{duration\_period_{y}} + {NEWENE}_{n, s, y} \qquad \forall{ n, s, y > 1} 648 * 649 *** 650 651 NEW_ENERGY(node_active, sector, year) $ (NOT macro_base_period(year)).. 652 PRODENE(node_active, sector, year) =E= 653 SUM(year2$( seq_period(year2,year) ), PRODENE(node_active, sector, year2)) * (1 - depr(node_active))**duration_period(year) + NEWENE(node_active, sector, year) 654 ; 655 656 *** 657 * Equation ENERGY_SUPPLY 658 * --------------------------------- 659 * The relationship below establishes the link between physical energy :math:`{PHYSENE}_{r, s, y}` as accounted in MESSAGE for the six commerical energy demands :math:`s` and 660 * energy in terms of monetary value :math:`{PRODENE}_{n, s, y}` as specified in the production function of MACRO. 661 * 662 * .. math:: {PHYSENE}_{n, s, y} \geq {PRODENE}_{n, s, y} \cdot {aeei\_factor}_{n, s, y} \qquad \forall{ n, s, y > 1} 663 * 664 * The cumulative effect of autonomous energy efficiency improvements (AEEI) is captured in 665 * :math:`{aeei\_factor}_{n,s,y} = {aeei\_factor}_{n, s, y-1} \cdot (1 - {aeei}_{n,s,y})^{duration\_period}_{y}` 666 * with :math:`{aeei\_factor}_{n,s,y=1} = 1`. Therefore, choosing the :math:`{aeei}_{n,s,y}` coefficients appropriately offers the possibility to calibrate MACRO to a certain energy demand trajectory 667 * from MESSAGE. 668 * 669 *** 670 671 ENERGY_SUPPLY(node_active, sector, year) $ (NOT macro_base_period(year)).. 672 PHYSENE(node_active, sector, year) =G= 673 PRODENE(node_active, sector, year) * aeei_factor(node_active, sector, year) 674 ; 675 676 *** 677 * Equation COST_ENERGY 678 * --------------------------------- 679 * Energy system costs are based on a previous MESSAGE model run. The approximation of energy system costs in vicinity of the MESSAGE solution are approximated by a Taylor expansion with the 680 * first order term using shadow prices :math:`eneprice_{s, y, n}` of the MESSAGE model's solution and a quadratic second-order term. 681 * 682 * .. math:: {EC}_{n, y} = & {total\_cost}_{n, r} \\ 683 * + & \displaystyle \sum_{s} {eneprice}_{s, y, n} \cdot \left( {PHYSENE}_{n, s, y} - {enestart}_{s, y, n} \right) \\ 684 * + & \displaystyle \sum_{s} \frac{{eneprice}_{s, y, n}}{{enestart}_{s, y, n}} \cdot \left( {PHYSENE}_{n, s, y} - {enestart}_{s, y, n} \right)^2 \qquad \forall{ n, y > 1} 685 * 686 *** 687 688 COST_ENERGY(node_active, year) $ (NOT macro_base_period(year)).. 689 EC(node_active, year) =E= 690 (total_cost(node_active, year)/1000 691 + SUM(sector, eneprice(node_active, sector, year) * 1E-3 * (PHYSENE(node_active, sector, year) - enestart(node_active, sector, year))) 692 + SUM(sector, eneprice(node_active, sector, year) * 1E-3 / enestart(node_active, sector, year) * (PHYSENE(node_active, sector, year) - enestart(node_active, sector, year)) * (PHYSENE(node_active, sector, year) - enestart(node_active, sector, year)))) 693 ; 694 695 *** 696 * Equation TERMINAL_CONDITION 697 * --------------------------------- 698 * Given the finite time horizon of MACRO, a terminal constraint needs to be applied to ensure that investments are chosen at an appropriate level, i.e. to replace depriciated capital and 699 * provide net growth of capital stock beyond MACRO's time horizon :cite:`manne_buying_1992`. The goal is to avoid to the extend possible model artifacts resulting from this finite time horizon 700 * cutoff. 701 * 702 * .. math:: K_{n, y} \cdot \left( grow_{n, y} + {depr}_n \right) \leq I_{n, y} \qquad \forall{ n, y = last year} 703 *** 704 705 TERMINAL_CONDITION(node_active, last_period).. 706 I(node_active, last_period) =G= K(node_active, last_period) * (grow(node_active, last_period) + depr(node_active)) 707 ; 708 709 * ------------------------------------------------------------------------------ 710 * model definition 711 * ------------------------------------------------------------------------------ 712 713 MODEL MESSAGE_MACRO / 714 UTILITY_FUNCTION 715 CAPITAL_CONSTRAINT 716 NEW_CAPITAL 717 NEW_PRODUCTION 718 TOTAL_CAPITAL 719 TOTAL_PRODUCTION 720 NEW_ENERGY 721 ENERGY_SUPPLY 722 COST_ENERGY 723 TERMINAL_CONDITION 724 / ; 725 726 MESSAGE_MACRO.optfile = 1; INCLUDE c:\repo\message_ix\message_ix\model\MACRO/macro_calibration.gms 728 Parameters 729 demand_scale(node,sector,year_all) 730 demand_new(node,sector,year_all) 731 aeei_correction(node,sector,year_all) 732 growth_correction(node,year_all) 733 gdp_scale(node, year_all) 734 gdp_mer_macro(node, year_all) 735 ; 736 737 Scalar 738 max_scale / 0.2 / 739 max_it / 100 / 740 ; 741 742 Variables 743 aeei_calibrate(node,sector,year_all) 744 grow_calibrate(node,year_all) 745 N_ITER 746 MAX_ITER 747 ; 748 749 * ------------------------------------------------------------------------------ 750 * solving the model region by region 751 * ------------------------------------------------------------------------------ 752 753 FOR (ctr = 1 TO max_it BY 1, 754 755 * ------------------------------------------------------------------------------ 756 * solve MACRO model 757 * ------------------------------------------------------------------------------ 758 INCLUDE c:\repo\message_ix\message_ix\model\MACRO/macro_solve.gms 760 761 * ------------------------------------------------------------------------------ 762 * Start values of variables inside feasible domain (positive variables) 763 * ------------------------------------------------------------------------------ 764 765 SVKN(node_macro, year) = ((potential_gdp(node_macro, year) - SUM(year2$( seq_period(year2,year) ), potential_gdp(node_macro, year2)) * (1 - depr(node_macro))**duration_period(year)) * kgdp(node_macro)) $ (NOT macro_base_period(year)); 766 SVNEWE(node_macro, sector, year) = (demand_base(node_macro, sector) * growth_factor(node_macro, year) - demand_base(node_macro, sector) * (1 - depr(node_macro))**(SUM(year2 $ macro_base_period(year2), duration_period_sum(year2, year)))) $ (NOT macro_base_period(year)); 767 768 NEWENE.L(node_macro, sector, macro_horizon) = SVNEWE(node_macro, sector, macro_horizon)$(SVNEWE(node_macro, sector, macro_horizon) > 0) + epsilon ; 769 PHYSENE.L(node_macro, sector, year) = enestart(node_macro, sector, year) ; 770 KN.L(node_macro, macro_horizon) = SVKN(node_macro, macro_horizon) $ (SVKN(node_macro, macro_horizon) > 0) + epsilon ; 771 772 * ------------------------------------------------------------------------------ 773 * Lower bounds on variables help to avoid singularities 774 * ------------------------------------------------------------------------------ 775 776 K.LO(node_macro, macro_horizon) = LOTOL(node_macro) * k0(node_macro) ; 777 KN.LO(node_macro, macro_horizon) = LOTOL(node_macro) * i0(node_macro) * duration_period(macro_horizon) ; 778 Y.LO(node_macro, macro_horizon) = LOTOL(node_macro) * y0(node_macro) ; 779 YN.LO(node_macro, macro_horizon) = LOTOL(node_macro) * y0(node_macro) * newlab(node_macro, macro_horizon) ; 780 781 C.LO(node_macro, macro_horizon) = LOTOL(node_macro) * c0(node_macro) ; 782 I.LO(node_macro, macro_horizon) = LOTOL(node_macro) * i0(node_macro) ; 783 784 PRODENE.LO(node_macro, sector, macro_horizon) = LOTOL(node_macro) * enestart(node_macro, sector, macro_horizon) / aeei_factor(node_macro, sector, macro_horizon) ; 785 NEWENE.LO(node_macro, sector, macro_horizon) = LOTOL(node_macro) * enestart(node_macro, sector, macro_horizon) / aeei_factor(node_macro, sector, macro_horizon) ; 786 787 * ------------------------------------------------------------------------------ 788 * Base year values of variables are fixed to historical values 789 * ------------------------------------------------------------------------------ 790 791 * division by aeei_factor is necesary in case MACRO starts after initialize_period (in case of slicing) 792 PRODENE.FX(node_macro, sector, macro_base_period) = demand_base(node_macro, sector) / aeei_factor(node_macro, sector, macro_base_period) ; 793 794 Y.FX(node_macro, macro_base_period) = y0(node_macro) ; 795 K.FX(node_macro, macro_base_period) = k0(node_macro) ; 796 C.FX(node_macro, macro_base_period) = c0(node_macro) ; 797 I.FX(node_macro, macro_base_period) = i0(node_macro) ; 798 EC.FX(node_macro, macro_base_period) = y0(node_macro) - i0(node_macro) - c0(node_macro) ; 799 800 * ------------------------------------------------------------------------------ 801 * solving the model region by region 802 * ------------------------------------------------------------------------------ 803 804 node_active(node) = no ; 805 806 LOOP(node $ node_macro(node), 807 808 node_active(node_macro) = no ; 809 node_active(node) = YES; 810 * DISPLAY node_active ; 811 812 * ------------------------------------------------------------------------------ 813 * solve statement 814 * ------------------------------------------------------------------------------ 815 816 SOLVE MESSAGE_MACRO MAXIMIZING UTILITY USING NLP ; 817 818 * write model status summary (by node) 819 * status(node,'modelstat') = MESSAGE_MACRO.modelstat ; 820 * status(node,'solvestat') = MESSAGE_MACRO.solvestat ; 821 * status(node,'resUsd') = MESSAGE_MACRO.resUsd ; 822 * status(node,'objEst') = MESSAGE_MACRO.objEst ; 823 * status(node,'objVal') = MESSAGE_MACRO.objVal ; 824 825 ) ; 826 827 828 demand_new(node_macro,sector,year) = PHYSENE.L(node_macro, sector, year) * 1000 ; 829 aeei_correction(node_macro,sector,year) = 0 ; 830 growth_correction(node_macro,year) = 0 ; 831 832 demand_scale(node_macro,sector,year) = min(demand_new(node_macro,sector,year) / demand_MESSAGE(node_macro,sector,year), 1 + max_scale) ; 833 demand_scale(node_macro,sector,year) = max(demand_scale(node_macro,sector,year), 1 - max_scale) ; 834 demand_new(node_macro,sector,year) = demand_scale(node_macro,sector,year) * demand_MESSAGE(node_macro,sector,year) ; 835 836 If (mod(ctr, 2) eq 0, 837 * calculate correction factor for labour force growth rate and apply for next iteration of MACRO 838 gdp_mer_macro(node_macro,year) = (I.L(node_macro,year) + C.L(node_macro,year) + EC.L(node_macro,year)) * 1000 ; 839 gdp_scale(node_macro,year) = gdp_mer_macro(node_macro,year)/gdp_calibrate(node_macro,year) ; 840 growth_correction(node_macro,year) $ (NOT macro_base_period(year)) = SUM(year2 $ seq_period(year2,year), ((gdp_calibrate(node_macro,year)/gdp_calibrate(node_macro,year2))**(1/duration_period(year))) 841 - ((gdp_mer_macro(node_macro,year)/gdp_mer_macro(node_macro,year2))**(1/duration_period(year))) ) ; 842 grow(node_macro,year) = grow(node_macro,year) + growth_correction(node_macro,year) ; 843 Elseif mod(ctr, 2) eq 1, 844 * calculate correction factor for aeei and apply for next iteration of MACRO 845 aeei_correction(node_macro,sector,year) $ (NOT macro_base_period(year)) = SUM(year2 $ seq_period(year2,year), ((demand_new(node_macro,sector,year)/demand_MESSAGE(node_macro,sector,year)) / (demand_new(node_macro,sector,year2)/demand_MESSAGE(node_macro,sector,year2)))**(1/duration_period(year)) - 1) ; 846 aeei(node_macro,sector,year) = aeei(node_macro,sector,year) + aeei_correction(node_macro,sector,year); 847 ) ; 848 DISPLAY demand_scale, aeei_correction ; 849 DISPLAY growth_correction, gdp_mer_macro, gdp_scale ; 850 851 * ------------------------------------------------------------------------------ 852 * recalculation of parameters that are AEEI or growth dependent 853 * ------------------------------------------------------------------------------ 854 855 * calculate cumulative growth effect and potential GDP 856 growth_factor(node_macro, macro_base_period) = 1; 857 858 LOOP(year $ (NOT macro_base_period(year)), 859 growth_factor(node_macro, year) = SUM(year2$( seq_period(year2,year) ), growth_factor(node_macro, year2) * (1 + grow(node_macro, year))**(duration_period(year))) ; 860 ) ; 861 862 potential_gdp(node_macro, year) = sum(macro_base_period, historical_gdp(node_macro, macro_base_period)/1000) * growth_factor(node_macro, year) ; 863 864 * calculation of cumulative effect of AEEI over time 865 aeei_factor(node_macro, sector, macro_initial_period) = 1; 866 867 LOOP(year_all $ ( ORD(year_all) > sum(year_all2$( macro_initial_period(year_all2) ), ORD(year_all2) ) ), 868 aeei_factor(node_macro, sector, year_all) = SUM(year_all2$( seq_period(year_all2,year_all) ), ( (1 - aeei(node_macro, sector, year_all)) ** duration_period(year_all) ) * aeei_factor(node_macro, sector, year_all2)) 869 ); 870 871 * recalculate total labor supply, new labor supply and utility discount factor 872 udf(node_macro, macro_base_period) = 1 ; 873 labor(node_macro, macro_base_period) = 1 ; 874 875 LOOP(year_all $( ORD(year_all) > sum(year_all2$( macro_initial_period(year_all2) ), ORD(year_all2) ) ), 876 * exogenous labor supply growth (including both changes in labor force and labor productivity growth) 877 labor(node_macro, year_all) = SUM(year_all2$( seq_period(year_all2,year_all) ), labor(node_macro, year_all2) * (1 + grow(node_macro, year_all))**duration_period(year_all)) ; 878 * new labor supply 879 newlab(node_macro, year_all) = SUM(year_all2$( seq_period(year_all2,year_all) ), (labor(node_macro, year_all) - labor(node_macro, year_all2)*(1 - depr(node_macro))**duration_period(year_all))$((labor(node_macro, year_all) - labor(node_macro, year_all2)*(1 - depr(node_macro))**duration_period(year_all)) > 0)) + epsilon ; 880 * calculation of utility discount factor based on discount rate (drate) 881 udf(node_macro, year_all) = SUM(year_all2$( seq_period(year_all2,year_all) ), udf(node_macro, year_all2) * (1 - (drate(node_macro) - grow(node_macro, year_all)))**duration_period(year_all)) ; 882 ); 883 884 * recalcualte finite time horizon correction of utility function 885 finite_time_corr(node_macro, year) = abs(drate(node_macro) - grow(node_macro, year)) ; 886 887 ) ; 888 889 * export calibration results as reporting variables to GDX 890 aeei_calibrate.L(node_macro,sector,year) = aeei(node_macro,sector,year) ; 891 grow_calibrate.L(node_macro,year) = grow(node_macro,year) ; 892 893 * subtract one due to 1-based indexing 894 N_ITER.L = ctr - 1; 895 MAX_ITER.L = max_it ; 896 897 * write solution statistics 898 status('MESSAGE_MACRO','modelstat') = 1 ; 899 status('MESSAGE_MACRO','solvestat') = 1 ; 900 status('MESSAGE_MACRO','resUsd') = MESSAGE_MACRO.resUsd ; 901 status('MESSAGE_MACRO','objEst') = MESSAGE_MACRO.objEst ; 902 status('MESSAGE_MACRO','objVal') = MESSAGE_MACRO.objVal ; INCLUDE c:\repo\message_ix\message_ix\model\MACRO/macro_reporting.gms 904 * ------------------------------------------------------------------------------ 905 * MACRreport 906 * ------------------------------------------------------------------------------ 907 908 GDP.L(node_macro,year) = (I.L(node_macro,year) + C.L(node_macro,year) + EC.L(node_macro,year)) * 1000 ; 909 910 * dump all input data, processed data and results to a gdx file (with additional comment as name extension if provided) 912 execute_unload "c:\repo\message_ix\message_ix\model\output\MsgOutput_ENGAGE_SSP2_v4.1.8.3.1_T4.5_r3.1_test_baseline_prep_macro_macro.gdx" 913 GAMS 33.1.0 rb238721 Released Nov 1, 2020 WEX-WEI x86 64bit/MS Windows - 09/13/22 07:47:46 Page 2 G e n e r a l A l g e b r a i c M o d e l i n g S y s t e m Include File Summary SEQ GLOBAL TYPE PARENT LOCAL FILENAME 1 1 INPUT 0 0 c:\repo\message_ix\message_ix\model\MACRO_run.gms 2 3 IF EXIST 1 3 c:\repo\message_ix\message_ix\model\data\MsgData_ENGAGE_SSP2_v4.1.8.3.1_T4.5_r3.1_test_baseline_prep_macro_macro.gdx 3 9 INCLUDE 1 9 .c:\repo\message_ix\message_ix\model\MACRO/macro_data_load.gms 4 131 GDXIN 3 122 .c:\repo\message_ix\message_ix\model\data\MsgData_ENGAGE_SSP2_v4.1.8.3.1_T4.5_r3.1_test_baseline_prep_macro_macro.gdx 5 163 INCLUDE 3 154 ..c:\repo\message_ix\message_ix\model\includes/period_parameter_assignment.gms 6 394 INCLUDE 1 10 .c:\repo\message_ix\message_ix\model\MACRO/macro_core.gms 7 727 INCLUDE 1 11 .c:\repo\message_ix\message_ix\model\MACRO/macro_calibration.gms 8 759 INCLUDE 7 32 ..c:\repo\message_ix\message_ix\model\MACRO/macro_solve.gms 9 903 INCLUDE 1 12 .c:\repo\message_ix\message_ix\model\MACRO/macro_reporting.gms COMPILATION TIME = 0.031 SECONDS 3 MB 33.1.0 rb238721 WEX-WEI GAMS 33.1.0 rb238721 Released Nov 1, 2020 WEX-WEI x86 64bit/MS Windows - 09/13/22 07:47:46 Page 3 G e n e r a l A l g e b r a i c M o d e l i n g S y s t e m E x e c u t i o n ---- 152 SET node_macro nodes actually relevant for the MACRO mode R11_AFR, R11_CPA, R11_EEU, R11_FSU, R11_LAM, R11_MEA, R11_NAM, R11_PAO, R11_PAS, R11_SAS, R11_WEU ---- 286 SET cat_year mapping of years to respective categories (for simple reference in summations etc.) 1950 1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020 2025 2030 2035 2040 2045 2050 2055 2060 2070 2080 2090 2100 2110 1950 YES 1955 YES 1960 YES 1965 YES 1970 YES 1975 YES 1980 YES 1985 YES 1990 YES 1995 YES 2000 YES 2005 YES 2010 YES 2015 YES 2020 YES 2025 YES 2030 YES 2035 YES 2040 YES 2045 YES 2050 YES 2055 YES 2060 YES 2070 YES 2080 YES 2090 YES 2100 YES 2110 YES firstmodelyear YES lastmodelyear YES initializeyear_macro YES cumulative YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES ---- 286 SET macro_base_period flag for base year period in model horizon (period prior to first model period) - used in MACRO 2015 ---- 286 SET first_period flag for first period in model horizon 2020 ---- 286 SET last_period flag for last period in model horizon 2110 ---- 286 SET macro_horizon set of periods included in the MACRO model horizon 2015, 2020, 2025, 2030, 2035, 2040, 2045, 2050, 2055, 2060, 2070, 2080, 2090, 2100, 2110 ---- 286 SET year years included in a model instance (for myopic or rolling-horizon optimization) 2015, 2020, 2025, 2030, 2035, 2040, 2045, 2050, 2055, 2060, 2070, 2080, 2090, 2100, 2110 ---- 293 SET node_macro nodes actually relevant for the MACRO mode R11_AFR, R11_CPA, R11_EEU, R11_FSU, R11_LAM, R11_MEA, R11_NAM, R11_PAO, R11_PAS, R11_SAS, R11_WEU ---- 293 PARAMETER node_order order for members of set node World 1.000, R11_AFR 2.000, R11_CPA 3.000, R11_EEU 4.000, R11_FSU 5.000, R11_GLB 6.000, R11_LAM 7.000, R11_MEA 8.000, R11_NAM 9.000, R11_PAO 10.000, R11_PAS 11.000, R11_SAS 12.000, R11_WEU 13.000 ---- 311 PARAMETER enestart Consumption level of energy services from MESSAGE model run 2015 2020 2025 2030 2035 2040 2045 2050 2055 2060 2070 2080 2090 2100 2110 R11_AFR.i_feed 0.010 0.010 0.012 0.014 0.017 0.020 0.028 0.036 0.056 0.075 0.139 0.190 0.235 0.287 0.350 R11_AFR.i_spec 0.018 0.022 0.028 0.035 0.046 0.057 0.078 0.100 0.135 0.170 0.249 0.331 0.417 0.517 0.641 R11_AFR.i_therm 0.031 0.040 0.052 0.065 0.087 0.108 0.145 0.182 0.236 0.291 0.412 0.532 0.654 0.794 0.965 R11_AFR.rc_spec 0.005 0.008 0.014 0.019 0.029 0.039 0.056 0.073 0.102 0.130 0.228 0.377 0.574 0.835 1.212 R11_AFR.rc_therm 0.096 0.133 0.174 0.215 0.259 0.303 0.369 0.435 0.513 0.591 0.785 1.038 1.268 1.414 1.576 R11_AFR.transport 0.071 0.088 0.115 0.142 0.179 0.216 0.265 0.315 0.379 0.443 0.638 0.947 1.363 1.889 2.617 R11_CPA.i_feed 0.181 0.203 0.224 0.246 0.259 0.272 0.283 0.293 0.298 0.302 0.302 0.301 0.295 0.286 0.276 R11_CPA.i_spec 0.250 0.356 0.389 0.422 0.433 0.444 0.444 0.444 0.435 0.426 0.402 0.373 0.339 0.307 0.277 R11_CPA.i_therm 0.571 0.634 0.687 0.741 0.769 0.797 0.810 0.823 0.817 0.811 0.788 0.753 0.687 0.618 0.554 R11_CPA.rc_spec 0.044 0.095 0.124 0.153 0.184 0.216 0.253 0.291 0.325 0.360 0.427 0.472 0.498 0.517 0.537 R11_CPA.rc_therm 0.262 0.340 0.431 0.521 0.573 0.624 0.641 0.657 0.659 0.660 0.646 0.623 0.598 0.574 0.551 R11_CPA.transport 0.456 0.553 0.671 0.789 0.883 0.976 1.038 1.099 1.130 1.161 1.195 1.202 1.198 1.194 1.190 R11_EEU.i_feed 0.020 0.021 0.021 0.022 0.022 0.022 0.023 0.024 0.024 0.024 0.025 0.025 0.026 0.026 0.027 R11_EEU.i_spec 0.016 0.018 0.019 0.019 0.020 0.020 0.021 0.021 0.022 0.022 0.022 0.023 0.023 0.023 0.023 R11_EEU.i_therm 0.032 0.032 0.032 0.033 0.034 0.035 0.036 0.037 0.038 0.039 0.041 0.041 0.042 0.043 0.044 R11_EEU.rc_spec 0.010 0.014 0.018 0.022 0.026 0.030 0.033 0.037 0.040 0.043 0.049 0.056 0.061 0.067 0.074 R11_EEU.rc_therm 0.068 0.076 0.078 0.081 0.082 0.084 0.083 0.083 0.083 0.082 0.082 0.081 0.080 0.079 0.078 R11_EEU.transport 0.068 0.079 0.088 0.098 0.106 0.114 0.120 0.125 0.130 0.135 0.144 0.151 0.156 0.161 0.167 R11_FSU.i_feed 0.117 0.130 0.131 0.132 0.131 0.130 0.129 0.127 0.125 0.124 0.120 0.116 0.112 0.106 0.100 R11_FSU.i_spec 0.039 0.046 0.050 0.054 0.056 0.059 0.061 0.063 0.065 0.066 0.069 0.071 0.074 0.075 0.076 R11_FSU.i_therm 0.149 0.157 0.162 0.167 0.169 0.171 0.172 0.174 0.175 0.176 0.178 0.179 0.178 0.177 0.175 R11_FSU.rc_spec 0.022 0.033 0.042 0.050 0.059 0.069 0.077 0.086 0.094 0.102 0.121 0.137 0.153 0.170 0.187 R11_FSU.rc_therm 0.240 0.248 0.256 0.264 0.268 0.272 0.275 0.278 0.279 0.280 0.281 0.277 0.270 0.265 0.260 R11_FSU.transport 0.188 0.209 0.233 0.257 0.280 0.302 0.318 0.335 0.351 0.367 0.404 0.436 0.463 0.490 0.519 R11_LAM.i_feed 0.050 0.057 0.065 0.072 0.078 0.085 0.090 0.095 0.099 0.104 0.113 0.120 0.129 0.136 0.144 R11_LAM.i_spec 0.050 0.065 0.078 0.090 0.102 0.113 0.123 0.134 0.143 0.151 0.168 0.183 0.198 0.211 0.225 R11_LAM.i_therm 0.114 0.133 0.149 0.165 0.180 0.196 0.212 0.227 0.237 0.246 0.259 0.273 0.290 0.306 0.323 R11_LAM.rc_spec 0.022 0.033 0.048 0.063 0.082 0.102 0.126 0.151 0.174 0.197 0.248 0.302 0.360 0.420 0.488 R11_LAM.rc_therm 0.072 0.089 0.105 0.121 0.142 0.164 0.184 0.204 0.219 0.234 0.266 0.302 0.342 0.387 0.438 R11_LAM.transport 0.292 0.336 0.388 0.439 0.495 0.551 0.610 0.669 0.727 0.785 0.892 0.996 1.083 1.170 1.265 R11_MEA.i_feed 0.105 0.126 0.149 0.172 0.191 0.210 0.224 0.239 0.250 0.261 0.278 0.288 0.296 0.302 0.308 R11_MEA.i_spec 0.028 0.042 0.047 0.053 0.059 0.065 0.073 0.080 0.087 0.093 0.110 0.132 0.154 0.180 0.211 R11_MEA.i_therm 0.121 0.149 0.176 0.203 0.229 0.256 0.283 0.311 0.337 0.363 0.388 0.411 0.426 0.436 0.446 R11_MEA.rc_spec 0.029 0.042 0.063 0.083 0.113 0.142 0.180 0.219 0.265 0.312 0.421 0.514 0.580 0.639 0.704 R11_MEA.rc_therm 0.099 0.125 0.157 0.189 0.225 0.260 0.286 0.312 0.337 0.363 0.411 0.453 0.491 0.530 0.573 R11_MEA.transport 0.255 0.290 0.331 0.372 0.423 0.474 0.532 0.590 0.655 0.720 0.862 1.012 1.160 1.304 1.465 R11_NAM.i_feed 0.171 0.181 0.191 0.200 0.210 0.219 0.228 0.237 0.246 0.255 0.273 0.288 0.300 0.310 0.319 R11_NAM.i_spec 0.095 0.101 0.108 0.115 0.121 0.127 0.133 0.138 0.143 0.148 0.159 0.169 0.177 0.183 0.189 R11_NAM.i_therm 0.243 0.255 0.263 0.271 0.284 0.297 0.310 0.323 0.338 0.353 0.381 0.395 0.404 0.408 0.412 R11_NAM.rc_spec 0.142 0.168 0.194 0.219 0.244 0.269 0.293 0.317 0.335 0.353 0.391 0.427 0.462 0.494 0.528 R11_NAM.rc_therm 0.448 0.484 0.511 0.539 0.548 0.557 0.565 0.573 0.582 0.591 0.604 0.611 0.610 0.604 0.598 R11_NAM.transport 0.920 0.973 1.019 1.065 1.106 1.147 1.183 1.220 1.257 1.293 1.364 1.422 1.470 1.508 1.547 R11_PAO.i_feed 0.057 0.060 0.060 0.059 0.059 0.059 0.059 0.058 0.058 0.058 0.058 0.056 0.054 0.053 0.051 R11_PAO.i_spec 0.036 0.041 0.041 0.041 0.041 0.041 0.041 0.041 0.042 0.042 0.043 0.043 0.044 0.045 0.045 R11_PAO.i_therm 0.072 0.077 0.079 0.082 0.084 0.085 0.087 0.088 0.089 0.090 0.090 0.089 0.087 0.084 0.082 R11_PAO.rc_spec 0.034 0.043 0.051 0.059 0.065 0.072 0.078 0.084 0.088 0.092 0.099 0.105 0.108 0.111 0.113 R11_PAO.rc_therm 0.091 0.097 0.104 0.110 0.111 0.112 0.112 0.112 0.111 0.111 0.109 0.107 0.105 0.103 0.100 R11_PAO.transport 0.150 0.160 0.170 0.179 0.186 0.193 0.200 0.206 0.212 0.218 0.230 0.240 0.248 0.255 0.262 R11_PAS.i_feed 0.146 0.177 0.200 0.223 0.238 0.254 0.262 0.271 0.275 0.280 0.281 0.276 0.270 0.254 0.239 R11_PAS.i_spec 0.055 0.075 0.087 0.098 0.108 0.118 0.129 0.140 0.146 0.152 0.161 0.168 0.174 0.177 0.180 R11_PAS.i_therm 0.107 0.129 0.149 0.170 0.187 0.204 0.219 0.235 0.246 0.257 0.270 0.284 0.300 0.301 0.303 R11_PAS.rc_spec 0.023 0.035 0.053 0.070 0.093 0.115 0.142 0.168 0.187 0.207 0.253 0.298 0.340 0.379 0.423 R11_PAS.rc_therm 0.070 0.083 0.102 0.121 0.143 0.165 0.184 0.203 0.220 0.237 0.261 0.284 0.306 0.329 0.354 R11_PAS.transport 0.203 0.225 0.258 0.291 0.334 0.376 0.425 0.474 0.522 0.570 0.664 0.753 0.833 0.912 0.998 R11_SAS.i_feed 0.068 0.085 0.107 0.129 0.155 0.182 0.211 0.240 0.268 0.295 0.347 0.401 0.458 0.514 0.576 R11_SAS.i_spec 0.042 0.058 0.080 0.102 0.137 0.173 0.211 0.250 0.289 0.328 0.405 0.483 0.554 0.622 0.698 R11_SAS.i_therm 0.132 0.168 0.224 0.281 0.351 0.421 0.479 0.537 0.594 0.650 0.773 0.911 1.007 1.081 1.160 R11_SAS.rc_spec 0.019 0.036 0.057 0.078 0.104 0.130 0.160 0.189 0.231 0.273 0.391 0.507 0.633 0.756 0.902 R11_SAS.rc_therm 0.070 0.074 0.088 0.103 0.135 0.168 0.222 0.276 0.345 0.414 0.566 0.725 0.839 0.948 1.074 R11_SAS.transport 0.150 0.183 0.234 0.286 0.351 0.417 0.506 0.595 0.709 0.822 1.084 1.374 1.659 1.937 2.262 R11_WEU.i_feed 0.116 0.124 0.129 0.133 0.138 0.142 0.147 0.152 0.157 0.163 0.173 0.183 0.193 0.202 0.212 R11_WEU.i_spec 0.095 0.107 0.110 0.114 0.118 0.123 0.128 0.133 0.138 0.143 0.152 0.160 0.168 0.173 0.179 R11_WEU.i_therm 0.174 0.176 0.180 0.184 0.190 0.196 0.204 0.213 0.222 0.230 0.256 0.274 0.295 0.319 0.344 R11_WEU.rc_spec 0.075 0.091 0.108 0.125 0.145 0.166 0.189 0.212 0.232 0.253 0.295 0.340 0.384 0.426 0.473 R11_WEU.rc_therm 0.368 0.395 0.417 0.439 0.452 0.465 0.468 0.471 0.473 0.474 0.474 0.473 0.472 0.469 0.465 R11_WEU.transport 0.415 0.459 0.499 0.539 0.580 0.621 0.662 0.702 0.743 0.783 0.864 0.940 1.014 1.088 1.167 ---- 311 PARAMETER eneprice Shadow prices of energy services from MESSAGE model run 2015 2020 2025 2030 2035 2040 2045 2050 2055 2060 2070 2080 2090 2100 2110 R11_AFR.i_feed 144.023 113.193 149.041 134.281 155.393 138.869 92.780 113.002 126.837 137.806 148.342 174.714 196.954 204.328 146.727 R11_AFR.i_spec 487.903 444.996 609.318 517.379 587.581 586.316 577.813 605.702 616.472 708.127 603.092 632.177 671.122 722.456 570.905 R11_AFR.i_therm 252.190 212.314 241.372 232.803 195.494 175.563 167.374 166.975 207.470 237.806 234.695 253.727 267.563 312.609 185.294 R11_AFR.rc_spec 986.566 853.517 1117.584 869.997 960.172 910.805 863.669 827.793 823.977 904.521 716.200 723.406 760.828 834.732 679.403 R11_AFR.rc_therm 628.168 464.649 733.965 329.935 220.433 232.238 222.077 227.149 283.191 302.633 290.134 297.515 309.372 330.197 269.604 R11_AFR.transport 185.847 189.815 217.358 221.063 223.316 232.336 253.461 273.781 297.091 295.288 269.836 284.664 300.461 299.140 258.558 R11_CPA.i_feed 111.344 119.374 110.344 114.234 114.750 117.122 118.295 127.583 125.118 150.683 140.371 153.176 142.676 166.256 93.747 R11_CPA.i_spec 720.396 834.224 584.987 627.673 601.702 632.928 610.729 611.344 616.944 714.054 593.543 570.465 592.423 625.675 442.700 R11_CPA.i_therm 267.083 247.020 240.585 238.335 233.600 231.051 193.351 191.582 188.655 193.258 181.382 177.021 178.040 205.605 87.574 R11_CPA.rc_spec 1433.660 1605.881 1070.401 1099.561 1035.856 1041.958 955.157 926.865 876.259 982.527 741.903 678.588 680.486 726.394 528.249 R11_CPA.rc_therm 410.674 411.264 303.170 295.789 297.562 322.738 224.426 216.654 222.474 233.300 223.808 223.288 226.037 235.956 179.029 R11_CPA.transport 199.891 214.252 215.088 226.376 224.165 243.174 258.863 270.131 265.482 299.758 274.374 273.383 289.245 283.363 199.034 R11_EEU.i_feed 135.791 117.528 132.843 145.134 156.018 162.992 205.998 91.551 128.373 142.670 143.866 158.378 165.787 171.176 92.090 R11_EEU.i_spec 539.334 526.836 557.650 638.949 696.479 670.543 642.301 667.487 663.979 797.318 671.212 705.431 722.461 801.269 399.979 R11_EEU.i_therm 200.993 168.442 222.397 223.019 188.984 183.496 178.716 187.471 165.438 182.575 184.273 198.418 194.455 208.488 86.440 R11_EEU.rc_spec 805.223 761.733 773.231 863.372 923.137 844.496 786.163 787.837 785.841 932.409 789.767 817.606 828.752 937.623 453.309 R11_EEU.rc_therm 318.893 278.040 286.748 321.905 268.141 220.478 236.622 222.121 206.357 238.117 231.130 241.670 255.506 257.765 182.764 R11_EEU.transport 186.059 195.268 210.208 223.265 222.448 242.633 248.691 279.292 273.929 336.364 285.367 302.066 313.513 325.721 216.155 R11_FSU.i_feed 110.393 102.149 119.150 134.282 135.724 135.430 134.194 129.658 147.037 233.807 118.768 144.125 143.820 167.359 90.090 R11_FSU.i_spec 557.488 522.438 595.431 591.347 603.697 635.824 589.296 580.197 604.476 723.148 610.457 630.295 671.142 766.126 367.801 R11_FSU.i_therm 211.168 196.339 193.864 194.482 154.425 175.078 149.886 150.113 152.869 196.407 191.963 197.658 194.148 206.750 88.574 R11_FSU.rc_spec 775.467 693.242 794.197 791.941 789.163 807.050 724.082 684.813 719.575 847.064 717.685 731.390 771.605 903.524 418.524 R11_FSU.rc_therm 274.166 247.330 253.298 236.892 238.102 193.043 191.936 190.680 203.358 230.290 222.481 227.751 232.835 263.868 181.526 R11_FSU.transport 178.726 184.756 201.242 202.850 208.693 224.172 227.781 247.909 245.499 301.766 264.044 274.548 293.456 303.454 199.146 R11_LAM.i_feed 93.275 97.468 112.127 122.032 136.263 147.616 149.186 167.848 171.657 190.591 201.364 222.108 246.501 240.914 126.188 R11_LAM.i_spec 468.170 441.999 501.893 543.438 559.000 562.599 530.114 552.100 561.130 650.320 562.816 607.741 628.074 631.305 499.151 R11_LAM.i_therm 171.908 165.659 167.960 186.264 179.106 188.441 170.098 171.412 177.752 192.927 200.181 214.193 220.563 238.676 137.765 R11_LAM.rc_spec 870.937 772.571 819.427 824.036 795.242 746.106 664.498 647.349 658.911 752.671 654.845 701.318 714.181 723.763 593.658 R11_LAM.rc_therm 324.096 308.819 264.565 243.609 267.658 233.865 185.678 195.862 197.778 210.962 210.684 227.710 232.284 234.192 199.779 R11_LAM.transport 165.169 173.034 187.668 196.826 210.173 222.972 225.520 252.567 253.525 303.844 261.027 278.722 294.074 294.503 218.753 R11_MEA.i_feed 103.516 101.728 142.511 98.760 124.603 130.095 135.041 147.992 154.793 179.839 183.823 216.654 250.844 209.618 107.876 R11_MEA.i_spec 496.004 542.812 505.453 446.401 529.926 526.621 523.355 553.423 550.296 659.188 551.248 589.599 631.655 683.476 514.822 R11_MEA.i_therm 156.780 157.329 163.843 164.313 182.891 172.665 174.255 181.101 184.643 207.859 197.965 210.793 239.057 267.937 154.580 R11_MEA.rc_spec 1017.090 995.156 999.419 796.028 953.223 866.877 815.559 802.496 766.668 864.670 677.522 688.709 736.951 801.200 666.365 R11_MEA.rc_therm 220.459 208.296 218.791 216.970 245.980 200.209 202.233 211.195 213.635 232.341 226.629 240.196 248.965 277.879 216.636 R11_MEA.transport 165.083 173.297 190.993 191.580 192.924 212.456 220.555 245.716 246.853 295.073 258.051 274.356 287.202 312.099 211.253 R11_NAM.i_feed 116.868 123.308 140.384 146.063 156.377 170.096 181.366 198.781 200.711 274.271 212.244 217.890 219.169 159.471 69.055 R11_NAM.i_spec 596.414 506.561 707.887 711.669 713.346 667.813 669.637 685.172 690.652 794.819 668.573 675.667 684.411 760.690 314.861 R11_NAM.i_therm 243.918 224.536 244.415 212.893 215.668 214.592 188.887 193.359 220.367 229.255 207.605 213.230 207.431 224.176 101.302 R11_NAM.rc_spec 790.015 629.364 942.610 929.622 912.652 829.056 814.033 814.172 820.513 925.495 785.755 781.393 803.930 897.462 363.363 R11_NAM.rc_therm 334.086 268.767 348.129 300.042 222.969 227.241 208.527 213.589 231.059 248.528 226.700 231.468 230.705 237.270 165.448 R11_NAM.transport 190.871 198.465 215.834 221.494 231.757 245.319 256.366 273.781 275.711 344.777 284.859 290.350 287.638 308.583 182.481 R11_PAO.i_feed 112.493 120.869 133.841 143.367 142.598 158.804 168.430 197.642 212.710 229.197 154.934 166.011 159.801 142.454 68.500 R11_PAO.i_spec 561.661 501.938 672.498 678.974 685.510 688.358 675.884 715.486 696.828 778.002 655.660 670.394 690.192 732.466 297.826 R11_PAO.i_therm 242.374 227.882 216.863 212.138 190.190 193.604 179.058 163.574 179.296 210.217 199.913 194.961 195.922 181.330 71.144 R11_PAO.rc_spec 771.535 667.659 895.517 884.943 882.861 860.292 829.049 855.160 829.435 911.708 771.177 775.257 786.254 851.686 346.806 R11_PAO.rc_therm 299.961 263.832 315.731 263.977 261.972 211.815 215.501 243.149 223.755 237.844 225.882 229.607 232.979 232.374 153.718 R11_PAO.transport 189.709 198.072 213.274 222.403 218.805 242.188 245.837 272.642 274.337 328.267 278.666 290.848 306.283 308.004 175.590 R11_PAS.i_feed 126.421 141.942 140.384 146.063 147.813 167.228 173.658 198.781 200.711 259.666 195.201 178.202 192.613 187.877 123.346 R11_PAS.i_spec 626.559 630.099 602.798 625.836 638.101 605.861 602.080 614.873 624.798 748.449 637.467 667.549 693.427 712.223 514.501 R11_PAS.i_therm 247.530 234.836 230.462 208.101 187.307 198.614 172.343 175.425 181.486 210.426 200.360 216.529 220.421 228.091 113.739 R11_PAS.rc_spec 1123.734 1037.038 979.746 944.542 911.622 798.709 753.242 720.441 732.709 870.157 744.281 770.569 790.567 821.088 604.197 R11_PAS.rc_therm 345.012 315.192 299.296 294.186 293.476 222.606 222.323 227.928 234.728 254.825 236.049 249.058 253.803 256.113 209.137 R11_PAS.transport 201.335 217.784 216.207 221.843 223.380 242.228 248.658 273.781 275.711 330.552 281.459 294.998 309.212 309.644 238.607 R11_SAS.i_feed 159.998 151.195 227.302 145.443 143.927 165.264 174.556 199.698 218.110 233.494 208.121 237.480 270.294 264.342 148.051 R11_SAS.i_spec 795.054 825.489 744.189 716.354 692.547 678.108 688.705 701.283 718.457 784.309 648.803 659.672 690.101 689.416 490.572 R11_SAS.i_therm 285.043 235.198 305.712 256.305 206.709 219.657 196.333 198.879 202.621 225.192 265.603 272.902 262.722 267.435 130.125 R11_SAS.rc_spec 1509.388 1513.396 1287.326 1200.376 1138.689 1061.870 1034.152 997.385 985.572 1006.925 780.928 757.415 786.133 790.679 572.293 R11_SAS.rc_therm 385.080 320.792 378.802 346.942 333.282 259.555 264.667 263.604 285.464 294.089 333.238 327.407 301.719 312.766 225.197 R11_SAS.transport 194.001 201.132 219.935 224.374 222.451 242.310 249.828 274.698 275.361 337.770 282.587 298.215 312.687 307.242 235.725 R11_WEU.i_feed 107.284 114.765 138.558 141.614 137.921 167.030 169.595 214.494 174.221 207.457 161.490 173.728 180.491 186.479 112.690 R11_WEU.i_spec 384.070 279.163 603.806 632.608 633.411 655.869 644.040 653.353 662.880 763.783 681.450 694.268 716.540 812.100 409.018 R11_WEU.i_therm 193.754 176.605 201.451 215.845 201.644 228.322 181.823 200.213 203.844 214.416 204.939 214.369 218.572 220.915 105.652 R11_WEU.rc_spec 500.285 346.839 777.442 817.793 807.408 815.875 782.714 773.365 781.103 890.601 803.318 805.948 821.385 954.257 463.553 R11_WEU.rc_therm 257.387 232.075 265.989 301.244 218.488 233.632 233.713 248.766 238.725 245.992 248.652 253.511 265.335 277.852 209.061 R11_WEU.transport 184.449 189.765 209.535 223.734 222.465 241.095 249.884 270.545 280.475 330.552 285.565 296.838 310.436 324.190 216.097 ---- 311 PARAMETER total_cost Total energy system costs from MESSAGE model run 2015 2020 2025 2030 2035 2040 2045 2050 2055 2060 2070 2080 2090 2100 2110 R11_AFR 43083.272 54.113 92.320 99.491 145.063 184.698 249.383 293.935 384.122 466.823 646.751 1040.050 1506.306 1910.885 1790.003 R11_CPA 635141.421 675.799 657.229 731.456 780.256 862.463 916.077 971.117 994.267 1023.554 997.459 1089.287 963.375 892.419 498.020 R11_EEU 54801.232 60.293 66.483 73.065 80.344 85.486 90.567 95.729 95.626 103.121 104.289 106.616 110.300 123.558 69.485 R11_FSU 140844.192 145.894 188.169 174.678 195.052 162.526 179.049 97.666 152.618 18.129 156.571 207.873 194.879 184.727 -16.150 R11_LAM 99527.988 114.084 132.490 150.877 209.045 264.279 316.393 329.486 354.699 329.039 510.761 583.809 655.681 768.083 248.018 R11_MEA -17810.000 34.917 -4.765 -39.584 -7.995 7.900 130.410 134.726 229.863 241.857 451.558 624.607 778.297 956.000 561.026 R11_NAM 453078.530 504.943 586.510 640.270 763.167 794.100 857.167 844.226 871.147 948.786 979.302 991.426 1015.531 1112.778 376.883 R11_PAO 128894.895 139.900 137.520 156.843 157.116 165.122 187.088 197.077 190.589 201.601 176.041 168.236 156.047 161.146 37.519 R11_PAS 134935.299 161.995 193.012 232.598 286.136 335.250 387.428 425.465 463.647 553.385 606.235 642.574 694.668 734.105 544.517 R11_SAS 158693.193 190.409 275.514 301.029 378.685 459.849 586.632 663.299 798.539 940.628 1116.055 1449.679 1761.380 1978.167 1520.589 R11_WEU 287243.414 331.203 354.431 424.208 470.558 535.091 575.787 593.693 590.359 657.484 705.196 768.932 835.297 956.125 572.161 ---- 329 PARAMETER growth_factor cumulative growth factor 2015 2020 2025 2030 2035 2040 2045 2050 2055 2060 2070 2080 2090 2100 2110 R11_AFR 1.000 1.235 1.607 1.978 2.535 3.093 4.022 4.951 6.536 8.121 11.971 17.116 23.568 31.542 31.542 R11_CPA 1.000 1.358 1.836 2.314 2.720 3.127 3.473 3.820 4.083 4.346 4.798 5.198 5.579 5.847 5.847 R11_EEU 1.000 1.168 1.369 1.571 1.781 1.991 2.190 2.390 2.607 2.824 3.276 3.715 4.149 4.531 4.531 R11_FSU 1.000 1.232 1.518 1.805 2.097 2.388 2.633 2.879 3.148 3.418 4.030 4.635 5.286 5.967 5.967 R11_LAM 1.000 1.215 1.487 1.758 2.069 2.379 2.740 3.101 3.522 3.942 4.804 5.797 6.955 8.208 8.208 R11_MEA 1.000 1.208 1.507 1.807 2.185 2.563 3.000 3.438 3.957 4.476 5.588 6.861 8.332 10.042 10.042 R11_NAM 1.000 1.138 1.286 1.433 1.572 1.711 1.844 1.977 2.115 2.254 2.517 2.743 2.947 3.141 3.141 R11_PAO 1.000 1.085 1.179 1.274 1.359 1.444 1.540 1.636 1.752 1.868 2.137 2.408 2.628 2.806 2.806 R11_PAS 1.000 1.213 1.501 1.789 2.139 2.489 2.887 3.286 3.683 4.081 4.885 5.766 6.717 7.668 7.668 R11_SAS 1.000 1.269 1.738 2.207 2.937 3.668 4.709 5.750 7.084 8.418 11.092 14.051 17.293 20.909 20.909 R11_WEU 1.000 1.097 1.209 1.321 1.457 1.593 1.756 1.920 2.117 2.314 2.744 3.167 3.595 3.995 3.995 ---- 329 PARAMETER potential_gdp 2015 2020 2025 2030 2035 2040 2045 2050 2055 2060 2070 2080 2090 2100 2110 R11_AFR 0.763 0.943 1.227 1.510 1.935 2.361 3.071 3.780 4.990 6.200 9.140 13.068 17.994 24.082 24.082 R11_CPA 8.325 11.309 15.286 19.264 22.647 26.031 28.915 31.799 33.991 36.183 39.940 43.273 46.448 48.675 48.675 R11_EEU 1.479 1.727 2.025 2.323 2.634 2.944 3.240 3.535 3.856 4.177 4.845 5.495 6.137 6.701 6.701 R11_FSU 2.171 2.674 3.297 3.920 4.552 5.185 5.718 6.251 6.835 7.420 8.751 10.063 11.478 12.956 12.956 R11_LAM 3.919 4.763 5.828 6.892 8.109 9.325 10.740 12.156 13.803 15.450 18.829 22.722 27.258 32.169 32.169 R11_MEA 2.866 3.463 4.320 5.178 6.261 7.344 8.599 9.854 11.341 12.828 16.015 19.663 23.878 28.779 28.779 R11_NAM 15.537 17.680 19.976 22.271 24.430 26.588 28.651 30.714 32.868 35.023 39.114 42.616 45.788 48.795 48.795 R11_PAO 4.452 4.830 5.250 5.671 6.049 6.428 6.855 7.283 7.800 8.317 9.514 10.721 11.699 12.494 12.494 R11_PAS 3.808 4.620 5.716 6.812 8.144 9.476 10.994 12.511 14.025 15.540 18.599 21.954 25.577 29.197 29.197 R11_SAS 1.872 2.375 3.253 4.131 5.499 6.867 8.817 10.766 13.263 15.759 20.766 26.305 32.375 39.146 39.146 R11_WEU 12.514 13.724 15.129 16.534 18.234 19.934 21.980 24.026 26.491 28.956 34.339 39.628 44.982 49.998 49.998 ---- 342 PARAMETER aeei_factor Cumulative effect of autonomous energy efficiency improvement (AEEI) 2015 2020 2025 2030 2035 2040 2045 2050 2055 2060 2070 2080 2090 2100 2110 R11_AFR.i_feed 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_AFR.i_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_AFR.i_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_AFR.rc_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_AFR.rc_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_AFR.transport 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_CPA.i_feed 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_CPA.i_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_CPA.i_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_CPA.rc_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_CPA.rc_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_CPA.transport 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_EEU.i_feed 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_EEU.i_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_EEU.i_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_EEU.rc_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_EEU.rc_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_EEU.transport 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_FSU.i_feed 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_FSU.i_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_FSU.i_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_FSU.rc_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_FSU.rc_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_FSU.transport 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_LAM.i_feed 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_LAM.i_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_LAM.i_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_LAM.rc_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_LAM.rc_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_LAM.transport 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_MEA.i_feed 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_MEA.i_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_MEA.i_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_MEA.rc_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_MEA.rc_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_MEA.transport 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_NAM.i_feed 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_NAM.i_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_NAM.i_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_NAM.rc_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_NAM.rc_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_NAM.transport 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_PAO.i_feed 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_PAO.i_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_PAO.i_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_PAO.rc_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_PAO.rc_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_PAO.transport 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_PAS.i_feed 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_PAS.i_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_PAS.i_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_PAS.rc_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_PAS.rc_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_PAS.transport 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_SAS.i_feed 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_SAS.i_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_SAS.i_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_SAS.rc_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_SAS.rc_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_SAS.transport 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_WEU.i_feed 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_WEU.i_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_WEU.i_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_WEU.rc_spec 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_WEU.rc_therm 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 R11_WEU.transport 1.000 0.904 0.817 0.739 0.668 0.603 0.545 0.493 0.446 0.403 0.329 0.269 0.220 0.180 0.147 ---- 350 PARAMETER rho Production function exponent between capital-labor and energy nest (rho = (esub - 1) : esub) R11_AFR -4.000, R11_CPA -4.000, R11_EEU -3.000, R11_FSU -3.000, R11_LAM -4.000, R11_MEA -4.000, R11_NAM -2.333, R11_PAO -2.333, R11_PAS -4.000, R11_SAS -4.000, R11_WEU -2.333 ---- 364 PARAMETER labor Labor force (efficiency units) in period year 2015 2020 2025 2030 2035 2040 2045 2050 2055 2060 2070 2080 2090 2100 2110 R11_AFR 1.000 1.235 1.607 1.978 2.535 3.093 4.022 4.951 6.536 8.121 11.971 17.116 23.568 31.542 31.542 R11_CPA 1.000 1.358 1.836 2.314 2.720 3.127 3.473 3.820 4.083 4.346 4.798 5.198 5.579 5.847 5.847 R11_EEU 1.000 1.168 1.369 1.571 1.781 1.991 2.190 2.390 2.607 2.824 3.276 3.715 4.149 4.531 4.531 R11_FSU 1.000 1.232 1.518 1.805 2.097 2.388 2.633 2.879 3.148 3.418 4.030 4.635 5.286 5.967 5.967 R11_LAM 1.000 1.215 1.487 1.758 2.069 2.379 2.740 3.101 3.522 3.942 4.804 5.797 6.955 8.208 8.208 R11_MEA 1.000 1.208 1.507 1.807 2.185 2.563 3.000 3.438 3.957 4.476 5.588 6.861 8.332 10.042 10.042 R11_NAM 1.000 1.138 1.286 1.433 1.572 1.711 1.844 1.977 2.115 2.254 2.517 2.743 2.947 3.141 3.141 R11_PAO 1.000 1.085 1.179 1.274 1.359 1.444 1.540 1.636 1.752 1.868 2.137 2.408 2.628 2.806 2.806 R11_PAS 1.000 1.213 1.501 1.789 2.139 2.489 2.887 3.286 3.683 4.081 4.885 5.766 6.717 7.668 7.668 R11_SAS 1.000 1.269 1.738 2.207 2.937 3.668 4.709 5.750 7.084 8.418 11.092 14.051 17.293 20.909 20.909 R11_WEU 1.000 1.097 1.209 1.321 1.457 1.593 1.756 1.920 2.117 2.314 2.744 3.167 3.595 3.995 3.995 ---- 364 PARAMETER newlab New vintage of labor force in period year 2020 2025 2030 2035 2040 2045 2050 2055 2060 2070 2080 2090 2100 2110 R11_AFR 0.472 0.661 0.744 1.015 1.141 1.639 1.849 2.715 3.073 7.119 9.958 13.330 17.441 12.667 R11_CPA 0.595 0.795 0.903 0.940 1.032 1.064 1.142 1.137 1.197 2.205 2.335 2.477 2.516 2.356 R11_EEU 0.404 0.476 0.521 0.575 0.623 0.660 0.705 0.768 0.817 1.595 1.764 1.935 2.056 1.828 R11_FSU 0.468 0.576 0.640 0.710 0.776 0.796 0.851 0.931 0.992 1.994 2.232 2.521 2.812 2.405 R11_LAM 0.452 0.557 0.618 0.718 0.788 0.909 0.991 1.132 1.227 2.454 2.931 3.494 4.054 3.303 R11_MEA 0.445 0.582 0.650 0.797 0.882 1.028 1.127 1.307 1.424 2.918 3.525 4.234 5.063 4.039 R11_NAM 0.374 0.415 0.449 0.473 0.505 0.530 0.560 0.596 0.627 1.178 1.246 1.315 1.386 1.270 R11_PAO 0.321 0.350 0.371 0.383 0.402 0.433 0.454 0.496 0.522 1.029 1.139 1.196 1.243 1.136 R11_PAS 0.450 0.572 0.638 0.765 0.844 0.971 1.062 1.151 1.241 2.451 2.851 3.275 3.656 3.087 R11_SAS 0.505 0.766 0.872 1.240 1.405 1.881 2.117 2.644 2.946 6.062 7.419 8.890 10.565 8.400 R11_WEU 0.333 0.370 0.396 0.445 0.475 0.534 0.571 0.641 0.686 1.369 1.534 1.709 1.853 1.613 ---- 364 PARAMETER udf Utility discount factor in period year 2015 2020 2025 2030 2035 2040 2045 2050 2055 2060 2070 2080 2090 2100 2110 R11_AFR 1.000 0.966 0.986 0.949 0.953 0.909 0.927 0.893 0.925 0.899 0.810 0.706 0.592 0.481 0.288 R11_CPA 1.000 1.068 1.134 1.119 1.026 0.920 0.795 0.680 0.564 0.466 0.310 0.202 0.130 0.082 0.049 R11_EEU 1.000 0.911 0.833 0.745 0.658 0.572 0.490 0.415 0.352 0.296 0.207 0.142 0.095 0.063 0.038 R11_FSU 1.000 0.963 0.929 0.862 0.781 0.693 0.594 0.505 0.429 0.362 0.258 0.179 0.123 0.084 0.050 R11_LAM 1.000 0.950 0.909 0.839 0.770 0.690 0.620 0.546 0.483 0.421 0.310 0.226 0.164 0.117 0.070 R11_MEA 1.000 0.944 0.922 0.863 0.815 0.746 0.682 0.609 0.546 0.481 0.364 0.270 0.198 0.145 0.087 R11_NAM 1.000 0.886 0.780 0.677 0.577 0.488 0.409 0.340 0.283 0.234 0.157 0.103 0.067 0.043 0.026 R11_PAO 1.000 0.843 0.712 0.598 0.495 0.408 0.338 0.279 0.232 0.192 0.132 0.090 0.059 0.038 0.023 R11_PAS 1.000 0.948 0.918 0.854 0.797 0.724 0.655 0.580 0.506 0.436 0.316 0.225 0.158 0.109 0.065 R11_SAS 1.000 0.994 1.070 1.065 1.113 1.087 1.094 1.045 1.007 0.934 0.747 0.574 0.427 0.313 0.187 R11_WEU 1.000 0.853 0.731 0.621 0.533 0.453 0.388 0.330 0.283 0.240 0.172 0.120 0.082 0.055 0.033 ---- 384 PARAMETER ecst0 Energy costs in base year R11_AFR 43083.272, R11_CPA 635141.421, R11_EEU 54801.232, R11_FSU 140844.192, R11_LAM 99527.988, R11_MEA -17810.000, R11_NAM 453078.530, R11_PAO 128894.895, R11_PAS 134935.299, R11_SAS 158693.193, R11_WEU 287243.414 ---- 384 PARAMETER k0 Initial capital in base year R11_AFR 2.290, R11_CPA 24.975, R11_EEU 4.437, R11_FSU 6.513, R11_LAM 11.758, R11_MEA 8.598, R11_NAM 37.289, R11_PAO 12.465, R11_PAS 11.423, R11_SAS 5.617, R11_WEU 35.040 ---- 384 PARAMETER i0 Initial investment in base year R11_AFR 0.251, R11_CPA 3.578, R11_EEU 0.398, R11_FSU 0.688, R11_LAM 1.182, R11_MEA 0.851, R11_NAM 2.998, R11_PAO 0.856, R11_PAS 1.143, R11_SAS 0.653, R11_WEU 2.482 ---- 384 PARAMETER c0 Initial consumption in base year R11_AFR -42.571, R11_CPA -630.394, R11_EEU -53.720, R11_FSU -139.361, R11_LAM -96.791, R11_MEA 19.825, R11_NAM -440.539, R11_PAO -125.299, R11_PAS -132.270, R11_SAS -157.474, R11_WEU -277.211 ---- 384 PARAMETER y0 Initial output in base year R11_AFR 0.763, R11_CPA 8.325, R11_EEU 1.479, R11_FSU 2.171, R11_LAM 3.919, R11_MEA 2.866, R11_NAM 15.537, R11_PAO 4.452, R11_PAS 3.808, R11_SAS 1.872, R11_WEU 12.514 GAMS 33.1.0 rb238721 Released Nov 1, 2020 WEX-WEI x86 64bit/MS Windows - 09/13/22 07:47:46 Page 4 G e n e r a l A l g e b r a i c M o d e l i n g S y s t e m Equation Listing SOLVE MESSAGE_MACRO Using NLP From line 816 **** Exec Error at line 544: log: FUNC SINGULAR: x = 0 **** Exec Error at line 544: overflow in * operation (mulop) ---- UTILITY_FUNCTION =E= Utility funciton (discounted log of consumpiton summed over all projection periods) UTILITY_FUNCTION.. (UNDF)*C(R11_AFR,2020) + (UNDF)*C(R11_AFR,2025) + (UNDF)*C(R11_AFR,2030) + (UNDF)*C(R11_AFR,2035) + (UNDF)*C(R11_AFR,2040) + (UNDF)*C(R11_AFR,2045) + (UNDF)*C(R11_AFR,2050) + (UNDF)*C(R11_AFR,2055) + (UNDF)*C(R11_AFR,2060) + (UNDF)*C(R11_AFR,2070) + (UNDF)*C(R11_AFR,2080) + (UNDF)*C(R11_AFR,2090) + (UNDF)*C(R11_AFR,2100) + (UNDF)*C(R11_AFR,2110) + UTILITY =E= 0 ; (LHS = UNDF) ---- CAPITAL_CONSTRAINT =E= Capital constraint CAPITAL_CONSTRAINT(R11_AFR,2015).. Y(R11_AFR,2015) - C(R11_AFR,2015) - I(R11_AFR,2015) - EC(R11_AFR,2015) =E= 0 ; (LHS = 0) CAPITAL_CONSTRAINT(R11_AFR,2020).. Y(R11_AFR,2020) - C(R11_AFR,2020) - I(R11_AFR,2020) - EC(R11_AFR,2020) =E= 0 ; (LHS = 0.025630516574002, INFES = 0.025630516574002 ****) CAPITAL_CONSTRAINT(R11_AFR,2025).. Y(R11_AFR,2025) - C(R11_AFR,2025) - I(R11_AFR,2025) - EC(R11_AFR,2025) =E= 0 ; (LHS = 0.025630516574002, INFES = 0.025630516574002 ****) REMAINING 12 ENTRIES SKIPPED ---- NEW_CAPITAL =E= New capital NEW_CAPITAL(R11_AFR,2020).. KN(R11_AFR,2020) - 5*I(R11_AFR,2020) =E= 0 ; (LHS = 1.00477732102568, INFES = 1.00477732102568 ****) NEW_CAPITAL(R11_AFR,2025).. KN(R11_AFR,2025) - 5*I(R11_AFR,2025) =E= 0 ; (LHS = 1.43727471041988, INFES = 1.43727471041988 ****) NEW_CAPITAL(R11_AFR,2030).. KN(R11_AFR,2030) - 5*I(R11_AFR,2030) =E= 0 ; (LHS = 1.62952334050541, INFES = 1.62952334050541 ****) REMAINING 11 ENTRIES SKIPPED ---- NEW_PRODUCTION =E= New production NEW_PRODUCTION(R11_AFR,2020).. - (0.0953138729290376)*KN(R11_AFR,2020) + YN(R11_AFR,2020) - (0.000447343832740004)*NEWENE(R11_AFR,i_feed,2020) - (0.00951826581767108)*NEWENE(R11_AFR,i_spec,2020) - (0.0180815322260951)*NEWENE(R11_AFR,i_therm,2020) - (0.000186944215934045)*NEWENE(R11_AFR,rc_spec,2020) - (0.235750274066792)*NEWENE(R11_AFR,rc_therm,2020) - (0.0508313705688484)*NEWENE(R11_AFR,transport,2020) =E= 0 ; (LHS = -0.336806405952186, INFES = 0.336806405952186 ****) NEW_PRODUCTION(R11_AFR,2025).. - (0.0990305926293398)*KN(R11_AFR,2025) + YN(R11_AFR,2025) - (0.000521999794623237)*NEWENE(R11_AFR,i_feed,2025) - (0.00630214082753556)*NEWENE(R11_AFR,i_spec,2025) - (0.00731330150367134)*NEWENE(R11_AFR,i_therm,2025) - (0.000403549841179989)*NEWENE(R11_AFR,rc_spec,2025) - (0.045256248471429)*NEWENE(R11_AFR,rc_therm,2025) - (0.0113705216497968)*NEWENE(R11_AFR,transport,2025) =E= 0 ; (LHS = -0.476210112900786, INFES = 0.476210112900786 ****) NEW_PRODUCTION(R11_AFR,2030).. - (0.0999443860217374)*KN(R11_AFR,2030) + YN(R11_AFR,2030) - (0.000313855734456786)*NEWENE(R11_AFR,i_feed,2030) - (0.00285849849513403)*NEWENE(R11_AFR,i_spec,2030) - (0.00268905308024245)*NEWENE(R11_AFR,i_therm,2030) - (0.000350384199848276)*NEWENE(R11_AFR,rc_spec,2030) - (0.0127349407696963)*NEWENE(R11_AFR,rc_therm,2030) - (0.00336565336917799)*NEWENE(R11_AFR,transport,2030) =E= 0 ; (LHS = -0.538004202094715, INFES = 0.538004202094715 ****) REMAINING 11 ENTRIES SKIPPED ---- TOTAL_CAPITAL =E= Total capital stock across all vintages TOTAL_CAPITAL(R11_AFR,2020).. - 0.7737809375*K(R11_AFR,2015) + K(R11_AFR,2020) - KN(R11_AFR,2020) =E= 0 ; (LHS = -2.72530786878536, INFES = 2.72530786878536 ****) TOTAL_CAPITAL(R11_AFR,2025).. - 0.7737809375*K(R11_AFR,2020) + K(R11_AFR,2025) - KN(R11_AFR,2025) =E= 0 ; (LHS = -1.47408830908136, INFES = 1.47408830908136 ****) TOTAL_CAPITAL(R11_AFR,2030).. - 0.7737809375*K(R11_AFR,2025) + K(R11_AFR,2030) - KN(R11_AFR,2030) =E= 0 ; (LHS = -1.66633693916688, INFES = 1.66633693916688 ****) REMAINING 11 ENTRIES SKIPPED ---- TOTAL_PRODUCTION =E= Total production across all vintages TOTAL_PRODUCTION(R11_AFR,2020).. - 0.7737809375*Y(R11_AFR,2015) + Y(R11_AFR,2020) - YN(R11_AFR,2020) =E= 0 ; (LHS = -0.570609849179157, INFES = 0.570609849179157 ****) TOTAL_PRODUCTION(R11_AFR,2025).. - 0.7737809375*Y(R11_AFR,2020) + Y(R11_AFR,2025) - YN(R11_AFR,2025) =E= 0 ; (LHS = -0.0165791559696593, INFES = 0.0165791559696593 ****) TOTAL_PRODUCTION(R11_AFR,2030).. - 0.7737809375*Y(R11_AFR,2025) + Y(R11_AFR,2030) - YN(R11_AFR,2030) =E= 0 ; (LHS = -0.0197832998044181, INFES = 0.0197832998044181 ****) REMAINING 11 ENTRIES SKIPPED ---- NEW_ENERGY =E= New end-use services or commodities (production function) NEW_ENERGY(R11_AFR,i_feed,2020).. - 0.7737809375*PRODENE(R11_AFR,i_feed,2015) + PRODENE(R11_AFR,i_feed,2020) - NEWENE(R11_AFR,i_feed,2020) =E= 0 ; (LHS = -0.0216254835173247, INFES = 0.0216254835173247 ****) NEW_ENERGY(R11_AFR,i_feed,2025).. - 0.7737809375*PRODENE(R11_AFR,i_feed,2020) + PRODENE(R11_AFR,i_feed,2025) - NEWENE(R11_AFR,i_feed,2025) =E= 0 ; (LHS = -0.0196584182747814, INFES = 0.0196584182747814 ****) NEW_ENERGY(R11_AFR,i_feed,2030).. - 0.7737809375*PRODENE(R11_AFR,i_feed,2025) + PRODENE(R11_AFR,i_feed,2030) - NEWENE(R11_AFR,i_feed,2030) =E= 0 ; (LHS = -0.024593715420463, INFES = 0.024593715420463 ****) REMAINING 81 ENTRIES SKIPPED ---- ENERGY_SUPPLY =G= Supply of end-use services or commodities ENERGY_SUPPLY(R11_AFR,i_feed,2020).. PHYSENE(R11_AFR,i_feed,2020) - 0.9039207968*PRODENE(R11_AFR,i_feed,2020) =G= 0 ; (LHS = 0.009766) ENERGY_SUPPLY(R11_AFR,i_feed,2025).. PHYSENE(R11_AFR,i_feed,2025) - 0.817072806887547*PRODENE(R11_AFR,i_feed,2025) =G= 0 ; (LHS = 0.011305) ENERGY_SUPPLY(R11_AFR,i_feed,2030).. PHYSENE(R11_AFR,i_feed,2030) - 0.738569102645404*PRODENE(R11_AFR,i_feed,2030) =G= 0 ; (LHS = 0.012844) REMAINING 81 ENTRIES SKIPPED ---- COST_ENERGY =E= system costs approximation based on MESSAGE input COST_ENERGY(R11_AFR,2020).. - (0.113192622384413)*PHYSENE(R11_AFR,i_feed,2020) - (0.444996093259937)*PHYSENE(R11_AFR,i_spec,2020) - (0.212314380978737)*PHYSENE(R11_AFR,i_therm,2020) - (0.853516630483083)*PHYSENE(R11_AFR,rc_spec,2020) - (0.464648896524886)*PHYSENE(R11_AFR,rc_therm,2020) - (0.18981549426679)*PHYSENE(R11_AFR,transport,2020) + EC(R11_AFR,2020) =E= -0.050478703096543 ; (LHS = -0.104591509758246, INFES = 0.0541128066617027 ****) COST_ENERGY(R11_AFR,2025).. - (0.149041280776008)*PHYSENE(R11_AFR,i_feed,2025) - (0.609317879846381)*PHYSENE(R11_AFR,i_spec,2025) - (0.241372096076251)*PHYSENE(R11_AFR,i_therm,2025) - (1.11758388095878)*PHYSENE(R11_AFR,rc_spec,2025) - (0.733964604653093)*PHYSENE(R11_AFR,rc_therm,2025) - (0.217357586218839)*PHYSENE(R11_AFR,transport,2025) + EC(R11_AFR,2025) =E= -0.107126405632838 ; (LHS = -0.199445908713463, INFES = 0.0923195030806248 ****) COST_ENERGY(R11_AFR,2030).. - (0.134281468891274)*PHYSENE(R11_AFR,i_feed,2030) - (0.517378784187066)*PHYSENE(R11_AFR,i_spec,2030) - (0.232802660532795)*PHYSENE(R11_AFR,i_therm,2030) - (0.869996962856706)*PHYSENE(R11_AFR,rc_spec,2030) - (0.329935231969785)*PHYSENE(R11_AFR,rc_therm,2030) - (0.221063392278531)*PHYSENE(R11_AFR,transport,2030) + EC(R11_AFR,2030) =E= -0.0543874256776165 ; (LHS = -0.153878446237071, INFES = 0.0994910205594543 ****) REMAINING 11 ENTRIES SKIPPED ---- TERMINAL_CONDITION =G= Terminal condition TERMINAL_CONDITION(R11_AFR,2110).. - 0.05*K(R11_AFR,2110) + I(R11_AFR,2110) =G= 0 ; (LHS = 0.00681802092599801) GAMS 33.1.0 rb238721 Released Nov 1, 2020 WEX-WEI x86 64bit/MS Windows - 09/13/22 07:47:46 Page 5 G e n e r a l A l g e b r a i c M o d e l i n g S y s t e m Column Listing SOLVE MESSAGE_MACRO Using NLP From line 816 ---- K Capital stock in period year K(R11_AFR,2015) (.LO, .L, .UP, .M = 2.290485, 2.290485, 2.290485, 0) -0.7738 TOTAL_CAPITAL(R11_AFR,2020) K(R11_AFR,2020) (.LO, .L, .UP, .M = 0.11452425, 0.11452425, +INF, 0) 1 TOTAL_CAPITAL(R11_AFR,2020) -0.7738 TOTAL_CAPITAL(R11_AFR,2025) 0 (OLD LEVEL ****) K(R11_AFR,2025) (.LO, .L, .UP, .M = 0.11452425, 0.11452425, +INF, 0) 1 TOTAL_CAPITAL(R11_AFR,2025) -0.7738 TOTAL_CAPITAL(R11_AFR,2030) 0 (OLD LEVEL ****) REMAINING 12 ENTRIES SKIPPED ---- KN New Capital vintage in period year KN(R11_AFR,2020) (.LO, .L, .UP, .M = 0.0627211671299901, 1.06749848815567, +INF, 0) 1 NEW_CAPITAL(R11_AFR,2020) (-0.0953) NEW_PRODUCTION(R11_AFR,2020) -1 TOTAL_CAPITAL(R11_AFR,2020) KN(R11_AFR,2025) (.LO, .L, .UP, .M = 0.0627211671299901, 1.49999587754987, +INF, 0) 1 NEW_CAPITAL(R11_AFR,2025) (-0.099) NEW_PRODUCTION(R11_AFR,2025) -1 TOTAL_CAPITAL(R11_AFR,2025) KN(R11_AFR,2030) (.LO, .L, .UP, .M = 0.0627211671299901, 1.6922445076354, +INF, 0) 1 NEW_CAPITAL(R11_AFR,2030) (-0.0999) NEW_PRODUCTION(R11_AFR,2030) -1 TOTAL_CAPITAL(R11_AFR,2030) REMAINING 11 ENTRIES SKIPPED ---- Y Production in period year Y(R11_AFR,2015) (.LO, .L, .UP, .M = 0.763495, 0.763495, 0.763495, 0) 1 CAPITAL_CONSTRAINT(R11_AFR,2015) -0.7738 TOTAL_PRODUCTION(R11_AFR,2020) Y(R11_AFR,2020) (.LO, .L, .UP, .M = 0.03817475, 0.03817475, +INF, 0) 1 CAPITAL_CONSTRAINT(R11_AFR,2020) 1 TOTAL_PRODUCTION(R11_AFR,2020) -0.7738 TOTAL_PRODUCTION(R11_AFR,2025) 0 (OLD LEVEL ****) Y(R11_AFR,2025) (.LO, .L, .UP, .M = 0.03817475, 0.03817475, +INF, 0) 1 CAPITAL_CONSTRAINT(R11_AFR,2025) 1 TOTAL_PRODUCTION(R11_AFR,2025) -0.7738 TOTAL_PRODUCTION(R11_AFR,2030) 0 (OLD LEVEL ****) REMAINING 12 ENTRIES SKIPPED ---- YN New production vintage in period year YN(R11_AFR,2020) (.LO, .L, .UP, .M = 0.0180067223025945, 0.0180067223025945, +INF, 0) 1 NEW_PRODUCTION(R11_AFR,2020) -1 TOTAL_PRODUCTION(R11_AFR,2020) 0 (OLD LEVEL ****) YN(R11_AFR,2025) (.LO, .L, .UP, .M = 0.0252150121258312, 0.0252150121258312, +INF, 0) 1 NEW_PRODUCTION(R11_AFR,2025) -1 TOTAL_PRODUCTION(R11_AFR,2025) 0 (OLD LEVEL ****) YN(R11_AFR,2030) (.LO, .L, .UP, .M = 0.02841915596059, 0.02841915596059, +INF, 0) 1 NEW_PRODUCTION(R11_AFR,2030) -1 TOTAL_PRODUCTION(R11_AFR,2030) 0 (OLD LEVEL ****) REMAINING 11 ENTRIES SKIPPED ---- PHYSENE Physical end-use service or commodity use PHYSENE(R11_AFR,i_feed,2020) (.LO, .L, .UP, .M = 0, 0.01028, +INF, 0) 1 ENERGY_SUPPLY(R11_AFR,i_feed,2020) (-0.1132) COST_ENERGY(R11_AFR,2020) PHYSENE(R11_AFR,i_feed,2025) (.LO, .L, .UP, .M = 0, 0.0119, +INF, 0) 1 ENERGY_SUPPLY(R11_AFR,i_feed,2025) (-0.149) COST_ENERGY(R11_AFR,2025) PHYSENE(R11_AFR,i_feed,2030) (.LO, .L, .UP, .M = 0, 0.01352, +INF, 0) 1 ENERGY_SUPPLY(R11_AFR,i_feed,2030) (-0.1343) COST_ENERGY(R11_AFR,2030) REMAINING 81 ENTRIES SKIPPED ---- PRODENE Value of end-use services or commodities in the production function PRODENE(R11_AFR,i_feed,2015) (.LO, .L, .UP, .M = 0.00987, 0.00987, 0.00987, 0) -0.7738 NEW_ENERGY(R11_AFR,i_feed,2020) PRODENE(R11_AFR,i_feed,2020) (.LO, .L, .UP, .M = 0.000568633891176781, 0.000568633891176781, +INF, 0) 1 NEW_ENERGY(R11_AFR,i_feed,2020) -0.7738 NEW_ENERGY(R11_AFR,i_feed,2025) -0.9039 ENERGY_SUPPLY(R11_AFR,i_feed,2020) 0 (OLD LEVEL ****) PRODENE(R11_AFR,i_feed,2025) (.LO, .L, .UP, .M = 0.00072820927949679, 0.00072820927949679, +INF, 0) 1 NEW_ENERGY(R11_AFR,i_feed,2025) -0.7738 NEW_ENERGY(R11_AFR,i_feed,2030) -0.8171 ENERGY_SUPPLY(R11_AFR,i_feed,2025) 0 (OLD LEVEL ****) REMAINING 87 ENTRIES SKIPPED ---- NEWENE New end-use service or commodity (production function value) NEWENE(R11_AFR,i_feed,2020) (.LO, .L, .UP, .M = 0.000568633891176781, 0.0145568995553765, +INF, 0) (-0.0004) NEW_PRODUCTION(R11_AFR,2020) -1 NEW_ENERGY(R11_AFR,i_feed,2020) NEWENE(R11_AFR,i_feed,2025) (.LO, .L, .UP, .M = 0.00072820927949679, 0.0199466294888691, +INF, 0) (-0.0005) NEW_PRODUCTION(R11_AFR,2025) -1 NEW_ENERGY(R11_AFR,i_feed,2025) NEWENE(R11_AFR,i_feed,2030) (.LO, .L, .UP, .M = 0.000915283346647871, 0.0249455243081256, +INF, 0) (-0.0003) NEW_PRODUCTION(R11_AFR,2030) -1 NEW_ENERGY(R11_AFR,i_feed,2030) REMAINING 81 ENTRIES SKIPPED ---- C Consumption (Trillion $) C(R11_AFR,2015) (.LO, .L, .UP, .M = -42.5706612663273, -42.5706612663273, -42.5706612663273, 0) -1 CAPITAL_CONSTRAINT(R11_AFR,2015) C(R11_AFR,2020) (.LO, .L, .UP, .M = -2.12853306331637, 0, +INF, 0) (UNDF) UTILITY_FUNCTION -1 CAPITAL_CONSTRAINT(R11_AFR,2020) C(R11_AFR,2025) (.LO, .L, .UP, .M = -2.12853306331637, 0, +INF, 0) (UNDF) UTILITY_FUNCTION -1 CAPITAL_CONSTRAINT(R11_AFR,2025) REMAINING 12 ENTRIES SKIPPED ---- I Investment (Trillion $) I(R11_AFR,2015) (.LO, .L, .UP, .M = 0.25088466851996, 0.25088466851996, 0.25088466851996, 0) -1 CAPITAL_CONSTRAINT(R11_AFR,2015) I(R11_AFR,2020) (.LO, .L, .UP, .M = 0.012544233425998, 0.012544233425998, +INF, 0) -1 CAPITAL_CONSTRAINT(R11_AFR,2020) -5 NEW_CAPITAL(R11_AFR,2020) 0 (OLD LEVEL ****) I(R11_AFR,2025) (.LO, .L, .UP, .M = 0.012544233425998, 0.012544233425998, +INF, 0) -1 CAPITAL_CONSTRAINT(R11_AFR,2025) -5 NEW_CAPITAL(R11_AFR,2025) 0 (OLD LEVEL ****) REMAINING 12 ENTRIES SKIPPED ---- UTILITY Utility function (discounted log of consumption) UTILITY (.LO, .L, .UP, .M = -INF, 0, +INF, 0) 1 UTILITY_FUNCTION ---- EC System costs (Trillion $) based on MESSAGE model run EC(R11_AFR,2015) (.LO, .L, .UP, .M = 43.0832715978074, 43.0832715978074, 43.0832715978074, 0) -1 CAPITAL_CONSTRAINT(R11_AFR,2015) EC(R11_AFR,2020) (.LO, .L, .UP, .M = -INF, 0, +INF, 0) -1 CAPITAL_CONSTRAINT(R11_AFR,2020) 1 COST_ENERGY(R11_AFR,2020) EC(R11_AFR,2025) (.LO, .L, .UP, .M = -INF, 0, +INF, 0) -1 CAPITAL_CONSTRAINT(R11_AFR,2025) 1 COST_ENERGY(R11_AFR,2025) REMAINING 12 ENTRIES SKIPPED GAMS 33.1.0 rb238721 Released Nov 1, 2020 WEX-WEI x86 64bit/MS Windows - 09/13/22 07:47:46 Page 6 G e n e r a l A l g e b r a i c M o d e l i n g S y s t e m Model Statistics SOLVE MESSAGE_MACRO Using NLP From line 816 LOOPS FOR/WHILE 1 * R11_AFR MODEL STATISTICS BLOCKS OF EQUATIONS 10 SINGLE EQUATIONS 255 BLOCKS OF VARIABLES 11 SINGLE VARIABLES 362 NON ZERO ELEMENTS 819 NON LINEAR N-Z 0 CODE LENGTH 1,334 CONSTANT POOL 392 GENERATION TIME = 0.000 SECONDS 5 MB 33.1.0 rb238721 WEX-WEI **** SOLVE from line 816 ABORTED, EXECERROR = 2 EXECUTION TIME = 0.016 SECONDS 5 MB 33.1.0 rb238721 WEX-WEI USER: Small MUD - 5 User License S190927/0001AP-GEN IIASA, Information and Communication Technologies Dep. DC216 License for teaching and research at degree granting institutions **** FILE SUMMARY Input c:\repo\message_ix\message_ix\model\MACRO_run.gms Output c:\repo\message_ix\message_ix\model\MACRO_run.lst **** USER ERROR(S) ENCOUNTERED