-
Notifications
You must be signed in to change notification settings - Fork 142
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1723 from laurinks/carbon-price-trajectories
New realizations diffExp2Lin and diffLin2Lin in 45_carbonprice
- Loading branch information
Showing
22 changed files
with
373 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
*** | (C) 2006-2023 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 | ||
*** | REMIND License Exception, version 1.0 (see LICENSE file). | ||
*** | Contact: [email protected] | ||
*** SOF ./modules/45_carbonprice/diffExp2Lin/datainput.gms | ||
***--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ||
*** regional prices are initially differentiated by GDP/capita and converge using quadratic phase-in, | ||
*** global price from cm_CO2priceRegConvEndYr (default = 2050) | ||
*** carbon price of developed regions increases exponentially with rate given by cm_co2_tax_growth until peak year (with iterative_target_adj = 9) or until 2100 (with iterative_target_adj = 5) | ||
*** linear carbon price curve of developed regions starts at 0 in 2020 | ||
***--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ||
|
||
|
||
*** convergence to global CO2 price depends on GDP per capita (in 1e3 $ PPP 2005). | ||
*** benchmark year kept at 2015 since 2020 not suitable. | ||
p45_gdppcap2015_PPP(regi) = pm_gdp("2015",regi)/pm_shPPPMER(regi) / pm_pop("2015",regi); | ||
display p45_gdppcap2015_PPP; | ||
|
||
*** Selection of differentiation scheme via cm_co2_tax_spread | ||
if(cm_co2_tax_spread eq 1, | ||
p45_phasein_2025ratio(regi) = 1; !! all regions | ||
); | ||
|
||
if(cm_co2_tax_spread eq 10, | ||
p45_phasein_2025ratio(regi)$(p45_gdppcap2015_PPP(regi) le 3.5) = 0.1; !! SSA | ||
p45_phasein_2025ratio(regi)$(p45_gdppcap2015_PPP(regi) gt 3.5 and p45_gdppcap2015_PPP(regi) le 5) = 0.2; !! IND | ||
p45_phasein_2025ratio(regi)$(p45_gdppcap2015_PPP(regi) gt 5 and p45_gdppcap2015_PPP(regi) le 10) = 0.3; !! OAS | ||
p45_phasein_2025ratio(regi)$(p45_gdppcap2015_PPP(regi) gt 10 and p45_gdppcap2015_PPP(regi) le 15) = 0.5; !! CHA, REF, LAM | ||
p45_phasein_2025ratio(regi)$(p45_gdppcap2015_PPP(regi) gt 15 and p45_gdppcap2015_PPP(regi) le 20) = 0.7; !! MEA, NEU | ||
p45_phasein_2025ratio(regi)$(p45_gdppcap2015_PPP(regi) gt 20) = 1; !! EUR, JPN, USA, CAZ | ||
); | ||
|
||
if(cm_co2_tax_spread eq 20, | ||
p45_phasein_2025ratio(regi)$(p45_gdppcap2015_PPP(regi) le 3.5) = 0.05; !! SSA | ||
p45_phasein_2025ratio(regi)$(p45_gdppcap2015_PPP(regi) gt 3.5 and p45_gdppcap2015_PPP(regi) le 5) = 0.1; !! IND | ||
p45_phasein_2025ratio(regi)$(p45_gdppcap2015_PPP(regi) gt 5 and p45_gdppcap2015_PPP(regi) le 10) = 0.2; !! OAS | ||
p45_phasein_2025ratio(regi)$(p45_gdppcap2015_PPP(regi) gt 10 and p45_gdppcap2015_PPP(regi) le 15) = 0.4; !! CHA, REF, LAM | ||
p45_phasein_2025ratio(regi)$(p45_gdppcap2015_PPP(regi) gt 15 and p45_gdppcap2015_PPP(regi) le 20) = 0.6; !! MEA, NEU | ||
p45_phasein_2025ratio(regi)$(p45_gdppcap2015_PPP(regi) gt 20) = 1; !! EUR, JPN, USA, CAZ | ||
); | ||
display p45_phasein_2025ratio; | ||
|
||
|
||
*GL: tax path in 10^12$/GtC = 1000 $/tC | ||
*** according to Asian Modeling Excercise tax case setup, 30$/t CO2eq in 2020 = 0.110 k$/tC | ||
|
||
*** for the current implementation, use the following trajectory for rich countries: | ||
*** price increases exponentially from cm_co2_tax_2020 in 2020 | ||
if(cm_co2_tax_2020 lt 0, | ||
abort "please choose a valid cm_co2_tax_2020" | ||
elseif cm_co2_tax_2020 ge 0, | ||
*** convert tax value from $/t CO2eq to T$/GtC | ||
p45_CO2priceTrajDeveloped("2020") = cm_co2_tax_2020 * sm_DptCO2_2_TDpGtC; | ||
); | ||
|
||
p45_CO2priceTrajDeveloped(t)$(t.val gt 2005) = p45_CO2priceTrajDeveloped("2020") * cm_co2_tax_growth**(t.val-2020); | ||
p45_CO2priceTrajDeveloped(t)$(t.val gt 2110) = p45_CO2priceTrajDeveloped("2110"); !! to prevent huge taxes after 2110 and the resulting convergence problems, set taxes after 2110 equal to 2110 value | ||
|
||
*** Then create regional phase-in: | ||
*** Set regional CO2 price factor equal to p45_phasein_2025ratio until 2025: | ||
p45_regCO2priceFactor(t,regi)$(t.val le 2025) = p45_phasein_2025ratio(regi); | ||
*** Then define quadratic phase-in until cm_CO2priceRegConvEndYr: | ||
loop(t$((t.val gt 2025) and (t.val le cm_CO2priceRegConvEndYr)), | ||
p45_regCO2priceFactor(t,regi) = | ||
min(1, | ||
max(0, | ||
p45_phasein_2025ratio(regi) + (1 - p45_phasein_2025ratio(regi)) * Power( (t.val - 2025) / (cm_CO2priceRegConvEndYr - 2025), 2) | ||
) | ||
); | ||
); | ||
p45_regCO2priceFactor(t,regi)$(t.val ge cm_CO2priceRegConvEndYr) = 1; | ||
|
||
|
||
*** transition to global price - starting point depends on GDP/cap | ||
pm_taxCO2eq(t,regi) = p45_regCO2priceFactor(t,regi) * p45_CO2priceTrajDeveloped(t); | ||
|
||
|
||
display p45_regCO2priceFactor, p45_CO2priceTrajDeveloped, pm_taxCO2eq; | ||
*** EOF ./modules/45_carbonprice/diffExp2Lin/datainput.gms |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
*** | (C) 2006-2023 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 | ||
*** | REMIND License Exception, version 1.0 (see LICENSE file). | ||
*** | Contact: [email protected] | ||
*** SOF ./modules/45_carbonprice/diffExp2Lin/datainput.gms | ||
***--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ||
*** regional prices are initially differentiated by GDP/capita and converge using quadratic phase-in, | ||
*** global price from cm_CO2priceRegConvEndYr (default = 2050) | ||
*** carbon price of developed regions increases exponentially with rate given by cm_co2_tax_growth until peak year (with iterative_target_adj = 9) or until 2100 (with iterative_target_adj = 5) | ||
*** linear carbon price curve of developed regions starts at 0 in 2020 | ||
***--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ||
parameters | ||
p45_gdppcap2015_PPP(all_regi) "2015 GDP per capita (k $ PPP 2005)" | ||
p45_phasein_2025ratio(all_regi) "ratio of CO2 price to that of developed region in 2025" | ||
|
||
p45_regCO2priceFactor(ttot,all_regi) "regional multiplicative factor to the CO2 price of the developed countries" | ||
p45_CO2priceTrajDeveloped(ttot) "CO2 price trajectory for developed/rich countries" | ||
; | ||
|
||
|
||
*** EOF ./modules/45_carbonprice/diffExp2Lin/declarations.gms |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# | (C) 2006-2023 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 | ||
# | REMIND License Exception, version 1.0 (see LICENSE file). | ||
# | Contact: [email protected] | ||
name,type,reason | ||
cm_emiscen, switch, ??? | ||
sm_c_2_co2,switch, ??? | ||
pm_ttot_val,parameter,??? | ||
cm_startyear,switch,??? | ||
cm_iterative_target_adj,switch,??? | ||
cm_expoLinear_yearStart,switch,??? | ||
vm_co2eq,variable,??? | ||
vm_emiFgas,input,questionnaire | ||
pm_globalMeanTemperature,input,questionnaire | ||
pm_temperatureImpulseResponseCO2,input,questionnaire | ||
pm_consPC,input,questionnaire | ||
pm_GDPGross,input,questionnaire | ||
pm_prtp,input,questionnaire | ||
cm_carbonprice_temperatureLimit,input,questionnaire | ||
pm_ttot_2_tall,input,questionnaire | ||
cm_NDC_divergentScenario,input,questionnaire | ||
vm_demFeSector,input,questionnaire | ||
pm_emifac,input,questionnaire |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
*** | (C) 2006-2023 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 | ||
*** | REMIND License Exception, version 1.0 (see LICENSE file). | ||
*** | Contact: [email protected] | ||
*** SOF ./modules/45_carbonprice/diffExp2Lin/postsolve.gms | ||
***--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ||
*** regional prices are initially differentiated by GDP/capita and converge using quadratic phase-in, | ||
*** global price from cm_CO2priceRegConvEndYr (default = 2050) | ||
*** carbon price of developed regions increases exponentially with rate given by cm_co2_tax_growth until peak year (with iterative_target_adj = 9) or until 2100 (with iterative_target_adj = 5) | ||
*** linear carbon price curve of developed regions starts at 0 in 2020 | ||
***--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ||
|
||
*** re-create the regional differentation, use path from developed countries as the basis. | ||
*** This doesn't need to be a loop, but it will be correct for any cycle of the loop, so also for the last cycle. | ||
loop(regi$(p45_gdppcap2015_PPP(regi) gt 20), | ||
p45_CO2priceTrajDeveloped(t) = pm_taxCO2eq(t,regi); | ||
); | ||
|
||
*** quadratic transition to global price - starting point depends on GDP/cap | ||
pm_taxCO2eq(t,regi) = p45_regCO2priceFactor(t,regi) * p45_CO2priceTrajDeveloped(t); | ||
|
||
display pm_taxCO2eq; | ||
*** EOF ./modules/45_carbonprice/diffExp2Lin/postsolve.gms |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
*** | (C) 2006-2023 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 | ||
*** | REMIND License Exception, version 1.0 (see LICENSE file). | ||
*** | Contact: [email protected] | ||
*** SOF ./modules/45_carbonprice/diffExp2Lin/realization.gms | ||
|
||
*#' @description: This realization implements exponentially increasing carbon price - either until 2100 or until peak year (constant or linear thereafter). Optional carbon price differentiation and quadratic phase-in can be activated via switch cm_co2_tax_spread. | ||
|
||
*####################### R SECTION START (PHASES) ############################## | ||
$Ifi "%phase%" == "declarations" $include "./modules/45_carbonprice/diffExp2Lin/declarations.gms" | ||
$Ifi "%phase%" == "datainput" $include "./modules/45_carbonprice/diffExp2Lin/datainput.gms" | ||
$Ifi "%phase%" == "postsolve" $include "./modules/45_carbonprice/diffExp2Lin/postsolve.gms" | ||
*######################## R SECTION END (PHASES) ############################### | ||
*** EOF ./modules/45_carbonprice/diffExp2Lin/realization.gms |
Oops, something went wrong.