Notes in Nordhaus original code

Back to Nordhaus DICE versus CJL DICE

Wrong results in Nordhaus DICE from his original code

(1) Emission of carbon at the last stage is 6855.8, which is larger than the cumulative carbon emission limit, 6000, set in his book and his code.
Reason: In his code, cumulative carbon emission is: CCA(T+1) =E= CCA(T) + E(T). This does NOT add the last stage emission into the total cumulative carbon emission.

(2) Radiative forcing at the last stage is negative, -1.787.
Reason: In his code, radiative forcing is: FORC(T) =E= FCO22X*((log((Matav(T)+.000001)/596.4)/log(2)))+FORCOTH(T);
But MATAV(T) =e= (MAT(T)+MAT(T+1))/2 makes MATAV(’60’)=MAT(’60’)/2 because MAT(’61’) is set as 0 in GAMS, thus MATAV(’60’) is 408 while MATAV(’59’) is 818 and MAT(’60’) is 815.
Therefore, the unreasonable small MATAV(’60’) makes FORC(’60’) negative.

(3) Emission control rate at the last stage is 0.
Reason: the terminal value function is 0 everywhere, so there is NO need to do emission control. One more question arises: does this imply emission of carbon at the last stage will incur a binding solution for the cumulative carbon emission limit? If so, it will be bad.

(4) Big drop of temperature in atmosphere: TATM(’60’)=0.9 while TATM(’59’)=1.8.
Reason: Radiative forcing at the last stage is MISTAKELY negative, FORC(’60’)=-1.787

Other notes:
(1) After canceling those extra variables and equations in his code, (but keeping all of those stuff like time traveling and cumulative carbon emission), we got a different solution. His original code has a maximal objective function value 150164.5594, and the simplified code has a larger value 150197.6527. This results in different carbon tax, e.g., original code has 26.822 at the first stage while the simplified one has 26.555. See the attachments (dice_simple_10.gms is the simplified code, and dice_simple_10.lst is its output, and opt_tax_orig.put the the carbon tax output from the original code).

Code Simplified