REMIND - REgional Model of INvestments and Development

3.2.0

created with goxygen 1.3.2

REMIND - REgional Model of INvestments and Development

REMIND is a global multi-regional model incorporating the economy, the climate system and a detailed representation of the energy sector. It solves for an intertemporal Pareto optimum in economic and energy investments in the model regions, fully accounting for interregional trade in goods, energy carriers and emissions allowances. REMIND enables analyses of technology options and policy proposals for climate change mitigation.

The macro-economic core of REMIND is a Ramsey-type optimal growth model in which intertemporal global welfare is optimized subject to equilibrium constraints (02_welfare). Intertemporal optimization (80_optimization) with perfect foresight is subject to market clearing. The model explicitly represents trade in final goods, primary energy carriers, and when certain climate policies are enabled, emissions allowances (24_trade). The macro-economic production factors are capital, labor, and final energy. A nested production function with constant elasticity of substitution determines the final energy demand (01_macro, 29_CES_parameters). REMIND uses economic output for investments in the macro-economic capital stock as well as for consumption, trade, and energy system expenditures.

The macro-economic core and the energy system part are hard-linked via the final energy demand and the costs incurred by the energy system. Economic activity results in demand for final energy in different sectors (transport (35_transport), industry (37_industry), buildings (36_buildings)…) and of different type (electric (32_power) and non-electric). The primary energy carriers in REMIND include both exhaustible and renewable resources. Exhaustible resources comprise uranium as well as three fossil resources (31_fossil), namely coal, oil, and gas. Renewable resources include hydro, wind, solar, geothermal, and biomass (30_biomass). More than 50 technologies are available for the conversion of primary energy into secondary energy carriers as well as for the distribution of secondary energy carriers into final energy.

The model accounts for the full range of anthropogenic greenhouse gas (GHG) emissions, most of which are represented by source. REMIND simulates emissions from long-lived GHGs (CO2, CH4, N2O), short-lived GHGs (CO, NOx, VOC) and aerosols (SO2, BC, OC). It accounts for these emissions with different levels of detail depending on the types and sources of emissions. It calculates CO2 emissions from fuel combustion, CH4 emissions from fossil fuel extraction and residential energy use, and N2O emissions from energy supply based on sources.

The code is structured in a modular way, with code belonging either to the model’s core, or to one of the modules. The folder structure is as follows: at the top level are the folders config, core, modules and scripts. The config folder contains the REMIND settings and configuration information. The core folder contains all the files that are part of the core. The modules folder holds all the files that belong to the modules, with numbered sub-folders for every module. The scripts folder contains helpful scripts for starting a model run and analysing results.

REMIND is run by executing the main.gms file, which loads the configuration information and builds the model, by concatenating all necessary files from the core and modules folders into a single file called full.gms. The concatenation process starts with files from the core and continues with files from activated modules, in increasing order of module-number. It observes the following structure:

SETS

DECLARATION    ---> of equations, variables, parameters, and scalars

DATAINPUT

EQUATIONS

PRELOOP        ---> initial calibration of e.g. macroeconomic model

LOOP
---> read gdx
----------------------------------------------- BEGIN OF NEGISH/NASH ITERATION LOOP -----
* BOUNDS
* PRESOLVE
* SOLVE     ---> solve statement in module 80_optimization
* POSTSOLVE

---> write gdx
----------------------------------------------- END OF NEGISHI/NASH ITERATATION LOOP ----

OUTPUT

The GAMS code follows a Coding Etiquette:

Naming conventions:

Prefixes:

Use the following prefixes:

These prefixes are extended in some cases by a second letter:

Sets are treated differently: instead of a prefix, sets exclusively used within a module get that module’s number added as a suffix. If the set is used in more than one module no suffix is given.

The units (e.g., TWa, EJ, GtC, GtCO2, …) of variables and parameters are documented in the declaration files.

For the labels of parameters, scalars and set, use double quotes only.

Commenting:

Sets

Equations:

The general idea is not to write code and equations as short as possible, but to write them in a way they can be read and understood as fast as possible. To that end:

Other general rules:

Configuration - Settings for Scenarios:

$setGlobal c_expname  default
$setGlobal c_description  REMIND run with default settings

MODULES

——————— 01_macro —————————————–

$setGlobal macro  singleSectorGr  !! def = singleSectorGr

——————— 02_welfare —————————————

$setGlobal welfare  utilitarian  !! def = utilitarian

——————— 04_PE_FE_parameters ——————————

$setGlobal PE_FE_parameters  iea2014  !! def = iea2014

——————— 05_initialCap ————————————

$setGlobal initialCap  on             !! def = on

——————— 11_aerosols ————————————–

$setGlobal aerosols  exoGAINS         !! def = exoGAINS

——————— 15_climate —————————————

$setGlobal climate  off               !! def = off

——————— 16_downscaleTemperature ————————–

$setGlobal downscaleTemperature  off  !! def = off

——————— 20_growth ——————————————

$setglobal growth  exogenous                !! def = exogenous

——————— 21_tax ——————————————

$setglobal tax  on           !! def = on

——————— 22_subsidizeLearning —————————–

$setglobal subsidizeLearning  off           !! def = off

———————- 23_capitalMarket ——————————-

$setglobal capitalMarket  debt_limit           !! def = debt_limit

———————- 24_trade —————————————

$setglobal trade  standard           !! def = standard

———————- 26_agCosts —————————————-

$setglobal agCosts  costs       !! def = costs

——————— 29_CES_parameters —————————-

$setglobal CES_parameters  load   !! def = load

——————— 30_biomass —————————————-

$setglobal biomass  magpie_40     !! def = magpie_hightccost

——————— 31_fossil —————————————-

$setglobal fossil  grades2poly        !! def = grades2poly

——————— 32_power —————————————-

$setglobal power  IntC        !! def = IntC

——————— 33_CDR —————————————-

$setglobal CDR  DAC        !! def = DAC

——————— 35_transport —————————————-

$setglobal transport  edge_esm           !! def = edge_esm

——————— 36_buildings ———————————

$setglobal buildings  simple      !! def = simple

——————— 37_industry ———————————-

$setglobal industry  subsectors   !! def = subsectors

——————— 39_CCU ———————————

$setglobal CCU  on      !! def = on

——————— 40_techpol —————————————-

$setglobal techpol  none           !! def = none

——————— 41_emicapregi —————————————-

$setglobal emicapregi  none           !! def = none

——————— 42_banking —————————————-

$setglobal banking  off          !! def = off

——————— 45_carbonprice —————————————-

This module defines the carbon price pm_taxCO2eq, with behaviour across regions governed by similar principles (e.g. global targets, or all following NDC or NPi policies).

$setglobal carbonprice  none           !! def = none

——————— 46_carbonpriceRegi ———————————

This module applies a markup pm_taxCO2eqRegi on top of pm_taxCO2eq to achieve additional intermediate targets.

$setglobal carbonpriceRegi  none      !! def = none

——————— 47_regipol —————————————–

The regiCarbonPrice realisation defines more detailed region or emissions market specific targets, overwriting the behaviour of pm_taxCO2eq and pm_taxCO2eqRegi for these regions.

$setglobal regipol  none              !! def = none

——————— 50_damages —————————————

$setGlobal damages  off               !! def = off

——————— 51_internalizeDamages —————————-

$setGlobal internalizeDamages  off               !! def = off

——————— 70_water ——————————————-

$setglobal water  off                 !! def = off

——————— 80_optimization ———————————-

$setGlobal optimization  nash         !! def = nash

——————— 81_codePerformance ——————————-

$setGlobal codePerformance  off       !! def = off

SWITCHES

parameter
  cm_iteration_max          "number of iterations, if optimization is set to negishi or testOneRegi; used in nash mode only with cm_nash_autoconverge = 0"
;
  cm_iteration_max       = 1;     !! def = 1
parameter
  cm_abortOnConsecFail      "number of iterations of consecutive failures of one region after which to abort"
;
  cm_abortOnConsecFail   = 5;     !! def = 5
parameter
  cm_solver_try_max          "maximum number of inner iterations within one Negishi iteration (<10)"
;
  cm_solver_try_max       = 2;     !! def = 2

set to at least five by testOneRegi

parameter
  c_keep_iteration_gdxes    "save intermediate iteration gdxes"
;
  c_keep_iteration_gdxes = 0;     !! def = 0

in default we do not save gdx files from each iteration but this might be helpful for debugging

parameter
  cm_keep_presolve_gdxes    "save gdxes for all regions/solver tries/nash iterations for debugging"
;
  cm_keep_presolve_gdxes  = 0;     !! def = 0
parameter
  cm_nash_autoconverge      "choice of nash convergence mode"
;
  cm_nash_autoconverge   = 1;     !! def = 1
parameter
  cm_emiscen                "policy scenario choice"
;
  cm_emiscen        = 1;               !! def = 1
parameter
  cm_co2_tax_2020           "level of co2 tax in year 2020 in $ per t CO2eq, makes sense only for emiscen eq 9 and 45_carbonprice exponential"
;
  cm_co2_tax_2020   = -1;              !! def = -1
parameter
  cm_co2_tax_growth         "growth rate of carbon tax"
;
  cm_co2_tax_growth = 1.05;            !! def = 1.05

(any number >= 0): rate of exponential increase over time

parameter
  c_macscen                 "use of mac"
;
  c_macscen         = 1;               !! def = 1
parameter
  cm_nucscen                "nuclear option choice"
;
  cm_nucscen       = 2;        !! def = 2
parameter
  cm_ccapturescen       "carbon capture option choice, no carbon capture only if CCS and CCU are switched off!"
;
  cm_ccapturescen  = 1;        !! def = 1
parameter
  c_bioliqscen              "2nd generation bioenergy liquids technology choice"
;
  c_bioliqscen     = 1;        !! def = 1
parameter
  c_bioh2scen               "bioenergy hydrogen technology choice"
;
  c_bioh2scen      = 1;        !! def = 1
parameter
  c_shGreenH2               "lower bound on share of green hydrogen in all hydrogen from 2030 onwards"
;
  c_shGreenH2      = 0;        !! def = 0

(a number between 0 and 1): share

parameter
  c_shBioTrans              "upper bound on share of bioliquids in transport from 2025 onwards"
;
  c_shBioTrans     = 1;        !! def = 1

(a number between 0 and 1): share

parameter
  cm_shSynLiq               "lower bound on share of synfuels in SE liquids by 2045, gradual scale-up before"
;
  cm_shSynLiq    = 0;        !! def = 0

(a number between 0 and 1): share

parameter
  cm_shSynGas               "lower bound on share of synthetic gas in SE gases by 2045, gradual scale-up before"
;
  cm_shSynGas      = 0;        !! def = 0
parameter
  cm_IndCCSscen             "CCS for Industry"
;
  cm_IndCCSscen          = 1;        !! def = 1
parameter
  cm_optimisticMAC          "assume optimistic Industry MAC from AR5 Ch. 10?"
;
  cm_optimisticMAC       = 0;        !! def = 0
parameter
  cm_CCS_cement             "CCS for cement sub-sector"
;
  cm_CCS_cement          = 1;        !! def = 1
parameter
  cm_CCS_chemicals          "CCS for chemicals sub-sector"
;
  cm_CCS_chemicals       = 1;        !! def = 1
parameter
  cm_CCS_steel              "CCS for steel sub-sector"
;
  cm_CCS_steel           = 1;        !! def = 1
parameter
  c_solscen                 "solar option choice"
;
  c_solscen        = 1;        !! def = 1
parameter
  cm_bioenergy_SustTax      "level of the bioenergy sustainability tax in fraction of bioenergy price"
;
  cm_bioenergy_SustTax   = 1.5;      !! def = 1.5

Only effective if 21_tax is on. The tax is only applied to purpose grown 2nd generation (lignocellulosic) biomass and the level increases linearly with bioenergy demand. A value of 1 refers to a tax level of 100% at a production of 200 EJ per yr globally (implies 50% at 100 EJ per yr or 150% at 300 EJ per yr, for example).

parameter
  cm_bioenergy_EF_for_tax   "bioenergy emission factor that is used to derive a bioenergy tax [kgCO2 per GJ]"
;
  cm_bioenergy_EF_for_tax  = 0;        !! def = 0

Only effective if 21_tax is on, applied to all regions specified by cm_regi_bioenergy_EFTax. Please note that the tax, which is derived from this emission factor, is not the same as the sustainabilty tax described above. Please also note that the emission factor is only used to inform the tax level, i.e. associated emissions do not enter the emissions balance equations.

parameter
  cm_tradecostBio           "choose financial tradecosts multiplier for biomass (purpose grown pebiolc)"
;
  cm_tradecostBio     = 1;         !! def = 1
parameter
  cm_1stgen_phaseout        "choose if 1st generation biofuels should phase out after 2030 (vm_deltaCap equals 0)"
;
  cm_1stgen_phaseout  = 0;         !! def = 0
parameter
  cm_phaseoutBiolc          "Switch that allows for a full phaseout of all bioenergy technologies globally"
;
  cm_phaseoutBiolc    = 0;         !! def = 0
parameter
  cm_startyear              "first optimized modelling time step [year]"
;
  cm_startyear        = 2005;      !! def = 2005 for a baseline
parameter
  c_start_budget            "start of GHG budget limit"
;
  c_start_budget      = 2100;      !! def = 2100
parameter
  cm_prtpScen               "pure rate of time preference standard values"
;
  cm_prtpScen         = 3;         !! def = 3
parameter
  cm_fetaxscen              "choice of final energy tax path, subsidy path and inconvenience cost path, values other than zero enable final energy tax"
;
  cm_fetaxscen        = 3;         !! def = 3

even if set to 0, the PE inconvenience cost per SO2-cost for coal are always on if module 21_tax is on * (0): no tax, sub, inconv * (1): constant t,s,i (used in SSP 5 and ADVANCE WP3.1 HighOilSub) * (2): converging tax, phased out sub (-2030), no inconvenience cost so far (used in SSP 1) * (3): constant tax, phased out sub (-2050), no inconvenience cost so far (used in SSP 2) * (4): constant tax, phased out sub (-2030), no inconvenience cost so far (used in SDP)

parameter
  cm_distrBeta              "elasticity of tax revenue redistribution"
;
  cm_distrBeta        = 1;       !! def = 1

(0): equal per capita redistribution (1): proportional redistribution

parameter
  cm_multigasscen           "scenario on GHG portfolio to be included in permit trading scheme"
;
  cm_multigasscen     = 2;         !! def = 2
parameter
  cm_permittradescen        "scenario on permit trade"
;
  cm_permittradescen  = 1;         !! def = 1
parameter
  cm_rentdiscoil            "[grades2poly] discount factor for the oil rent"
;
  cm_rentdiscoil      = 0.2;       !! def 0.2
parameter
  cm_rentdiscoil2           "[grades2poly] discount factor for the oil rent achieved in 2100"
;
  cm_rentdiscoil2     = 0.9;       !! def 0.9
parameter
  cm_rentconvoil            "[grades2poly] number of years required to converge to the 2100 oil rent"
;
  cm_rentconvoil      = 50;        !! def 50
parameter
  cm_rentdiscgas            "[grades2poly] discount factor for the gas rent"
;
  cm_rentdiscgas      = 0.6;       !! def 0.6
parameter
  cm_rentdiscgas2           "[grades2poly] discount factor for the gas rent achieved in 2100"
;
  cm_rentdiscgas2     = 0.8;       !! def 0.8
parameter
  cm_rentconvgas            "[grades2poly] number of years required to converge to the 2100 gas rent"
;
  cm_rentconvgas      = 50;        !! def 50
parameter
  cm_rentdisccoal           "[grades2poly] discount factor for the coal rent"
;
  cm_rentdisccoal     = 0.4;       !! def 0.4
parameter
  cm_rentdisccoal2          "[grades2poly] discount factor for the coal rent achieved in 2100"
;
  cm_rentdisccoal2    = 0.6;       !! def 0.6
parameter
  cm_rentconvcoal           "[grades2poly] number of years required to converge to the 2100 coal rent"
;
  cm_rentconvcoal     = 50;        !! def 50
parameter
  c_cint_scen               "additional GHG emissions from mining fossil fuels"
;
  c_cint_scen           = 1;         !! def = 1
parameter
  cm_so2tax_scen            "level of SO2 tax"
;
  cm_so2tax_scen        = 1;         !! def =
parameter
  cm_solwindenergyscen      "scenario for fluctuating renewables, 1 is reference, 2 is pessimistic with limits to fluctuating SE el share"
;
  cm_solwindenergyscen  = 1;         !! def = 1
parameter
  c_techAssumptScen         "scenario for assumptions of energy technologies based on SSP scenarios, 1: SSP2 (default), 2: SSP1, 3: SSP5"
;
  c_techAssumptScen     = 1;         !! def = 1

This flag defines an energy technology scenario * (1) SSP2: reference scenario - default investment costs & learning rates for pv, csp and wind * (2) SSP1: advanced renewable energy techno., pessimistic for nuclear and CCS * (3) SSP5: pessimistic techno-economic assumptions

parameter
  c_ccsinjecratescen        "CCS injection rate factor, 0.5% by default yielding a 60 Mt per year IR"
;
  c_ccsinjecratescen    = 1;         !! def = 1

This flag determines the upper bound of the CCS injection rate CCS refers to carbon sequestration, carbon capture is modelled separately * (0) no “CCS” as in no carbon sequestration at all * (1) reference case: 0.005 * (2) lower estimate: 0.0025 * (3) upper estimate: 0.0075 * (4) unconstrained: 1 * (5) sustainability case: 0.001

parameter
  c_ccscapratescen          "CCS capture rate"
;
  c_ccscapratescen      = 1;         !! def = 1

This flag determines the CO2 capture rate of CCS technologies * (1) reference * (2) increased capture rate

parameter
  c_export_tax_scen         "choose which oil export tax is used in the model. 0 = none, 1 = fix"
;
  c_export_tax_scen     = 0;         !! def = 0
parameter
  cm_iterative_target_adj   "whether or not a tax or a budget target should be iteratively adjusted depending on actual emission or forcing level"
;
  cm_iterative_target_adj  = 0;      !! def = 0
parameter
  cm_NDC_divergentScenario  "choose scenario about convergence of CO2eq prices in NDC realization of module 45_carbonprice"
;
  cm_NDC_divergentScenario = 0;           !! def = 0
parameter
  cm_gdximport_target       "whether or not the starting value for iteratively adjusted budgets, tax scenarios, or forcing targets (emiscen 5,6,8,9) should be read in from the input.gdx"
;
  cm_gdximport_target      = 0;      !! def = 0
parameter
  cm_gs_ew                  "grain size (for enhanced weathering, CDR module) [micrometre]"
;
  cm_gs_ew                 = 20;     !! def = 20
parameter
  cm_LimRock                "limit amount of rock spread each year [Gt]"
;
  cm_LimRock               = 1000;   !! def = 1000
parameter
  cm_expoLinear_yearStart   "time at which carbon price increases lineraly instead of exponentially"
;
  cm_expoLinear_yearStart  = 2050;   !! def = 2050
parameter
  c_budgetCO2from2020FFI "carbon budget for CO2 emissions starting from 2020 from FFI (in GtCO2)"
;
  c_budgetCO2from2020FFI   = 700;    !! def = 700
parameter
  c_budgetCO2from2020   "carbon budget for all CO2 emissions starting from 2020 (in GtCO2)"
;
  c_budgetCO2from2020      = 1150;   !! def = 1150

budgets from AR6 for 2020-2100 (including 2020), for 1.5 C: 500 Gt CO2 peak budget (400 Gt CO2 end of century), for 2 C: 1150 Gt CO2

parameter
  cm_postTargetIncrease     "carbon price increase per year after regipol emission target is reached (euro per tCO2)"
;
  cm_postTargetIncrease    = 0;      !! def = 0
parameter
  cm_emiMktTargetDelay  "number of years for delayed price change in the emission tax convergence algorithm. Not applied to first target set."
;
  cm_emiMktTargetDelay    = 0;       !! def = 0
parameter
  cm_distrAlphaDam    "income elasticity of damages for inequality"
;
  cm_distrAlphaDam     = 1;    !! def = 1

1 means damage is distributed proportional to income, i.e. distributionally neutral, 0 means equal per capita distribution of damage

parameter
  cm_damages_BurkeLike_specification      "empirical specification for Burke-like damage functions"
;
  cm_damages_BurkeLike_specification    = 0;     !! def = 0

{0,5} Selects the main Burke specification “pooled, short-run” (0) or an alternative one “pooled, long-run”(5)

parameter
  cm_damages_BurkeLike_persistenceTime    "persistence time in years for Burke-like damage functions"
;
  cm_damages_BurkeLike_persistenceTime  = 30;    !! def = 30

Persistence time (half-time) in years. Highly uncertain, but may be in between 5 and 55 years.

parameter
  cm_damages_SccHorizon                   "Horizon for SCC calculation. Damages cm_damagesSccHorizon years into the future are internalized."
;
  cm_damages_SccHorizon                 = 100;   !! def = 100

Horizon for SCC calculation. Damages cm_damagesSccHorizon years into the future are internalized.

parameter
  cm_damage_KWSE                          "standard error for Kalkuhl & Wenz damages"
;
  cm_damage_KWSE                        = 0;     !! def = 0

{1.645 for 90% CI, 1.96 for 95% CI, no correction when 0}

parameter
  cm_carbonprice_temperatureLimit "not-to-exceed temperature target in degree above pre-industrial"
;
  cm_carbonprice_temperatureLimit       = 1.8;   !! def = 1.8
parameter
  cm_frac_CCS          "tax on CCS to reflect risk of leakage, formulated as fraction of ccs O&M costs"
;
  cm_frac_CCS          = 10;   !! def = 10
parameter
  cm_frac_NetNegEmi    "tax on CDR to reflect risk of overshooting, formulated as fraction of carbon price"
;
  cm_frac_NetNegEmi    = 0.5;  !! def = 0.5
parameter
  cm_DiscRateScen          "Scenario for the implicit discount rate applied to the energy efficiency capital"
;
  cm_DiscRateScen        = 0;!! def = 0
parameter
  cm_noReboundEffect      "Switch for allowing a rebound effect when closing the efficiency gap (cm_DiscRateScen)"
;
  cm_noReboundEffect     = 0;

price sensitivity of logit function for heating and cooking technological choice

parameter
  cm_priceSensiBuild    "Price sensitivity of energy carrier choice in buildings"
;
  cm_priceSensiBuild     = -3;

price sensitivity of logit function for heating and cooking technological choice

parameter
  cm_peakBudgYr       "date of net-zero CO2 emissions for peak budget runs without overshoot"
;
  cm_peakBudgYr            = 2050;   !! def = 2050

time of net-zero CO2 emissions (peak budget), requires emiscen to 9 and cm_iterative_target_adj to 7, will potentially be adjusted by algorithms

parameter
  cm_taxCO2inc_after_peakBudgYr "annual increase of CO2 price after the Peak Budget Year in $ per tCO2"
;
  cm_taxCO2inc_after_peakBudgYr = 0; !! def = 0 . For weak targets (higher than 1100 Peak Budget), this value might need to increased to prevent continually increasing temperatures
parameter
  cm_CO2priceRegConvEndYr      "Year at which regional CO2 prices converge in module 45 realization diffPhaseIn2LinFlex"
;
  cm_CO2priceRegConvEndYr  = 2050;   !! def = 2050
parameter
  cm_TaxConvCheck             "switch for enabling tax convergence check in nash mode"
;
  cm_TaxConvCheck = 0; !! def 0, which means tax convergence check is off

switches tax convergence check in nash mode on and off (check that tax revenue in all regions, periods be smaller than 0.01% of GDP) * 0 (off) * 1 (on), default

parameter
  cm_maxFadeOutPriceAnticip   "switch to determine maximum allowed fadeout price anticipation to consider that the model converged."
;
  cm_maxFadeOutPriceAnticip = 1e-4; !! def 1e-4, the fadeout price anticipation term needs to be lower than 1e-4 to consider that the model converged.
parameter
  cm_flex_tax                 "switch for enabling flexibility tax"
;
  cm_flex_tax = 1; !! def 1

cm_flex_tax “switch for flexibility tax/subsidy, switching it on activates a tax on a number of technologies with flexible or inflexible electricity input.” technologies with flexible eletricity input get a subsidy corresponding to the lower-than-average electricity prices that they see, while inflexible technologies get a tax corresponding to the higher-than-average electricity prices that they see * (0) flexibility tax off * (1) flexibility tax on

parameter
  cm_H2targets                "switches on capacity targets for electrolysis in NDC techpol following national Hydrogen Strategies"
;
  cm_H2targets = 0; !! def 0
parameter
  cm_PriceDurSlope_elh2       "slope of price duration curve of electrolysis"
;
  cm_PriceDurSlope_elh2 = 15; !! def 15

cm_PriceDurSlope_elh2, slope of price duration curve for electrolysis (increase means more flexibility subsidy for electrolysis H2) This switch only has an effect if the flexibility tax is on by cm_flex_tax set to 1

parameter
  cm_FlexTaxFeedback          "switch deciding whether flexibility tax feedback on buildlings and industry electricity prices is on"
;
  cm_FlexTaxFeedback = 0; !! def 0

cm_FlexTaxFeedback, switches on feedback of flexibility tax on buildings and industry. That is, electricity price decrease for electrolysis has to be matched by electrictiy price increase in buildings and industry. This switch only has an effect if the flexibility tax is on by cm_flex_tax set to 1.

parameter
  cm_VRE_supply_assumptions        "default (0), optimistic (1), sombre (2), or bleak (3) assumptions on VRE supply"
;
  cm_VRE_supply_assumptions = 0; !! 0 - default, 1 - optimistic, 2 - sombre, 3 - bleak
parameter
  cm_build_H2costAddH2Inv     "additional h2 distribution costs for low diffusion levels (default value: 6.5$/kg = 0.2 $/Kwh)"
;
  cm_build_H2costAddH2Inv = 0.2;  !! def 6.5$/kg = 0.2 $/Kwh
parameter
  cm_build_H2costDecayStart   "simplified logistic function end of full value (ex. 5%  -> between 0 and 5% the function will have the value 1). [%]"
;
  cm_build_H2costDecayStart = 0.05; !! def 5%
parameter
  cm_build_H2costDecayEnd     "simplified logistic function start of null value (ex. 10% -> after 10% the function will have the value 0). [%]"
;
  cm_build_H2costDecayEnd = 0.1;  !! def 10%
parameter
  cm_build_AdjCostActive      "Activate adjustment cost to penalise inter-temporal variation of area-specific weatherisation demand and space cooling efficiency slope (only in putty)"
;
  cm_build_AdjCostActive = 0; !! def 0 = Adjustment cost deactivated (set to 1 to activate)
parameter
  cm_indst_H2costAddH2Inv     "additional h2 distribution costs for low diffusion levels (default value: 3.25$kg = 0.1 $/kWh)"
;
  cm_indst_H2costAddH2Inv = 0.1;  !! def 3.25$/kg = 0.1 $/Kwh
parameter
  cm_indst_costDecayStart     "simplified logistic function end of full value   (ex. 5%  -> between 0 and 5% the simplified logistic function will have the value 1). [%]"
;
  cm_indst_costDecayStart = 0.05; !! def 5%
parameter
  cm_indst_H2costDecayEnd     "simplified logistic function start of null value (ex. 10% -> between 10% and 100% the simplified logistic function will have the value 0). [%]"
;
  cm_indst_H2costDecayEnd = 0.1;  !! def 10%
parameter
  cm_BioSupply_Adjust_EU      "factor for scaling sub-EU bioenergy supply curves"
;
  cm_BioSupply_Adjust_EU = 3; !! def 3, 3*bioenergy supply slope obtained from input data

scales bioenergy supply curves in EU regions (mainly used to match EUR H12/ 3 /GJ from 2030 onward, and 30\(/GJ from 2040 onward, and 40\)/GJ from 2040 onward. scales slope of bioenergy supply curves in EU subregions (mainly used to match EUR H12/Magpie bioenergy potential) switch can be removed once supply curves for EU subregions are fixed in input data

parameter
  cm_noPeFosCCDeu              "switch to suppress Pe2Se Fossil Carbon Capture in Germany"
;
  cm_noPeFosCCDeu = 0; !! def 0

CCS limitations for Germany def 0, no suppression of Pe2Se Fossil Carbon Capture in Germany, if 1 then no pe2se fossil CO2 capture in Germany fossil CCS limitations in Germany+

parameter
  cm_logitCal_markup_conv_b   "value to which logit calibration markup of standard fe2ue technologies in detailed buildings module converges to"
;
  cm_logitCal_markup_conv_b = 0.8; !! def 0.8

long-term convergence value of detailed buildings fe2ue conventional techs price markup

parameter
  cm_logitCal_markup_newtech_conv_b "value to which logit calibration markup of new fe2ue technologies in detailed buildings module converges to"
;
  cm_logitCal_markup_newtech_conv_b = 0.3; !! def 0.3

long-term convergence value of detailed buildings fe2ue new techs price markup

parameter
  cm_startIter_EDGET          "starting iteration of EDGE-T"
;
  cm_startIter_EDGET = 14; !! def 14, by default EDGE-T is run first in iteration 14

EDGE-T transport starting iteration of coupling def 14, EDGE-T coupling starts at 14, if you want to test whether infeasibilities after EDGE-T -> set it to 1 to check after first iteration

parameter
  cm_deuCDRmax                 "switch to limit maximum annual CDR amount in Germany in MtCO2 per y"
;
  cm_deuCDRmax = -1; !! def = -1

switch to cap annual DEU CDR amount by value assigned to switch, or no cap if -1, in MtCO2

parameter
  cm_EnSecScen_limit        "switch for limiting the gas demand from 2025 onward, currently only applied to Germany"
;
  cm_EnSecScen_limit = 0; !! def = 0

This switch is used to represent a limited gas supply in a energy security scenario. [EJ per yr]

parameter
  c_SlackMultiplier   "Muliplicative factor to up/downscale the slack size for v_changeProdStartyearSlack"
;
  c_SlackMultiplier = 1; !! def 1
parameter
  c_changeProdCost   "Muliplicative factor to up/downscale the costs for vm_changeProdStartyearCost"
;
  c_changeProdCost = 5; !! def 5

FLAGS

cm_MAgPIE_coupling “switch on coupling mode with MAgPIE”

$setglobal cm_MAgPIE_coupling  off     !! def = "off"

cm_rcp_scen “chooses RCP scenario”

$setglobal cm_rcp_scen  none         !! def = "none"

cm_NDC_version “choose version year of NDC targets as well as conditional vs. unconditional targets” * (2023_cond): all NDCs conditional to international financial support published until February 24, 2023 * (2023_uncond): all NDCs independent of international financial support published until February 24, 2023 * (2022_cond): all NDCs conditional to international financial support published until December 31, 2022 * (2022_uncond): all NDCs independent of international financial support published until December 31, 2022 * (2021_cond): all NDCs conditional to international financial support published until December 31, 2021 * (2021_uncond): all NDCs independent of international financial support published until December 31, 2021 * (2018_cond): all NDCs conditional to international financial support published until December 31, 2018 * (2018_uncond): all NDCs independent of international financial support published until December 31, 2018

$setglobal cm_NDC_version  2023_cond    !! def = "2023_cond", "2023_uncond", "2022_cond", "2022_uncond", "2021_cond", "2021_uncond", "2018_cond", "2018_uncond"
$setglobal cm_netZeroScen  NGFS_v4     !! def = "NGFS_v4"
$setglobal c_regi_earlyreti_rate  GLO 0.09, EUR_regi 0.15      !! def = GLO 0.09, EUR_regi 0.15
$setglobal c_tech_earlyreti_rate  GLO.(biodiesel 0.14, bioeths 0.14), EUR_regi.(biodiesel 0.15, bioeths 0.15), USA_regi.pc 0.13, REF_regi.pc 0.13, CHA_regi.pc 0.13 !! def = GLO.(biodiesel 0.14, bioeths 0.14), EUR_regi.(biodiesel 0.15, bioeths 0.15), USA_regi.pc 0.13, REF_regi.pc 0.13, CHA_regi.pc 0.13
$setglobal cm_LU_emi_scen  SSP2   !! def = SSP2
$setGlobal cm_regi_bioenergy_EFTax  glob  !! def = glob
$setglobal cm_tradbio_phaseout  default  !! def = default
$setglobal cm_maxProdBiolc  off  !! def = off     
$setGLobal cm_bioprod_regi_lim off !! def off
$setglobal cm_POPscen  pop_SSP2EU  !! def = pop_SSP2EU
$setglobal cm_GDPscen  gdp_SSP2EU  !! def = gdp_SSP2EU
$setGlobal cm_oil_scen  medOil         !! def = medOil
$setGlobal cm_gas_scen  medGas         !! def = medGas
$setGlobal cm_coal_scen  medCoal        !! def = medCoal
$setglobal c_ccsinjecrateRegi  off  !! def = "off"
$setglobal c_SSP_forcing_adjust  forcing_SSP2   !! def = forcing_SSP2
$setGlobal cm_regiExoPrice  off    !! def = off
$setGlobal cm_emiMktTarget  off    !! def = off
$setGlobal cm_quantity_regiCO2target  off !! def = off
$setGlobal cm_dispatchSetyDown  off   !! def = off  The amount that te producing any sety can dispatch less (in percent) - so setting "20" in a cm_dispatchSetyDown column in scenario_config will allow the model to reduce the output of this te by 20%
$setGlobal cm_dispatchSeelDown  off   !! def = off  The amount that te producing seel can dispatch less (in percent) (overrides cm_dispatchSetyDown for te producing seel)
$setGlobal cm_NucRegiPol   off   !! def = off
$setGlobal cm_CoalRegiPol   off   !! def = off
$setGlobal cm_proNucRegiPol   off   !! def = off
$setGlobal cm_CCSRegiPol     off   !! def = off
$setGlobal cm_vehiclesSubsidies  off !! def = off
$setGlobal cm_implicitQttyTarget  off !! def = off
$setGlobal cm_loadFromGDX_implicitQttyTargetTax  off !! def = off
$setGlobal cm_implicitPriceTarget  off !! def = off
$setGlobal cm_implicitPePriceTarget  off !! def = off
$setGlobal cm_VREminShare    off !! def = off
$setGlobal cm_CCSmaxBound    off  !! def = off
$setglobal c_CES_calibration_new_structure  0     !!  def  =  0
$setglobal c_CES_calibration_write_prices  0     !!  def  =  0
$setglobal cm_CES_calibration_default_prices  0.01  !!  def  =  0.01
$setglobal cm_calibration_string  off    !!  def  =  off
$setglobal cm_techcosts  REG       !! def = REG
$setglobal cm_regNetNegCO2  on       !! def = on
$setGlobal cm_EDGEtr_scen  Mix1  !! def = Mix1
$setglobal cm_steel_secondary_max_share_scenario  off !! def off , switch on for maximum secondary steel share
$setGlobal cm_import_tax off !! def off
$setGlobal cm_import_EU  off !! def off
$setGlobal cm_import_ariadne  off !! def off
$setGlobal cm_trade_SE_exog off !! def off
$setGlobal cm_EnSecScen  off !! def off
$setGlobal cm_EnSecScen_price  off !! def off
$setGlobal cm_indstExogScen  off !! def off
$setGLobal cm_exogDem_scen off !! def off
$setGlobal cm_Ger_Pol  off !! def off
$setGlobal cm_altFeEmiFac  off        !! def = off
$setglobal cm_calibration_FE  off      !! def = off
$setglobal cm_eni  off  !! def = off
$setglobal cm_enb  off  !! def = off
$setglobal cm_LDV_mkt_share  off !! def = off
$setglobal cm_share_LDV_sales  off !! def = off
$setglobal cm_incolearn  off !! def = off
$setglobal cm_storageFactor  off !! def = off
$setglobal cm_learnRate  off !! def = off
$setglobal cm_adj_seed  off
$setglobal cm_adj_seed_cont  off
$setglobal cm_adj_coeff  off
$setglobal cm_adj_coeff_cont  off
$setglobal cm_adj_seed_multiplier  off
$setglobal cm_adj_coeff_multiplier  off
$setglobal cm_inco0Factor  off !! def = off
$setglobal cm_inco0RegiFactor  off  !! def = off
$setglobal cm_CCS_markup  off  !! def = off
$setglobal cm_Industry_CCS_markup  off !! def = off
$setglobal cm_renewables_floor_cost  off  !! def = off
$setglobal cm_DAC_eff  off  !! def = off
$setglobal cm_sehe_upper  off !! def = off
$setglobal cm_rcp_scen_build  none   !! def = "none"
$setGlobal cm_pushCalib  none  !! def = none
$setGlobal cm_reducCostB  none  !! def = none
$setGlobal cm_effHP  5  !! def = 5
$setGlobal cm_CESMkup_build  standard  !! def = standard
$setGlobal cm_CESMkup_ind  standard  !! def = standard
$setglobal cm_feShareLimits  off  !! def = off
$setGlobal c_VREPot_Factor  off  !! def = off
$setGlobal cm_FEtax_trajectory_abs  off !! def = off
$setGlobal cm_FEtax_trajectory_rel  off !! def = off
$setGLobal c_agricult_base_shift off !! def off
$setglobal cm_wind_offshore  1      !! def = 1
$setglobal cm_INCONV_PENALTY  on         !! def = on
$setglobal cm_INCONV_PENALTY_FESwitch  on !! def = on
$setGlobal cm_MOFEX  off        !! def = off
$setGlobal cm_Full_Integration  off     !! def = off

MAGICC configuration either uncalibrated or calibrate year 2000 temperature to HADCRUT4 data (which is very close to AR5).

$setGlobal cm_magicc_calibrateTemperature2000  uncalibrated  !! def = uncalibrated

Derive temperature impulse response to CO2 emissions, based on MAGICC. Adds around 10min runtime.

$setGlobal cm_magicc_temperatureImpulseResponse  off           !! def = off

MAGICC configuration roughly comparable to TCRE value, or even more roughly, equivalent climate sensitivity choose from OLDDEFAULT (REMIND1.7 legacy file); or different percentiles of RCP26 or generic TCRE outcomes calibrated to CMIP5 (see Schultes et al. (2018) for details)

$setGlobal cm_magicc_config  OLDDEFAULT    !! def = OLDDEFAULT ; {OLDDEFAULT, RCP26_[5,15,..,95], TCRE_[LOWEST,LOW,MEDIUM,HIGH,HIGHEST] }

climate damages (HowardNonCatastrophic, DICE2013R, DICE2016, HowardNonCatastrophic, HowardInclCatastrophic, KWcross, KWpanelPop}

$setGlobal cm_damage_DiceLike_specification  HowardNonCatastrophic   !! def = HowardNonCatastrophic
$setGlobal cm_damage_Labor_exposure  low    !!def = low
$setGlobal cm_TCssp  SSP2  !! def = SSP2
$setGlobal cm_TCpers  8  !! def = 8
$setGlobal cm_TCspec  mean  !! def = mean
$setglobal cm_transpGDPscale  off  !! def = off
$setGlobal c_skip_output  off        !! def = off
$setglobal cm_CO2TaxSectorMarkup  off   !! def = off
$setGlobal c_regi_nucscen  all  !! def = all
$setGlobal c_regi_capturescen  all  !! def = all
$setglobal cm_process_based_steel   off  !! off
$setglobal c_CO2priceDependent_AdjCosts    on   !! def = on
$setGlobal cm_conoptv  conopt3    !! def = conopt3

c_empty_model “Short-circuit the model, just use the input as solution”

(off): normal model operation, default (on): no model operation, instead input.gdx is copied to fulldata.gdx

$setGlobal c_empty_model   off    !! def = off

mode for solving nash problem

$setGlobal cm_nash_mode  parallel      !! def = parallel
$setglobal cm_secondary_steel_bound  scenario   !! def = scenario
$setglobal c_GDPpcScen  SSP2EU     !! def = gdp_SSP2   (automatically adjusted by start_run() based on GDPscen)
$setglobal cm_demScen  gdp_SSP2EU     !! def = gdp_SSP2EU
$setGlobal c_scaleEmiHistorical  on  !! def = on
$SetGlobal cm_quick_mode  off          !! def = off
$setGLobal cm_debug_preloop  off    !! def = off
$setGlobal cm_APscen  SSP2          !! def = SSP2
$setglobal cm_CES_configuration  indu_subsectors-buil_simple-tran_edge_esm-POP_pop_SSP2EU-GDP_gdp_SSP2EU-En_gdp_SSP2EU-Kap_debt_limit-Reg_62eff8f7   !! this will be changed by start_run()
$setglobal c_CES_calibration_iterations  10     !!  def  =  10
$setglobal c_CES_calibration_industry_FE_target  1
$setglobal c_testOneRegi_region  EUR       !! def = EUR
$setglobal cm_fixCO2price  off !! def = off

Authors

Gunnar Luderer, Nico Bauer, Lavinia Baumstark, Christoph Bertram, Marian Leimbach, Robert Pietzcker, Jessica Strefler, Tino Aboumahboub, Gabriel Abrahão, Cornelia Auer, Falk Benke, Stephen Bi, Jan Dietrich, Alois Dirnaichner, Sophie Fuchs, Pascal Führlich, Anastasis Giannousakis, Chen Chris Gong, Markus Haller, Robin Hasse, Jerome Hilaire, Johanna Hoppe, David Klein, Johannes Koch, Alexander Körner, Katarzyna Kowalczyk, Elmar Kriegler, Antoine Levesque, Alexander Lorenz, Sylvie Ludig, Michael Lüken, Aman Malik, Rahel Mandaroux, Susanne Manger, Anne Merfort, Leon Merfort, Simón Moreno-Leiva, Ioanna Mouratiadou, Adrian Odenweller, Michaja Pehl, Mika Pflüger, Franziska Piontek, Laura Popin, Sebastian Rauner, Oliver Richters, Renato Rodrigues, Niklas Roming, Marianna Rottoli, Eva Schmidt, Christof Schötz, Felix Schreyer, Anselm Schultes, Björn Sörgel, Falko Ueckerdt, Philipp Verpoort, Pascal Weigmann

How to cite

Luderer G, Bauer N, Baumstark L, Bertram C, Leimbach M, Pietzcker R, Strefler J, Aboumahboub T, Abrahão G, Auer C, Benke F, Bi S, Dietrich J, Dirnaichner A, Fuchs S, Führlich P, Giannousakis A, Gong C, Haller M, Hasse R, Hilaire J, Hoppe J, Klein D, Koch J, Körner A, Kowalczyk K, Kriegler E, Levesque A, Lorenz A, Ludig S, Lüken M, Malik A, Mandaroux R, Manger S, Merfort A, Merfort L, Moreno-Leiva S, Mouratiadou I, Odenweller A, Pehl M, Pflüger M, Piontek F, Popin L, Rauner S, Richters O, Rodrigues R, Roming N, Rottoli M, Schmidt E, Schötz C, Schreyer F, Schultes A, Sörgel B, Ueckerdt F, Verpoort P, Weigmann P (2023). “REMIND - REgional Model of INvestments and Development - Version 3.2.0.” <URL: https://www.pik-potsdam.de/research/transformation-pathways/models/remind>.

Bibtex format

@Misc{,
  title = {REMIND - REgional Model of INvestments and Development - Version 3.2.0},
  author = {Gunnar Luderer and Nico Bauer and Lavinia Baumstark and Christoph Bertram and Marian Leimbach and Robert Pietzcker and Jessica Strefler and Tino Aboumahboub and Gabriel Abrahão and Cornelia Auer and Falk Benke and Stephen Bi and Jan Dietrich and Alois Dirnaichner and Sophie Fuchs and Pascal Führlich and Anastasis Giannousakis and Chen Chris Gong and Markus Haller and Robin Hasse and Jerome Hilaire and Johanna Hoppe and David Klein and Johannes Koch and Alexander Körner and Katarzyna Kowalczyk and Elmar Kriegler and Antoine Levesque and Alexander Lorenz and Sylvie Ludig and Michael Lüken and Aman Malik and Rahel Mandaroux and Susanne Manger and Anne Merfort and Leon Merfort and Simón Moreno-Leiva and Ioanna Mouratiadou and Adrian Odenweller and Michaja Pehl and Mika Pflüger and Franziska Piontek and Laura Popin and Sebastian Rauner and Oliver Richters and Renato Rodrigues and Niklas Roming and Marianna Rottoli and Eva Schmidt and Christof Schötz and Felix Schreyer and Anselm Schultes and Björn Sörgel and Falko Ueckerdt and Philipp Verpoort and Pascal Weigmann},
  date = {2023-04-21},
  year = {2023},
  url = {https://www.pik-potsdam.de/research/transformation-pathways/models/remind},
}

Citation File Format

cff-version: 1.0.3
message: If you use this model, please cite it as below.
authors:
- family-names: Luderer
  given-names: Gunnar
  orcid: https://orcid.org/0000-0002-9057-6155
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Bauer
  given-names: Nico
  orcid: https://orcid.org/0000-0002-0211-4162
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Baumstark
  given-names: Lavinia
  orcid: https://orcid.org/0000-0002-6979-6671
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Bertram
  given-names: Christoph
  orcid: https://orcid.org/0000-0002-0933-4395
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Leimbach
  given-names: Marian
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Pietzcker
  given-names: Robert
  orcid: https://orcid.org/0000-0002-9403-6711
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Strefler
  given-names: Jessica
  orcid: https://orcid.org/0000-0002-5279-4629
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Aboumahboub
  given-names: Tino
- family-names: Abrahão
  given-names: Gabriel
  orcid: https://orcid.org/0000-0003-0336-6246
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Auer
  given-names: Cornelia
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Benke
  given-names: Falk
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Bi
  given-names: Stephen
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Dietrich
  given-names: Jan
  orcid: https://orcid.org/0000-0002-4309-6431
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Dirnaichner
  given-names: Alois
  orcid: https://orcid.org/0000-0002-3240-2608
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Fuchs
  given-names: Sophie
  orcid: https://orcid.org/0009-0000-7258-1287
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Führlich
  given-names: Pascal
  orcid: https://orcid.org/0000-0002-6856-8239
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Giannousakis
  given-names: Anastasis
  orcid: https://orcid.org/0000-0002-4225-0011
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Gong
  given-names: Chen Chris
  orcid: https://orcid.org/0000-0002-6406-6266
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Haller
  given-names: Markus
- family-names: Hasse
  given-names: Robin
  orcid: https://orcid.org/0000-0003-1818-3186
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Hilaire
  given-names: Jerome
  orcid: https://orcid.org/0000-0002-9879-6339
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Hoppe
  given-names: Johanna
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Klein
  given-names: David
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Koch
  given-names: Johannes
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Körner
  given-names: Alexander
- family-names: Kowalczyk
  given-names: Katarzyna
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Kriegler
  given-names: Elmar
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Levesque
  given-names: Antoine
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Lorenz
  given-names: Alexander
- family-names: Ludig
  given-names: Sylvie
- family-names: Lüken
  given-names: Michael
- family-names: Malik
  given-names: Aman
  orcid: https://orcid.org/0000-0002-7310-8448
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Mandaroux
  given-names: Rahel
  orcid: https://orcid.org/0000-0001-5596-2571
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Manger
  given-names: Susanne
- family-names: Merfort
  given-names: Anne
  orcid: https://orcid.org/0000-0002-5929-7748
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Merfort
  given-names: Leon
  orcid: https://orcid.org/0000-0003-1704-6892
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Moreno-Leiva
  given-names: Simón
  orcid: https://orcid.org/0000-0002-9625-3955
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Mouratiadou
  given-names: Ioanna
- family-names: Odenweller
  given-names: Adrian
  orcid: https://orcid.org/0000-0002-1123-8124
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Pehl
  given-names: Michaja
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Pflüger
  given-names: Mika
  orcid: https://orcid.org/0000-0002-7814-8916
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Piontek
  given-names: Franziska
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Popin
  given-names: Laura
- family-names: Rauner
  given-names: Sebastian
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Richters
  given-names: Oliver
  orcid: https://orcid.org/0000-0001-8253-4716
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Rodrigues
  given-names: Renato
  orcid: https://orcid.org/0000-0002-5863-5514
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Roming
  given-names: Niklas
- family-names: Rottoli
  given-names: Marianna
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Schmidt
  given-names: Eva
- family-names: Schötz
  given-names: Christof
  orcid: https://orcid.org/0000-0003-3528-4544
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Schreyer
  given-names: Felix
  orcid: https://orcid.org/0000-0003-0376-2599
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Schultes
  given-names: Anselm
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Sörgel
  given-names: Björn
  orcid: https://orcid.org/0000-0002-2630-7081
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Ueckerdt
  given-names: Falko
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Verpoort
  given-names: Philipp
  orcid: https://orcid.org/0000-0003-1319-5006
  affiliation: Potsdam Institute for Climate Impact Research
- family-names: Weigmann
  given-names: Pascal
  orcid: https://orcid.org/0000-0001-8801-173X
  affiliation: Potsdam Institute for Climate Impact Research
title: REMIND - REgional Model of INvestments and Development
version: 3.2.0
date-released: '2023-04-21'
repository-code: https://github.com/remindmodel/remind
keywords:
- energy
- economy
- modeling
license: AGPL-3.0-or-later
url: https://www.pik-potsdam.de/research/transformation-pathways/models/remind

References