From a550a4908964e5d3bf4c08be1d67f9a11798ae05 Mon Sep 17 00:00:00 2001
From: Franziska Piontek <piontek@pik-potsdam.de>
Date: Wed, 17 Jun 2020 23:04:34 +0200
Subject: [PATCH] Add damage specification from Kalkuhl & Wenz (2020) to damage
 module.

---
 config/default.cfg                          | 4 ++--
 modules/50_damages/DiceLike/datainput.gms   | 6 ++++++
 modules/50_damages/DiceLike/realization.gms | 2 +-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/config/default.cfg b/config/default.cfg
index 841f112..58ab57c 100755
--- a/config/default.cfg
+++ b/config/default.cfg
@@ -1,4 +1,4 @@
-# |  (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK)
+# |  (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK)
 # |  authors, and contributors see CITATION.cff file. This file is part
 # |  of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of
 # |  AGPL-3.0, you are granted additional permissions described in the
@@ -403,7 +403,7 @@ cfg$gms$cm_magicc_temperatureImpulseResponse <- "off" # def = off; {off,on }
 cfg$gms$cm_carbonprice_temperatureLimit <- 1.8 # def = 1.8; not-to-exceed temperature target in degree above pre-industrial
 
 # climate damages
-cfg$gms$cm_damage_DiceLike_specification <- "HowardNonCatastrophic" # def = "HowardNonCatastrophic"; {DICE2013R,DICE2016,HowardNonCatastrophic,HowardInclCatastrophic}
+cfg$gms$cm_damage_DiceLike_specification <- "HowardNonCatastrophic" # def = "HowardNonCatastrophic"; {DICE2013R,DICE2016,HowardNonCatastrophic,HowardInclCatastrophic,KWcross,KWpanelPop}
 cfg$gms$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)
 cfg$gms$cm_damages_BurkeLike_persistenceTime <- 30 # def = 30; Persistence time (half-time) in years. Highly uncertain, but may be in between 5 and 55 years.
 cfg$gms$cm_damages_SccHorizon <- 100   # def = 100; Horizon for SCC calculation. Damages cm_damagesSccHorizon years into the future are internalized.
diff --git a/modules/50_damages/DiceLike/datainput.gms b/modules/50_damages/DiceLike/datainput.gms
index ade7f77..df3a302 100644
--- a/modules/50_damages/DiceLike/datainput.gms
+++ b/modules/50_damages/DiceLike/datainput.gms
@@ -7,6 +7,7 @@
 
 
 p50_damageFuncCoef1 = 0;
+p50_damageFuncCoef2 = 0;
 
 * http://www.econ.yale.edu/~nordhaus/homepage/DICE2013R_110513_vanilla.gms
 $ifi %cm_damage_DiceLike_specification% == "DICE2013R" p50_damageFuncCoef2 = 0.00267;
@@ -18,6 +19,11 @@ $ifi %cm_damage_DiceLike_specification% == "DICE2016" p50_damageFuncCoef2 = 0.00
 $ifi %cm_damage_DiceLike_specification% == "HowardNonCatastrophic" p50_damageFuncCoef2 = 0.00744;
 $ifi %cm_damage_DiceLike_specification% == "HowardInclCatastrophic" p50_damageFuncCoef2 = 0.0100;
 
+* Kalkuhl & Wenz (2020)
+$ifi %cm_damage_DiceLike_specification% == "KWcross" p50_damageFuncCoef1 = 0.023;
+$ifi %cm_damage_DiceLike_specification% == "KWpanelPop" p50_damageFuncCoef1 = 0.0373;
+$ifi %cm_damage_DiceLike_specification% == "KWpanelPop" p50_damageFuncCoef2 = 0.0009;
+
 *initialize
 pm_damage(tall,regi) = 1;
 
diff --git a/modules/50_damages/DiceLike/realization.gms b/modules/50_damages/DiceLike/realization.gms
index a3fe050..cce172d 100644
--- a/modules/50_damages/DiceLike/realization.gms
+++ b/modules/50_damages/DiceLike/realization.gms
@@ -6,7 +6,7 @@
 *** |  Contact: remind@pik-potsdam.de
 *** SOF ./modules/50_damages/DiceLike.gms
 
-*' @description Output damages are calculated based on the DICE-based damage function (see @DICEdocumentation). Three different specifications can be chosen: DICE2013R, DICE2016 or Howard (@Howard2017) through the switch cm_damage_DiceLike_specification. They are based on the global mean temperature pathway from MAGICC.
+*' @description Output damages are calculated based on the DICE-based damage function (see @DICEdocumentation). Multiple different specifications can be chosen: DICE2013R, DICE2016, Howard (@Howard2017) or different options from Kalkuhl & Wenz (2020) (KWcross for the cross-sectional specification, KWpanelPop for the panel specification with population weighting) through the switch cm_damage_DiceLike_specification. They are based on the global mean temperature pathway from MAGICC.
 
 *' @limitations: Unless the realization "DiceLikeItr" is used for module 51_internalizeDamages, the damages are not actually part of the optimization, but just enter as a fixed variable updated in between iterations.
 
-- 
GitLab