REMIND - REgional Model of INvestments and Development

3.4.0

created with goxygen 1.4.4

Macro-Economic Growth Module (01_macro)

Description

The macro module allows for the implementation of different macro-economic modules.

Interfaces

Interface plot missing!

Input

module inputs (A: singleSectorGr)
  Description Unit A
cm_startyear first optimized modelling time step \(year\) x
pm_cesdata
(tall, all_regi, all_in, cesParameter)
parameters of the CES function x
pm_costsTradePeFinancial
(all_regi, char, all_enty)
PE tradecosts (financial costs on import, export and use) x
pm_dt
(tall)
difference to last timestep x
pm_interpolWeight_ttot_tall
(tall)
weight for linear interpolation of ttot-dependent variables x
pm_lab
(tall, all_regi)
data for labour \(bn people\) x
pm_macCost
(tall, all_regi, all_enty)
abatement costs for all emissions subject to MACCs (type emiMacSector) x
pm_MPortsPrice
(tall, all_regi, all_enty)
Secondary energy import price for region (only used in se_trade realisation). x
pm_pop
(tall, all_regi)
population data \(bn people\) x
pm_risk_premium
(all_regi)
risk premium that lowers the use of capital imports x
pm_shPPPMER
(all_regi)
PPP ratio for calculating GDP|PPP from GDP|MER x
pm_SolNonInfes
(all_regi)
model status from last iteration. 1 means status 2 or 7, 0 for all other status codes x
pm_tall_2_ttot
(tall, ttot)
mapping from tall to ttot x
pm_totLUcosts
(tall, all_regi)
Total landuse costs (agriculture, bioenergy, MAC, etc). In standalone runs MAC costs are substituted by costs from the endogenous REMIND-MAC \(T\$US\) x
pm_tradecostgood
(all_regi)
Trade costs (final good). x
pm_ttot_val
(ttot)
value of ttot set element 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
vm_costAdjNash
(ttot, all_regi)
Adjustment costs for deviation from the trade structure of the last iteration. x
vm_costEnergySys
(ttot, all_regi)
energy system costs x
vm_costMatPrc
(tall, all_regi)
Cost of external material inputs such as iron ore in process-based industry \(trn \$2017/a\) x
vm_costpollution
(tall, all_regi)
costs for air pollution policies x
vm_costTradeCap
(tall, all_regi, all_enty)
Trade technology and transportation cost x
vm_damageFactor
(ttot, all_regi)
damage factor reducing GDP x
vm_damageProdFactor
(ttot, all_regi, all_in)
damage factor reducing production factors x
vm_effGr
(ttot, all_regi, all_in)
growth of factor efficiency x
vm_esCapInv
(ttot, all_regi, all_teEs)
investment for energy end-use capital at the energy service level x
vm_Mport
(tall, all_regi, all_enty)
Import of traded commodity. x
vm_taxrev
(ttot, all_regi)
difference between tax volume in current and previous iteration x
vm_Xport
(tall, all_regi, all_enty)
Export of traded commodity. x

Output

module outputs
  Description Unit
pm_consPC
(tall, all_regi)
Consumption per capita
pm_delta_kap
(all_regi, all_in)
Depreciation rate of capital.
pm_ppfen_shares
(ttot, all_regi, all_in, all_in)
Limit the share of one ppfEn in total CES nest inputs.
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

Realizations

(A) singleSectorGr

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) \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(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) \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 pm\_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.

Definitions

Objects

module-internal objects (A: singleSectorGr)
  Description Unit A
o01_CESderivatives
(ttot, all_regi, all_in, all_in)
derivatives of production CES function x
o01_CESmrs
(ttot, all_regi, all_in, all_in)
marginal rate of subsitution of CES production factors x
o01_totalCESEff
(ttot, all_regi, all_in)
total CES efficiency x
p01_boundInvMacro
(all_regi)
macro investments in 2005 x
p01_cumDeprecFactor_new
(ttot, all_regi, all_in)
Investment depreciation within a period, applied to the investment of t. x
p01_cumDeprecFactor_old
(ttot, all_regi, all_in)
Investment depreciation within a period, applied to the investment of t -1. x
p01_ppfen_ratios
(ttot, all_regi, all_in, all_in)
Limit ratio of two primary production factors of energy (ppfEn). x
q01_balLab
(ttot, all_regi)
Labour balance x
q01_cesIO
(ttot, all_regi, all_in)
Production function x
q01_invMacroAdj
(ttot, all_regi, all_in)
Adjustment costs for macro economic investments x
q01_kapMo
(ttot, all_regi, all_in)
Capital motion equation x
q01_kapMo0
(t0, all_regi, all_in)
Initial condition for capital x
q01_limitShPpfen
(ttot, all_regi, all_in, all_in)
Limit the share of one ppfEn in total CES nest inputs x
q01_limtRatioPpfen
(ttot, all_regi, all_in, all_in)
Limit the ratio of two ppfEn x
v01_invMacroAdj
(ttot, all_regi, all_in)
Adjustment costs of macro economic investments x

Sets

sets in use
  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_below(all_in, all_in) All elements of the CES below located below the first item given
cesOut2cesIn(all_in, all_in) CES tree structure
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_industry_dyn37(all_in) all inputs and outputs of the CES function - industry
in(all_in) All inputs and outputs of the CES function
industry_ue_calibration_target_dyn37(all_in) empty set
ipf(all_in) All intermediate production factors
modules all the available modules
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

See Also

02_welfare, 11_aerosols, 20_growth, 21_tax, 22_subsidizeLearning, 23_capitalMarket, 24_trade, 26_agCosts, 29_CES_parameters, 32_power, 35_transport, 36_buildings, 37_industry, 45_carbonprice, 47_regipol, 50_damages, 51_internalizeDamages, 80_optimization, core

References