From 4992f2fb0c37f38523f5814c20dd2be1ad4c7bc2 Mon Sep 17 00:00:00 2001
From: Lavinia Baumstark <baumstark@pik-potsdam.de>
Date: Mon, 16 Dec 2019 08:56:12 +0100
Subject: [PATCH] add documentation for the module 41_emicapregi (done by
 Marian)

---
 modules/41_emicapregi/AbilityToPay/realization.gms |  3 +++
 modules/41_emicapregi/CandC/datainput.gms          |  8 --------
 modules/41_emicapregi/CandC/realization.gms        |  4 ++++
 modules/41_emicapregi/GDPint/datainput.gms         |  3 ++-
 modules/41_emicapregi/GDPint/realization.gms       |  3 +++
 modules/41_emicapregi/POPint/datainput.gms         |  4 ++--
 modules/41_emicapregi/POPint/realization.gms       |  5 +++++
 .../PerCapitaConvergence/datainput.gms             | 11 ++---------
 .../PerCapitaConvergence/realization.gms           |  4 ++++
 modules/41_emicapregi/exog/realization.gms         |  4 ++++
 modules/41_emicapregi/module.gms                   | 14 ++++++++++++++
 modules/41_emicapregi/none/realization.gms         |  4 ++++
 12 files changed, 47 insertions(+), 20 deletions(-)

diff --git a/modules/41_emicapregi/AbilityToPay/realization.gms b/modules/41_emicapregi/AbilityToPay/realization.gms
index 1906f7b..c6fa250 100644
--- a/modules/41_emicapregi/AbilityToPay/realization.gms
+++ b/modules/41_emicapregi/AbilityToPay/realization.gms
@@ -6,6 +6,9 @@
 *** |  Contact: remind@pik-potsdam.de
 *** SOF ./modules/41_emicapregi/AbilityToPay.gms
 
+*' @description
+*' Emission caps/permits are allocated according to the ability to pay principle  
+
 *####################### R SECTION START (PHASES) ##############################
 $Ifi "%phase%" == "declarations" $include "./modules/41_emicapregi/AbilityToPay/declarations.gms"
 $Ifi "%phase%" == "datainput" $include "./modules/41_emicapregi/AbilityToPay/datainput.gms"
diff --git a/modules/41_emicapregi/CandC/datainput.gms b/modules/41_emicapregi/CandC/datainput.gms
index 9bd775e..abc52a3 100644
--- a/modules/41_emicapregi/CandC/datainput.gms
+++ b/modules/41_emicapregi/CandC/datainput.gms
@@ -15,14 +15,6 @@ Execute_Loadpoint "input_ref" p41_co2eq = vm_co2eq.l;
 p41_shEmi2005(regi) = p41_co2eq("2005",regi) / sum(regi2, p41_co2eq("2005",regi2) );
 display p41_shEmi2005;
 
-*LB* safe formulation of c_polscen = 11
-$ontext
-***  contraction & convergence (reference year 2020)  +++++++++
-        p41_lambda(tall) $(tall.val<2050) = (tall.val-2020) / 30;
-        p41_lambda(tall) $(tall.val>2049) = 1;
-$offtext
-
-*gl* calculate share of global emissions according to different burden sharing rules
      pm_shPerm(t,regi) =  p41_lambda(t) * pm_pop(t,regi) / sum(regi2,pm_pop(t,regi2))
          + (1 - p41_lambda(t)) * p41_shEmi2005(regi) / sum(regi2, p41_shEmi2005(regi2));
 *** EOF ./modules/41_emicapregi/CandC/datainput.gms
diff --git a/modules/41_emicapregi/CandC/realization.gms b/modules/41_emicapregi/CandC/realization.gms
index f98e426..8b42ff9 100644
--- a/modules/41_emicapregi/CandC/realization.gms
+++ b/modules/41_emicapregi/CandC/realization.gms
@@ -6,6 +6,10 @@
 *** |  Contact: remind@pik-potsdam.de
 *** SOF ./modules/41_emicapregi/CandC.gms
 
+*' @description
+*' Emission caps/permits are allocated according to the contraction and convergence 
+*' rule (transition towards equal per capita allocation; with reference years 2005 and 2050)
+
 *####################### R SECTION START (PHASES) ##############################
 $Ifi "%phase%" == "declarations" $include "./modules/41_emicapregi/CandC/declarations.gms"
 $Ifi "%phase%" == "datainput" $include "./modules/41_emicapregi/CandC/datainput.gms"
diff --git a/modules/41_emicapregi/GDPint/datainput.gms b/modules/41_emicapregi/GDPint/datainput.gms
index 7a500bd..5fee4af 100644
--- a/modules/41_emicapregi/GDPint/datainput.gms
+++ b/modules/41_emicapregi/GDPint/datainput.gms
@@ -5,7 +5,8 @@
 *** |  REMIND License Exception, version 1.0 (see LICENSE file).
 *** |  Contact: remind@pik-potsdam.de
 *** SOF ./modules/41_emicapregi/GDPint/datainput.gms
-*gl* calculate share of global emissions according to different burden sharing rules
+
+*** calculate share of global emissions 
      pm_shPerm(t,regi)  =  pm_gdp_gdx(t,regi) / sum(regi2, pm_gdp_gdx(t,regi2));
 
 
diff --git a/modules/41_emicapregi/GDPint/realization.gms b/modules/41_emicapregi/GDPint/realization.gms
index e13d093..3218f37 100644
--- a/modules/41_emicapregi/GDPint/realization.gms
+++ b/modules/41_emicapregi/GDPint/realization.gms
@@ -6,6 +6,9 @@
 *** |  Contact: remind@pik-potsdam.de
 *** SOF ./modules/41_emicapregi/GDPint.gms
 
+*' @description
+*' Emission caps/permits are allocated according to GDP intensity
+
 *####################### R SECTION START (PHASES) ##############################
 $Ifi "%phase%" == "declarations" $include "./modules/41_emicapregi/GDPint/declarations.gms"
 $Ifi "%phase%" == "datainput" $include "./modules/41_emicapregi/GDPint/datainput.gms"
diff --git a/modules/41_emicapregi/POPint/datainput.gms b/modules/41_emicapregi/POPint/datainput.gms
index b0177b4..8dbde4f 100644
--- a/modules/41_emicapregi/POPint/datainput.gms
+++ b/modules/41_emicapregi/POPint/datainput.gms
@@ -5,8 +5,8 @@
 *** |  REMIND License Exception, version 1.0 (see LICENSE file).
 *** |  Contact: remind@pik-potsdam.de
 *** SOF ./modules/41_emicapregi/POPint/datainput.gms
-*gl* calculate share of global emissions according to different burden sharing rules
-*ML* cumulated POP shares
+
+*** calculate share of global emissions 
      pm_shPerm(t,regi)  =  sum(t2, pm_pop(t2,regi))/sum((t2,regi2),pm_pop(t2,regi2));
 
 *** EOF ./modules/41_emicapregi/POPint/datainput.gms
diff --git a/modules/41_emicapregi/POPint/realization.gms b/modules/41_emicapregi/POPint/realization.gms
index aee1a59..2445100 100644
--- a/modules/41_emicapregi/POPint/realization.gms
+++ b/modules/41_emicapregi/POPint/realization.gms
@@ -6,6 +6,11 @@
 *** |  Contact: remind@pik-potsdam.de
 *** SOF ./modules/41_emicapregi/POPint.gms
 
+*' @description
+*' Emission caps/permits are allocated according to each region's share on
+*' cumulated population 
+*' 
+
 *####################### R SECTION START (PHASES) ##############################
 $Ifi "%phase%" == "declarations" $include "./modules/41_emicapregi/POPint/declarations.gms"
 $Ifi "%phase%" == "datainput" $include "./modules/41_emicapregi/POPint/datainput.gms"
diff --git a/modules/41_emicapregi/PerCapitaConvergence/datainput.gms b/modules/41_emicapregi/PerCapitaConvergence/datainput.gms
index fa0e00e..abc037e 100644
--- a/modules/41_emicapregi/PerCapitaConvergence/datainput.gms
+++ b/modules/41_emicapregi/PerCapitaConvergence/datainput.gms
@@ -6,7 +6,7 @@
 *** |  Contact: remind@pik-potsdam.de
 *** SOF ./modules/41_emicapregi/PerCapitaConvergence/datainput.gms
 
-***   contraction & convergence (reference year 2005)  +++++++++
+***   contraction & convergence (reference year 2020)  +++++++++
 p41_convergenceyear = 2050;
 p41_lambda(tall) $(tall.val < p41_convergenceyear) = (tall.val - 2020) / (p41_convergenceyear-2020);
 p41_lambda(tall) $(tall.val>2049) = 1;
@@ -21,14 +21,7 @@ display p41_shEmi2020;
 *** calculate global emissions pathway in cost-optimal scenario
 pm_emicapglob(ttot) = sum(regi, p41_co2eq(ttot,regi));
 
-*LB* safe formulation of c_polscen = 11
-$ontext
-***  contraction & convergence (reference year 2020)  +++++++++
-        p41_lambda(tall) $(tall.val<2050) = (tall.val-2020) / 30;
-        p41_lambda(tall) $(tall.val>2049) = 1;
-$offtext
-
-*gl* calculate share of global emissions according to different burden sharing rules
+*** calculate share of global emissions 
      pm_shPerm(t,regi) =  p41_lambda(t) * pm_pop(t,regi) / sum(regi2,pm_pop(t,regi2))
          + (1 - p41_lambda(t)) * p41_shEmi2020(regi) / sum(regi2, p41_shEmi2020(regi2));
 
diff --git a/modules/41_emicapregi/PerCapitaConvergence/realization.gms b/modules/41_emicapregi/PerCapitaConvergence/realization.gms
index 63e0987..c87dddf 100644
--- a/modules/41_emicapregi/PerCapitaConvergence/realization.gms
+++ b/modules/41_emicapregi/PerCapitaConvergence/realization.gms
@@ -6,6 +6,10 @@
 *** |  Contact: remind@pik-potsdam.de
 *** SOF ./modules/41_emicapregi/PerCapitaConvergence.gms
 
+*' @description
+*' Emission caps/permits are allocated according to the contraction and convergence 
+*' rule (transition towards equal per capita allocation; with reference years 2020 and 2050)
+
 *####################### R SECTION START (PHASES) ##############################
 $Ifi "%phase%" == "declarations" $include "./modules/41_emicapregi/PerCapitaConvergence/declarations.gms"
 $Ifi "%phase%" == "datainput" $include "./modules/41_emicapregi/PerCapitaConvergence/datainput.gms"
diff --git a/modules/41_emicapregi/exog/realization.gms b/modules/41_emicapregi/exog/realization.gms
index 4cefd2b..1e16d3e 100644
--- a/modules/41_emicapregi/exog/realization.gms
+++ b/modules/41_emicapregi/exog/realization.gms
@@ -6,6 +6,10 @@
 *** |  Contact: remind@pik-potsdam.de
 *** SOF ./modules/41_emicapregi/exog.gms
 
+*' @description
+*' Emission caps/permits are allocated from an exogenous emission path that have 
+*' to be provided "manually"
+
 *####################### R SECTION START (PHASES) ##############################
 $Ifi "%phase%" == "declarations" $include "./modules/41_emicapregi/exog/declarations.gms"
 $Ifi "%phase%" == "datainput" $include "./modules/41_emicapregi/exog/datainput.gms"
diff --git a/modules/41_emicapregi/module.gms b/modules/41_emicapregi/module.gms
index bb79ebc..69196c2 100644
--- a/modules/41_emicapregi/module.gms
+++ b/modules/41_emicapregi/module.gms
@@ -6,6 +6,20 @@
 *** |  Contact: remind@pik-potsdam.de
 *** SOF ./modules/41_emicapregi/41_emicapregi.gms
 
+*' @title Regional Emission Caps 
+*'
+*' @description
+*' This module computes reginal emission caps both in absolute terms and as share of global emissions.
+*' In a setting with emissions trading these caps represent allocated permits and permit shares, respectively.
+*' The allocation of caps and permits is based on different burden sharing rules.
+
+*' @limitations
+*' Permit allocation and emissions trading yield less robust results under Nash (decentralized optimization)
+*' compared to Negishi (Social planner optimization).
+
+*' @authors Marian Leimbach, Christoph Bertram
+
+
 *###################### R SECTION START (MODULETYPES) ##########################
 $Ifi "%emicapregi%" == "AbilityToPay" $include "./modules/41_emicapregi/AbilityToPay/realization.gms"
 $Ifi "%emicapregi%" == "CandC" $include "./modules/41_emicapregi/CandC/realization.gms"
diff --git a/modules/41_emicapregi/none/realization.gms b/modules/41_emicapregi/none/realization.gms
index 519c95e..af18d75 100644
--- a/modules/41_emicapregi/none/realization.gms
+++ b/modules/41_emicapregi/none/realization.gms
@@ -6,6 +6,10 @@
 *** |  Contact: remind@pik-potsdam.de
 *** SOF ./modules/41_emicapregi/none.gms
 
+*' @description
+*' No allocation of regional emission caps/permits - applies to tax scenarios and 
+*' no-tax scenarios without permit trading  
+
 *####################### R SECTION START (PHASES) ##############################
 $Ifi "%phase%" == "datainput" $include "./modules/41_emicapregi/none/datainput.gms"
 $Ifi "%phase%" == "bounds" $include "./modules/41_emicapregi/none/bounds.gms"
-- 
GitLab