Skip to content
2 changes: 1 addition & 1 deletion main.gms
Original file line number Diff line number Diff line change
Expand Up @@ -1470,7 +1470,7 @@ $setglobal cm_NDC_postTargetDevelopment constant !! def = "constant"
*' * (zero): no minimum carbon price after first NDC target year, i.e. carbon price can decrease to zero after first NDC target year
*' * (NPi): carbon price cannot fall below carbon price of NPi run as this represent the development of current policies
*' * (NonDecreasing): carbon price cannot decrease after first NDC target year, but can increase or remain constant
$setglobal cm_NDC_CO2PriceMinimum NPi !! def = "NPi" !! regexp = zero|NPi|NonDecreasing
$setglobal cm_NDC_CO2PriceMinimum NonDecreasing !! def = "NonDecreasing" !! regexp = zero|NPi|NonDecreasing
*' cm_NDC_TargetCheckConv "choose whether iterations should go on until all NDC emissions targets are fullfilled" [requires 45_carbonprice = NDC]
*' This setting determines whether compliance with NDC emissions targets should be a criterion for convergence of REMIND.
*' * (on): runs only converges if all NDC emissions targets are met within the tolerance defined by cm_NDC_target_DevTol
Expand Down
8 changes: 6 additions & 2 deletions modules/45_carbonprice/NDC/postsolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -113,13 +113,17 @@ $elseif.cm_NDC_CO2PriceMinimum "%cm_NDC_CO2PriceMinimum%" == "NPi"
pm_taxCO2eq(t,regi) = max( pm_taxCO2eq(t,regi),
p45_taxCO2eq_bau(t,regi) );
$elseif.cm_NDC_CO2PriceMinimum "%cm_NDC_CO2PriceMinimum%" == "NonDecreasing"
*** CO2 price cannot decrease after first NDC target year, but can increase or remain constant
*** As above CO2 price should not fall below NPI run
pm_taxCO2eq(t,regi) = max( pm_taxCO2eq(t,regi),
p45_taxCO2eq_bau(t,regi) );
*** In addition, CO2 price cannot decrease after first NDC target year, but can increase or remain constant
loop(regi,
loop( t2$( t2.val eq p45_lastNDCyear(regi) ) ,
loop( t2$( t2.val eq p45_firstNDCyear(regi) ) ,
pm_taxCO2eq(t,regi)$(t.val gt t2.val) = max( pm_taxCO2eq(t,regi),
pm_taxCO2eq(t2,regi) );
);
);

$endif.cm_NDC_CO2PriceMinimum

display pm_taxCO2eq;
Expand Down