The macro module allows for the implementation of different macro-economic modules.
Interface plot missing!
| Description | Unit | A | B | |
|---|---|---|---|---|
| cm_startyear | first optimized modelling time step | \(year\) | x | x |
| pm_MPortsPrice (tall, all_regi, all_enty) |
Secondary energy import price for region (only used in se_trade realisation). | x | x | |
| pm_SolNonInfes (all_regi) |
model status from last iteration. 1 means status 2 or 7, 0 for all other status codes | x | x | |
| pm_XPortsPrice (tall, all_regi, all_enty) |
Export price for region (capacity realisation). Calculated in the postsolve and corresponding to the region secondary energy price | \(T\$/TWa\) | x | x |
| pm_cesdata (tall, all_regi, all_in, cesParameter) |
parameters of the CES function: efficiency parameters (xi, eff, effgr) [unitless], target quantities of CES calibration (quantity) [unit of CES node, see set all_in], CES prices resulting from calibration (price) | \(T\$/unit of CES node\) | x | x |
| pm_costsTradePeFinancial (all_regi, char, all_enty) |
PE tradecosts (financial costs on import, export and use) | x | x | |
| pm_dt (tall) |
difference to last timestep | x | x | |
| pm_interpolWeight_ttot_tall (tall) |
weight for linear interpolation of ttot-dependent variables | x | x | |
| pm_lab (tall, all_regi) |
data for labour | \(bn people\) | x | x |
| pm_macCost (tall, all_regi, all_enty) |
abatement costs for all emissions subject to MACCs (type emiMacSector) | \(T\$\) | x | x |
| pm_pop (tall, all_regi) |
population data | \(bn people\) | x | x |
| pm_risk_premium (all_regi) |
risk premium that lowers the use of capital imports | x | x | |
| pm_shPPPMER (all_regi) |
PPP ratio for calculating GDP|PPP from GDP|MER | x | x | |
| pm_tall_2_ttot (tall, ttot) |
mapping from tall to ttot | x | x | |
| pm_totLUcosts_excl_costFuBio (tall, all_regi) |
Total landuse costs (agriculture, MAC, etc) excluding bioenergy. In standalone runs MAC costs are substituted by costs from the endogenous REMIND-MAC | \(T\$US\) | x | x |
| pm_tradecostgood (all_regi) |
Trade costs (final good). | x | x | |
| pm_ttot_val (ttot) |
value of ttot set element | x | x | |
| vm_Mport (tall, all_regi, all_enty) |
Import of traded commodity. | x | x | |
| vm_Xport (tall, all_regi, all_enty) |
Export of traded commodity. | x | x | |
| vm_biocharRevenue (ttot, all_regi) |
Additional revenue from use of biochar | \(tril\$\) | x | x |
| vm_costAdjNash (ttot, all_regi) |
Adjustment costs for deviation from the trade structure of the last iteration. | x | x | |
| vm_costEnergySys (ttot, all_regi) |
total energy system costs | \(T\$\) | x | x |
| vm_costMatPrc (tall, all_regi) |
Cost of external material inputs such as iron ore in process-based industry | \(trn \$2017/a\) | x | x |
| vm_costTradeCap (tall, all_regi, all_enty) |
Trade technology and transportation cost | x | x | |
| vm_costpollution (tall, all_regi) |
costs of air pollution policies | \(T\$\) | x | x |
| vm_damageFactor (ttot, all_regi) |
damage factor reducing GDP | x | x | |
| vm_damageProdFactor (ttot, all_regi, all_in) |
damage factor reducing production factors | x | x | |
| vm_effGr (ttot, all_regi, all_in) |
growth of factor efficiency | x | x | |
| vm_esCapInv (ttot, all_regi, all_teEs) |
investment for energy end-use capital at the energy service level | \(T\$\) | x | x |
| vm_taxrev (ttot, all_regi) |
difference between tax volume in current and previous iteration | \(T\$\) | x | x |
| vm_waccCost (ttot, all_regi) |
difference between WACC costs in current and previous iteration | x | x |
| Description | Unit | |
|---|---|---|
| pm_consPC (tall, all_regi) |
Consumption per capita | |
| pm_delta_kap (all_regi, all_in) |
Depreciation rate of capital. | |
| qm_budget (ttot, all_regi) |
Budget balance | |
| vm_cesIO (tall, all_regi, all_in) |
Production factor | |
| vm_cons (ttot, all_regi) |
Consumption | |
| vm_invImi (ttot, all_regi, all_in) |
Investment into imitation | |
| vm_invInno (ttot, all_regi, all_in) |
Investment into innovation | |
| vm_invMacro (ttot, all_regi, all_in) |
Investment for capital for ttot |
The Investment_Inefficiencies realization accounts for investment losses due to domestic capital market inefficiencies.
Usable macroeconomic output - net of climate change damages - is calculated from the macroeconomic output, taking into account export and import of the final good, taking specific trade costs into account, which are assigned to the importer. The resulting output is used for consumption, for investments into the capital stock, and for the energy system cost components investments, fuel costs and operation & maintenance. Other additional costs like non-energy related greenhouse gas abatement costs and agricultural costs, which are delivered by the land use model MAgPIE, are deduced from disposable output. Net tax revenues and adjustment costs converge to zero in the optimal solution (equilibrium point).
\[\begin{multline*} vm\_cesIO(ttot,regi,"inco") \cdot vm\_damageFactor(ttot,regi) - vm\_Xport(ttot,regi,"good") + vm\_Mport(ttot,regi,"good") \cdot \left(1 - pm\_tradecostgood(regi) - pm\_risk\_premium(regi)\right) + vm\_biocharRevenue(ttot,regi) \geq vm\_cons(ttot,regi) + \sum_{ppfKap(in)} vm\_invMacro(ttot,regi,in) + \sum_{ppfKap(in)} v01\_invMacroAdj(ttot,regi,in) + \sum_{in} vm\_invInno(ttot,regi,in) + \sum_{in} vm\_invImi(ttot,regi,in) + \sum_{tradePe(enty)\$\left(NOT tradeCap(enty)\right)}\left( pm\_costsTradePeFinancial(regi,"Mport",enty) \cdot vm\_Mport(ttot,regi,enty)\right) + \sum_{tradePe(enty)\$\left(NOT tradeCap(enty)\right)}\left( \left(pm\_costsTradePeFinancial(regi,"Xport",enty) \cdot vm\_Xport(ttot,regi,enty)\right) \cdot \left( 1 + \left(\frac{ pm\_costsTradePeFinancial(regi,"XportElasticity",enty) }{ sqr\left(pm\_ttot\_val(ttot)-pm\_ttot\_val(ttot-1)\right) } \cdot \left(\frac{ vm\_Xport(ttot,regi,enty) }{ \left( vm\_Xport(ttot-1,regi,enty) + pm\_costsTradePeFinancial\left(regi, "tradeFloor",enty\right) \right) }- 1 \right) \right)\$\left( ttot.val ge max\left(2010, cm\_startyear\right) \right) \right) \right) + \sum_{tradeSe}\left( pm\_MPortsPrice(ttot,regi,tradeSe) \cdot vm\_Mport(ttot,regi,tradeSe)\right) - \sum_{tradeSe}\left( pm\_XPortsPrice(ttot,regi,tradeSe) \cdot vm\_Xport(ttot,regi,tradeSe)\right) + \sum_{tradeCap} vm\_costTradeCap(ttot,regi,tradeCap) + vm\_taxrev(ttot,regi)\$\left(ttot.val ge 2010\right) + vm\_costAdjNash(ttot,regi) + \sum_{teEs} vm\_esCapInv(ttot,regi,teEs) + vm\_costpollution(ttot,regi) + pm\_totLUcosts\_excl\_costFuBio(ttot,regi) + \sum_{enty\$\left(emiMacSector(enty) \& \left(NOT emiMacMagpie(enty)\right)\right)} pm\_macCost(ttot,regi,enty) + vm\_costMatPrc(ttot,regi) + vm\_costEnergySys(ttot,regi) + vm\_waccCost(ttot,regi)\$\left(ttot.val ge 2010\right) \end{multline*}\]
The labor available in every time step and every region comes from exogenous data. It is the population corrected by the population age structure, which results in the labour force of people agged 15 to 65. The labor participation rate is not factored into the labour supply (as it would only imply a rescaling of parameters without consequences for the model’s dynamic). The labour market balance equation reads as follows:
\[\begin{multline*} vm\_cesIO(t,regi,"lab") = pm\_lab(t,regi) \end{multline*}\]
The production function is a nested CES (constant elasticity of substitution) production function. The macroeconomic output is generated by the inputs capital, labor, and total final energy (as a macro-ecoomic aggregate in $US units). The generation of total final energy is described by a CES production function as well, whose input factors are CES function outputs again. Hence, the outputs of CES nests are intermediates measured in $US units. According to the Euler-equation the value of the intermediate equals the sum of expenditures for the inputs. Sector-specific final energy types represent the bottom end of the `CES-tree’. These ‘CES leaves’ are measured in physical units and have a price in $US per physical unit. The top of the tree is the total economic output measured in $US. The following equation is the generic form of the production function. It treats the various CES nests separately and the nests are inter-connetected via mappings. This equation calculates the amount of intermediate output in a time-step and region from the associated factor input amounts according to:
\[\begin{multline*} vm\_cesIO(t,regi,out) = exp\left( log\left( \sum_{cesOut2cesIn(out,in)}\left( pm\_cesdata(t,regi,in,"xi") \cdot exp\left( log\left( pm\_cesdata(t,regi,in,"eff") \cdot vm\_effGr(t,regi,in) \cdot vm\_damageProdFactor(t,regi,in) \cdot vm\_cesIO(t,regi,in) \right) \cdot pm\_cesdata(t,regi,out,"rho") \right) \right) \right) \cdot \left(\frac{1 }{ pm\_cesdata(t,regi,out,"rho")}\right) \right) \end{multline*}\]
The capital stock is calculated recursively. Its amount in the previous time step is devaluated by an annual depreciation factor and enlarged by investments. Both depreciation and investments are expressed as annual values, so the time step length is taken into account.
\[\begin{multline*} vm\_cesIO(ttot+1,regi,in) = vm\_cesIO(ttot,regi,in) \cdot \left(1 - pm\_delta\_kap(regi,in)\right) ^{ \left(pm\_ttot\_val(ttot+1) - pm\_ttot\_val(ttot)\right) }+ p01\_cumDeprecFactor\_old(ttot+1,regi,in) \cdot vm\_invMacro(ttot,regi,in) \cdot p01\_investeffectv(regi) + p01\_cumDeprecFactor\_new(ttot+1,regi,in) \cdot vm\_invMacro(ttot+1,regi,in) \cdot p01\_investeffectv(regi) \end{multline*}\]
Adjustment costs of macro economic investments:
\[\begin{multline*} v01\_invMacroAdj(ttot,regi,in) = sqr\left(\frac{\frac{ \left(vm\_invMacro(ttot,regi,in)-vm\_invMacro(ttot-1,regi,in)\right) }{ \left(pm\_ttot\_val(ttot)-pm\_ttot\_val(ttot-1)\right) }}{ \left(vm\_invMacro(ttot,regi,in)+0.0001\right) }\right) \cdot \frac{ vm\_cesIO(ttot,regi,in) }{ 11 } \end{multline*}\]
Initial conditions for capital:
\[\begin{multline*} vm\_cesIO(t,regi,in) = pm\_cesdata(t,regi,in,"quantity") \end{multline*}\]
Limit the share of one ppfEn in total CES nest inputs:
\[\begin{multline*} vm\_cesIO(t,regi,in) + pm\_cesdata(t,regi,in,"offset\_quantity") \leq p01\_ppfen\_shares(t,regi,out,in) \cdot \left(\sum\left(cesOut2cesIn(out,in2), vm\_cesIO(t,regi,in2) + pm\_cesdata(t,regi,in2,"offset\_quantity")\right)\right) \end{multline*}\]
Limit the ratio of two ppfEn:
\[\begin{multline*} vm\_cesIO(t,regi,in) + pm\_cesdata(t,regi,in,"offset\_quantity") \leq p01\_ppfen\_ratios(t,regi,in,in2) \cdot \left(vm\_cesIO(t,regi,in2) + pm\_cesdata(t,regi,in,"offset\_quantity")\right) \end{multline*}\]
Limitations There are no known limitations.
The singleSectorGr realization corresponds to a neo-classical, single sector growth model.
Usable macroeconomic output - net of climate change damages - is calculated from the macroeconomic output, taking into account export and import of the final good, taking specific trade costs into account, which are assigned to the importer. The resulting output is used for consumption, for investments into the capital stock, and for the energy system cost components investments, fuel costs and operation & maintenance. Other additional costs like non-energy related greenhouse gas abatement costs and agricultural costs, which are delivered by the land use model MAgPIE, are deduced from disposable output. Net tax revenues and adjustment costs converge to zero in the optimal solution (equilibrium point).
\[\begin{multline*} vm\_cesIO(ttot,regi,"inco") \cdot vm\_damageFactor(ttot,regi) - vm\_Xport(ttot,regi,"good") + vm\_Mport(ttot,regi,"good") \cdot \left(1 - pm\_tradecostgood(regi) - pm\_risk\_premium(regi)\right) + vm\_biocharRevenue(ttot,regi) \geq vm\_cons(ttot,regi) + \sum_{ppfKap(in)} vm\_invMacro(ttot,regi,in) + \sum_{ppfKap(in)} v01\_invMacroAdj(ttot,regi,in) + \sum_{in} vm\_invInno(ttot,regi,in) + \sum_{in} vm\_invImi(ttot,regi,in) + \sum_{tradePe(enty)\$\left(NOT tradeCap(enty)\right)}\left( pm\_costsTradePeFinancial(regi,"Mport",enty) \cdot vm\_Mport(ttot,regi,enty)\right) + \sum_{tradePe(enty)\$\left(NOT tradeCap(enty)\right)}\left( \left(pm\_costsTradePeFinancial(regi,"Xport",enty) \cdot vm\_Xport(ttot,regi,enty)\right) \cdot \left( 1 + \left(\frac{ pm\_costsTradePeFinancial(regi,"XportElasticity",enty) }{ sqr\left(pm\_ttot\_val(ttot)-pm\_ttot\_val(ttot-1)\right) } \cdot \left(\frac{ vm\_Xport(ttot,regi,enty) }{ \left( vm\_Xport(ttot-1,regi,enty) + pm\_costsTradePeFinancial\left(regi, "tradeFloor",enty\right) \right) }- 1 \right) \right)\$\left( ttot.val ge max\left(2010, cm\_startyear\right) \right) \right) \right) + \sum_{tradeSe}\left( pm\_MPortsPrice(ttot,regi,tradeSe) \cdot vm\_Mport(ttot,regi,tradeSe)\right) - \sum_{tradeSe}\left( pm\_XPortsPrice(ttot,regi,tradeSe) \cdot vm\_Xport(ttot,regi,tradeSe)\right) + \sum_{tradeCap} vm\_costTradeCap(ttot,regi,tradeCap) + vm\_taxrev(ttot,regi)\$\left(ttot.val ge 2010\right) + vm\_costAdjNash(ttot,regi) + \sum_{teEs} vm\_esCapInv(ttot,regi,teEs) + vm\_costpollution(ttot,regi) + pm\_totLUcosts\_excl\_costFuBio(ttot,regi) + \sum_{enty\$\left(emiMacSector(enty) \& \left(NOT emiMacMagpie(enty)\right)\right)} pm\_macCost(ttot,regi,enty) + vm\_costMatPrc(ttot,regi) + vm\_costEnergySys(ttot,regi) + vm\_waccCost(ttot,regi)\$\left(ttot.val ge 2005\right) \end{multline*}\]
The labor available in every time step and every region comes from exogenous data. It is the population corrected by the population age structure, which results in the labour force of people agged 15 to 65. The labor participation rate is not factored into the labour supply (as it would only imply a rescaling of parameters without consequences for the model’s dynamic). The labour market balance equation reads as follows:
\[\begin{multline*} vm\_cesIO(t,regi,"lab") = pm\_lab(t,regi) \end{multline*}\]
The production function is a nested CES (constant elasticity of substitution) production function. The macroeconomic output is generated by the inputs capital, labor, and total final energy (as a macro-ecoomic aggregate in $US units). The generation of total final energy is described by a CES production function as well, whose input factors are CES function outputs again. Hence, the outputs of CES nests are intermediates measured in $US units. According to the Euler-equation the value of the intermediate equals the sum of expenditures for the inputs. Sector-specific final energy types represent the bottom end of the `CES-tree’. These ‘CES leaves’ are measured in physical units and have a price in $US per physical unit. The top of the tree is the total economic output measured in $US. The following equation is the generic form of the production function. It treats the various CES nests separately and the nests are inter-connetected via mappings. This equation calculates the amount of intermediate output in a time-step and region from the associated factor input amounts according to:
\[\begin{multline*} vm\_cesIO(t,regi,out) = exp\left( log\left( \sum_{cesOut2cesIn(out,in)}\left( pm\_cesdata(t,regi,in,"xi") \cdot exp\left( log\left( pm\_cesdata(t,regi,in,"eff") \cdot vm\_effGr(t,regi,in) \cdot vm\_damageProdFactor(t,regi,in) \cdot vm\_cesIO(t,regi,in) \right) \cdot pm\_cesdata(t,regi,out,"rho") \right) \right) \right) \cdot \left(\frac{1 }{ pm\_cesdata(t,regi,out,"rho")}\right) \right) \end{multline*}\]
The capital stock is calculated recursively. Its amount in the previous time step is devaluated by an annual depreciation factor and enlarged by investments. Both depreciation and investments are expressed as annual values, so the time step length is taken into account.
\[\begin{multline*} vm\_cesIO(ttot+1,regi,in) = vm\_cesIO(ttot,regi,in) \cdot \left(1 - pm\_delta\_kap(regi,in)\right) ^{ \left(pm\_ttot\_val(ttot+1) - pm\_ttot\_val(ttot)\right) }+ p01\_cumDeprecFactor\_old(ttot+1,regi,in) \cdot vm\_invMacro(ttot,regi,in) + p01\_cumDeprecFactor\_new(ttot+1,regi,in) \cdot vm\_invMacro(ttot+1,regi,in) \end{multline*}\]
Adjustment costs of macro economic investments:
\[\begin{multline*} v01\_invMacroAdj(ttot,regi,in) = sqr\left(\frac{\frac{ \left(vm\_invMacro(ttot,regi,in)-vm\_invMacro(ttot-1,regi,in)\right) }{ \left(pm\_ttot\_val(ttot)-pm\_ttot\_val(ttot-1)\right) }}{ \left(vm\_invMacro(ttot,regi,in)+0.0001\right) }\right) \cdot \frac{ vm\_cesIO(ttot,regi,in) }{ 11 } \end{multline*}\]
Initial conditions for capital:
\[\begin{multline*} vm\_cesIO(t,regi,in) = pm\_cesdata(t,regi,in,"quantity") \end{multline*}\]
Limit the share of one ppfEn in total CES nest inputs:
\[\begin{multline*} vm\_cesIO(t,regi,in) + pm\_cesdata(t,regi,in,"offset\_quantity") \leq p01\_ppfen\_shares(t,regi,out,in) \cdot \left(\sum\left(cesOut2cesIn(out,in2), vm\_cesIO(t,regi,in2) + pm\_cesdata(t,regi,in2,"offset\_quantity")\right)\right) \end{multline*}\]
Limit the ratio of two ppfEn:
\[\begin{multline*} vm\_cesIO(t,regi,in) + pm\_cesdata(t,regi,in,"offset\_quantity") \leq p01\_ppfen\_ratios(t,regi,in,in2) \cdot \left(vm\_cesIO(t,regi,in2) + pm\_cesdata(t,regi,in,"offset\_quantity")\right) \end{multline*}\]
Limitations There are no known limitations.
| Description | Unit | A | B | |
|---|---|---|---|---|
| o01_CESderivatives (ttot, all_regi, all_in, all_in) |
derivatives of production CES function | x | x | |
| o01_CESmrs (ttot, all_regi, all_in, all_in) |
marginal rate of subsitution of CES production factors | x | x | |
| o01_totalCESEff (ttot, all_regi, all_in) |
total CES efficiency | x | x | |
| p01_boundInvMacro (all_regi) |
macro investments in 2005 | x | x | |
| p01_cumDeprecFactor_new (ttot, all_regi, all_in) |
Investment depreciation within a period, applied to the investment of t. | x | x | |
| p01_cumDeprecFactor_old (ttot, all_regi, all_in) |
Investment depreciation within a period, applied to the investment of t -1. | x | x | |
| p01_investeffectv (all_regi) |
efficiency rate of investments | x | ||
| p01_ppfen_ratios (ttot, all_regi, all_in, all_in) |
Limit ratio of two primary production factors of energy (ppfEn). | x | x | |
| p01_ppfen_shares (ttot, all_regi, all_in, all_in) |
Limit the share of one ppfEn in total CES nest inputs. | x | x | |
| q01_balLab (ttot, all_regi) |
Labour balance | x | x | |
| q01_cesIO (ttot, all_regi, all_in) |
Production function | x | x | |
| q01_invMacroAdj (ttot, all_regi, all_in) |
Adjustment costs for macro economic investments | x | x | |
| q01_kapMo (ttot, all_regi, all_in) |
Capital motion equation | x | x | |
| q01_kapMo0 (t0, all_regi, all_in) |
Initial condition for capital | x | x | |
| q01_limitShPpfen (ttot, all_regi, all_in, all_in) |
Limit the share of one ppfEn in total CES nest inputs | x | x | |
| q01_limtRatioPpfen (ttot, all_regi, all_in, all_in) |
Limit the ratio of two ppfEn | x | x | |
| v01_invMacroAdj (ttot, all_regi, all_in) |
Adjustment costs of macro economic investments | x | x |
| description | |
|---|---|
| all_enty | all types of quantities |
| all_in | all inputs and outputs of the CES function |
| all_regi | all regions |
| all_teEs | energy service technologies |
| cesLevel2cesIO(counter, all_in) | CES tree structure by level |
| cesOut2cesIn(all_in, all_in) | CES tree structure |
| cesOut2cesIn_below(all_in, all_in) | All elements of the CES below located below the first item given |
| cesParameter | parameters of the CES functions and for calibration |
| cesRev2cesIO(counter, all_in) | CES tree structure by level - descending order |
| char | characteristics of technologies |
| counter | helper set to facilitate looping in defined order |
| emiMacMagpie(all_enty) | types of climate-relevant non-energy emissions with mac curve where baseline emissions come from MAgPIE only |
| emiMacSector(all_enty) | types of climate-relevant non-energy emissions with mac curve. Emissions in this set HAVE to be in emiMac2mac as well - if no MAC is available it will be set to zero automatically. |
| enty(all_enty) | all types of quantities |
| in(all_in) | All inputs and outputs of the CES function |
| in_industry_dyn37(all_in) | all inputs and outputs of the CES function - industry |
| industry_ue_calibration_target_dyn37(all_in) | target values of industry calibration |
| ipf(all_in) | All intermediate production factors |
| ppf(all_in) | All primary production factors |
| ppfEn(all_in) | Primary production factors energy |
| ppfKap(all_in) | Primary production factors capital |
| regi(all_regi) | all regions used in the solution process |
| t(ttot) | optimisation time, years between cm_startyear and 2150 with 5 to 20 years time steps |
| t0(tall) | start of modelling time, not optimization |
| tall | time index, each year from 1900 to 3000 |
| teEs(all_teEs) | ES technologies which are actually used (to be filled by module realizations). |
| tradeCap(all_enty) | Commodities traded via capacity mode. |
| tradePe(all_enty) | Traded primary energy commodities |
| tradeSe(all_enty) | Traded secondary energy commodities |
| ttot(tall) | time index with spin-up, years between 1900 and 2150 with 5 to 20 years time steps |
02_welfare, 11_aerosols, 20_growth, 21_tax, 22_subsidizeLearning, 23_capitalMarket, 24_trade, 25_WACC, 26_agCosts, 29_CES_parameters, 32_power, 33_carbonRemoval, 35_transport, 36_buildings, 37_industry, 40_techpol, 45_carbonprice, 47_regipol, 50_damages, 51_internalizeDamages, 80_optimization, core