The Dynamic Integrated Climate-Economy model, referred to as the DICE model or Dice model, is a computer-based integrated assessment model developed by 2018 Nobel Laureate William Nordhaus that “integrates in an end-to-end fashion the economics, carbon cycle, climate science, and impacts in a highly aggregated model that allows a weighing of the costs and benefits of taking steps to slow greenhouse warming." Nordhaus also developed the RICE model (Regional Integrated Climate-Economy model), a variant of the DICE model that was updated and developed alongside the DICE model. (source Wikipedia).
This notebook is based on the GAMS code DICE2016R-091916ap.gms
provided on Nordhaus' web page.
%reload_ext gams.magic
%%gams
# This is the beta version of DICE-2016R. The major changes are outlined in Nordhaus,
# Revisiting the social cost of carbon: Estimates from the DICE-2016R model,"
# September 30, 2016," available from the author.
# Version is DICE-2016R-091916ap.gms
# DICE-2016R September 2016 (adapted from DICE-2016R-091216a.gms)
Set t 'Time periods (5 years per period)' / 1*100 / ;
Parameters
## Availability of fossil fuels
fosslim 'Maximum cumulative extraction fossil fuels (GtC)' / 6000 /
## Time Step
tstep 'Years per Period' / 5 /
## If optimal control
ifopt 'Indicator where optimized is 1 and base is 0' / 0 /
## Preferences
elasmu 'Elasticity of marginal utility of consumption' / 1.45 /
prstp 'Initial rate of social time preference per year' / .015 /
## Population and technology
gama 'Capital elasticity in production function' / .300 /
pop0 'Initial world population 2015 (millions)' / 7403 /
popadj 'Growth rate to calibrate to 2050 pop projection' / 0.134 /
popasym 'Asymptotic population (millions)' / 11500 /
dk 'Depreciation rate on capital (per year)' / .100 /
q0 'Initial world gross output 2015 (trill 2010 USD)' / 105.5 /
k0 'Initial capital value 2015 (trill 2010 USD)' / 223 /
a0 'Initial level of total factor productivity' / 5.115 /
ga0 'Initial growth rate for TFP per 5 years' / 0.076 /
dela 'Decline rate of TFP per 5 years' / 0.005 /
## Emissions parameters
gsigma1 'Initial growth of sigma (per year)' / -0.0152 /
dsig 'Decline rate of decarbonization (per period)' / -0.001 /
eland0 'Carbon emissions from land 2015 (GtCO2 per year)' / 2.6 /
deland 'Decline rate of land emissions (per period)' / .115 /
e0 'Industrial emissions 2015 (GtCO2 per year)' / 35.85 /
miu0 'Initial emissions control rate for base case 2015' / .03 /
## Carbon cycle
# Initial Conditions
mat0 'Initial Concentration in atmosphere 2015 (GtC)' / 851 /
mu0 'Initial Concentration in upper strata 2015 (GtC)' / 460 /
ml0 'Initial Concentration in lower strata 2015 (GtC)' / 1740 /
mateq 'Equilibrium concentration atmosphere (GtC)' / 588 /
mueq 'Equilibrium concentration in upper strata (GtC)' / 360 /
mleq 'Equilibrium concentration in lower strata (GtC)' / 1720 /
# Flow paramaters
b12 'Carbon cycle transition matrix' / .12 /
b23 'Carbon cycle transition matrix' / 0.007 /
# These are for declaration and are defined later
b11 'Carbon cycle transition matrix'
b21 'Carbon cycle transition matrix'
b22 'Carbon cycle transition matrix'
b32 'Carbon cycle transition matrix'
b33 'Carbon cycle transition matrix'
sig0 'Carbon intensity 2010 (kgCO2 per output 2005 USD 2010)'
## Climate model parameters
t2xco2 'Equilibrium temp impact (oC per doubling CO2)' / 3.1 /
fex0 '2015 forcings of non-CO2 GHG (Wm-2)' / 0.5 /
fex1 '2100 forcings of non-CO2 GHG (Wm-2)' / 1.0 /
tocean0 'Initial lower stratum temp change (C from 1900)' / .0068 /
tatm0 'Initial atmospheric temp change (C from 1900)' / 0.85 /
c1 'Climate equation coefficient for upper level' / 0.1005 /
c3 'Transfer coefficient upper to lower stratum' / 0.088 /
c4 'Transfer coefficient for lower level' / 0.025 /
fco22x 'Forcings of equilibrium CO2 doubling (Wm-2)' / 3.6813 /
## Climate damage parameters
a10 'Initial damage intercept' / 0 /
a20 'Initial damage quadratic term'
a1 'Damage intercept' / 0 /
a2 'Damage quadratic term' / 0.00236 /
a3 'Damage exponent' / 2.00 /
## Abatement cost
expcost2 'Exponent of control cost function' / 2.6 /
pback 'Cost of backstop 2010$ per tCO2 2015' / 550 /
gback 'Initial cost decline backstop cost per period' / .025 /
limmiu 'Upper limit on control rate after 2150' / 1.2 /
tnopol 'Period before which no emissions controls base' / 45 /
cprice0 'Initial base carbon price (2010$ per tCO2)' / 2 /
gcprice 'Growth rate of base carbon price per year' / .02 /
## Scaling and inessential parameters
# Note that these are unnecessary for the calculations
# They ensure that MU of first period's consumption =1 and PV cons = PV utilty
scale1 'Multiplicative scaling coefficient' / 0.0302455265681763 /
scale2 'Additive scaling coefficient' / -10993.704 /
;
# Program control variables
Sets tfirst(t), tlast(t), tearly(t), tlate(t) ;
Parameters
l(t) 'Level of population and labor'
al(t) 'Level of total factor productivity'
sigma(t) 'CO2-equivalent-emissions output ratio'
rr(t) 'Average utility social discount rate'
ga(t) 'Growth rate of productivity from'
forcoth(t) 'Exogenous forcing for other greenhouse gases'
gl(t) 'Growth rate of labor'
gcost1 'Growth of cost factor'
gsig(t) 'Change in sigma (cumulative improvement of energy efficiency)'
etree(t) 'Emissions from deforestation'
cumetree(t) 'Cumulative from land'
cost1(t) 'Adjusted cost for backstop'
lam 'Climate model parameter'
gfacpop(t) 'Growth factor population'
pbacktime(t) 'Backstop price'
optlrsav 'Optimal long-run savings rate used for transversality'
scc(t) 'Social cost of carbon'
cpricebase(t) 'Carbon price in base case'
photel(t) 'Carbon Price under no damages (Hotelling rent condition)'
ppm(t) 'Atmospheric concentrations parts per million'
atfrac(t) 'Atmospheric share since 1850'
atfrac2010(t) 'Atmospheric share since 2010'
;
# Program control definitions
tfirst(t) = yes$(t.val eq 1);
tlast(t) = yes$(t.val eq card(t));
# Parameters for long-run consistency of carbon cycle
b11 = 1 - b12;
b21 = b12*MATEQ/MUEQ;
b22 = 1 - b21 - b23;
b32 = b23*mueq/mleq;
b33 = 1 - b32;
# Further definitions of parameters
a20 = a2;
sig0 = e0/(q0*(1-miu0));
lam = fco22x/ t2xco2;
l("1") = pop0;
loop(t, l(t+1)=l(t););
loop(t, l(t+1)=l(t)*(popasym/L(t))**popadj ;);
ga(t) = ga0*exp(-dela*5*((t.val-1)));
al("1") = a0; loop(t, al(t+1)=al(t)/((1-ga(t))););
gsig("1") = gsigma1; loop(t,gsig(t+1)=gsig(t)*((1+dsig)**tstep) ;);
sigma("1") = sig0; loop(t,sigma(t+1)=(sigma(t)*exp(gsig(t)*tstep)););
pbacktime(t) = pback*(1-gback)**(t.val-1);
cost1(t) = pbacktime(t)*sigma(t)/expcost2/1000;
etree(t) = eland0*(1-deland)**(t.val-1);
cumetree("1") = 100; loop(t,cumetree(t+1)=cumetree(t)+etree(t)*(5/3.666););
rr(t) = 1/((1+prstp)**(tstep*(t.val-1)));
forcoth(t) = fex0+ (1/17)*(fex1-fex0)*(t.val-1)$(t.val lt 18) + (fex1-fex0)$(t.val ge 18);
optlrsav = (dk + .004)/(dk + .004*elasmu + prstp)*gama;
# Base Case Carbon Price
cpricebase(t) = cprice0*(1+gcprice)**(5*(t.val-1));
Variables
MIU(t) 'Emission control rate GHGs'
FORC(t) 'Increase in radiative forcing (watts per m2 from 1900)'
TATM(t) 'Increase temperature of atmosphere (degrees C from 1900)'
TOCEAN(t) 'Increase temperatureof lower oceans (degrees C from 1900)'
MAT(t) 'Carbon concentration increase in atmosphere (GtC from 1750)'
MU(t) 'Carbon concentration increase in shallow oceans (GtC from 1750)'
ML(t) 'Carbon concentration increase in lower oceans (GtC from 1750)'
E(t) 'Total CO2 emissions (GtCO2 per year)'
EIND(t) 'Industrial emissions (GtCO2 per year)'
C(t) 'Consumption (trillions 2005 US dollars per year)'
K(t) 'Capital stock (trillions 2005 US dollars)'
CPC(t) 'Per capital consumption (thousands 2005 USD per year)'
I(t) 'Investment (trillions 2005 USD per year)'
S(t) 'Gross savings rate as fraction of gross world product'
RI(t) 'Real interest rate (per annum)'
Y(t) 'Gross world product net of abatement and damages (trillions 2005 USD per year)'
YGROSS(t) 'Gross world product GROSS of abatement and damages (trillions 2005 USD per year)'
YNET(t) 'Output net of damages equation (trillions 2005 USD per year)'
DAMAGES(t) 'Damages (trillions 2005 USD per year)'
DAMFRAC(t) 'Damages as fraction of gross output'
ABATECOST(t) 'Cost of emissions reductions (trillions 2005 USD per year)'
MCABATE(t) 'Marginal cost of abatement (2005$ per ton CO2)'
CCA(t) 'Cumulative industrial carbon emissions (GTC)'
CCATOT(t) 'Total carbon emissions (GtC)'
PERIODU(t) 'One period utility function'
CPRICE(t) 'Carbon price (2005$ per ton of CO2)'
CEMUTOTPER(t) 'Period utility'
UTILITY 'Welfare function'
;
NonNegative Variables MIU, TATM, MAT, MU, ML, Y, YGROSS, C, K, I ;
Equations
# Emissions and Damages
EEQ(t) 'Emissions equation'
EINDEQ(t) 'Industrial emissions'
CCACCA(t) 'Cumulative industrial carbon emissions'
CCATOTEQ(t) 'Cumulative total carbon emissions'
FORCE(t) 'Radiative forcing equation'
DAMFRACEQ(t) 'Equation for damage fraction'
DAMEQ(t) 'Damage equation'
ABATEEQ(t) 'Cost of emissions reductions equation'
MCABATEEQ(t) 'Equation for MC abatement'
CARBPRICEEQ(t) 'Carbon price equation from abatement'
# Climate and carbon cycle
MMAT(t) 'Atmospheric concentration equation'
MMU(t) 'Shallow ocean concentration'
MML(t) 'Lower ocean concentration'
TATMEQ(t) 'Temperature-climate equation for atmosphere'
TOCEANEQ(t) 'Temperature-climate equation for lower oceans'
# Economic variables
YGROSSEQ(t) 'Output gross equation'
YNETEQ(t) 'Output net of damages equation'
YY(t) 'Output net equation'
CC(t) 'Consumption equation'
CPCE(t) 'Per capita consumption definition'
SEQ(t) 'Savings rate equation'
KK(t) 'Capital balance equation'
RIEQ(t) 'Interest rate equation'
# Utility
CEMUTOTPEREQ(t) 'Period utility'
PERIODUEQ(t) 'Instantaneous utility function equation'
UTIL 'Objective function'
;
## Equations of the model
# Emissions and Damages
eeq(t).. E(t) =E= EIND(t) + etree(t);
eindeq(t).. EIND(t) =E= sigma(t) * YGROSS(t) * (1-(MIU(t)));
ccacca(t+1).. CCA(t+1) =E= CCA(t) + EIND(t)*5/3.666;
ccatoteq(t).. CCATOT(t) =E= CCA(t) + cumetree(t);
force(t).. FORC(t) =E= fco22x * ((log((MAT(t)/588.000))/log(2))) + forcoth(t);
damfraceq(t) .. DAMFRAC(t) =E= (a1*TATM(t)) + (a2*TATM(t)**a3) ;
dameq(t).. DAMAGES(t) =E= YGROSS(t) * DAMFRAC(t);
abateeq(t).. ABATECOST(t) =E= YGROSS(t) * cost1(t) * (MIU(t)**expcost2);
mcabateeq(t).. MCABATE(t) =E= pbacktime(t) * MIU(t)**(expcost2-1);
carbpriceeq(t).. CPRICE(t) =E= pbacktime(t) * (MIU(t))**(expcost2-1);
# Climate and carbon cycle
mmat(t+1).. MAT(t+1) =E= MAT(t)*b11 + MU(t)*b21 + (E(t)*(5/3.666));
mml(t+1).. ML(t+1) =E= ML(t) *b33 + MU(t)*b23;
mmu(t+1).. MU(t+1) =E= MAT(t)*b12 + MU(t)*b22 + ML(t)*b32;
tatmeq(t+1).. TATM(t+1) =E= TATM(t) + c1*((FORC(t+1)-(fco22x/t2xco2)*TATM(t))-(c3*(TATM(t)-TOCEAN(t))));
toceaneq(t+1).. TOCEAN(t+1) =E= TOCEAN(t) + c4*(TATM(t)-TOCEAN(t));
# Economic variables
ygrosseq(t).. YGROSS(t) =E= (al(t)*(L(t)/1000)**(1-GAMA))*(K(t)**GAMA);
yneteq(t).. YNET(t) =E= YGROSS(t)*(1-damfrac(t));
yy(t).. Y(t) =E= YNET(t) - ABATECOST(t);
cc(t).. C(t) =E= Y(t) - I(t);
cpce(t).. CPC(t) =E= 1000 * C(t) / L(t);
seq(t).. I(t) =E= S(t) * Y(t);
kk(t+1).. K(t+1) =L= (1-dk)**tstep * K(t) + tstep * I(t);
rieq(t+1).. RI(t) =E= (1+prstp) * (CPC(t+1)/CPC(t))**(elasmu/tstep) - 1;
# Utility
cemutotpereq(t).. CEMUTOTPER(t) =E= PERIODU(t) * L(t) * rr(t);
periodueq(t).. PERIODU(t) =E= ((C(T)*1000/L(T))**(1-elasmu)-1)/(1-elasmu)-1;
util.. UTILITY =E= tstep * scale1 * sum(t, CEMUTOTPER(t)) + scale2;
# Resource limit
CCA.up(t) = fosslim;
# Control rate limits
MIU.up(t) = limmiu;
MIU.up(t)$(t.val<30) = 1;
## Upper and lower bounds for stability
K.LO(t) = 1;
MAT.LO(t) = 10;
MU.LO(t) = 100;
ML.LO(t) = 1000;
C.LO(t) = 2;
TOCEAN.UP(t) = 20;
TOCEAN.LO(t) = -1;
TATM.UP(t) = 20;
CPC.LO(t) = .01;
TATM.UP(t) = 12;
# Control variables
set lag10(t);
lag10(t) = yes$(t.val gt card(t)-10);
S.FX(lag10(t)) = optlrsav;
# Initial conditions
CCA.FX(tfirst) = 400;
K.FX(tfirst) = k0;
MAT.FX(tfirst) = mat0;
MU.FX(tfirst) = mu0;
ML.FX(tfirst) = ml0;
TATM.FX(tfirst) = tatm0;
TOCEAN.FX(tfirst) = tocean0;
## Solution options
model CO2 / all /;
%%gams
MIU.FX('1') = miu0;
solve CO2 maximizing UTILITY using nlp;
Solver Status | Model Status | Objective | #equ | #var | Model Type | Solver | Solver Time | |
---|---|---|---|---|---|---|---|---|
0 | Normal (1) | OptimalLocal (2) | 4517.3147 | 2493 | 2700 | NLP | CONOPT | 0.531 |
import pandas as pd
m = gams.exchange_container
results = {}
for d in ['TATM','RI','EIND','CPRICE']:
results[d] = pd.DataFrame(columns=['opt','bas'])
results[d]['opt'] = m.data[d].records['level'].copy()
%%gams
# For base run, this subroutine calculates Hotelling rents
# Carbon price is maximum of Hotelling rent or baseline price
# The cprice equation is different from 2013R. Not sure what went wrong.
option bRatio = 1; MIU.LO('1') = 0; MIU.UP('1') = inf; # Reset fixing from opt run and discard basis
a2 = 0;
solve CO2 maximizing UTILITY using nlp;
photel(t) = CPRICE.L(t);
a2 = a20;
CPRICE.UP(t)$(t.val<tnopol+1) = max(photel(t),cpricebase(t));
option bRatio=0.25;
solve CO2 maximizing UTILITY using nlp;
Solver Status | Model Status | Objective | #equ | #var | Model Type | Solver | Solver Time | |
---|---|---|---|---|---|---|---|---|
0 | Normal (1) | OptimalLocal (2) | 4620.3546 | 2493 | 2700 | NLP | CONOPT | 0.14 |
1 | Normal (1) | OptimalLocal (2) | 4485.7435 | 2493 | 2700 | NLP | CONOPT | 0.14 |
tstep = int(m.data['tstep'].toValue())
l = [ 2010 + tstep*n for n in range(len(m.data['t'].records))]
for d in ['TATM','RI','EIND','CPRICE']:
results[d]['bas'] = m.data[d].records['level'].copy()
# remap index from 1*100 to 2010,2015,2020,...,2505
results[d].set_index(pd.Index(l[:len(m.data[d].records['level'])]), inplace=True)
%matplotlib notebook
# %matplotlib widget (for ipympl backend)
plot = results['TATM'].loc[2000:2200,:].plot(grid=True,title="Atmospheric Temperature")
plot = results['RI'].loc[2015:2100,:].plot(grid=True,title="Real return (Consumption discount rate)")
plot = results['EIND'].loc[2015:2100,:].plot(grid=True,title="Industrial Emissions per year")
plot = results['CPRICE'].loc[2015:2150,:].plot(grid=True,title="Carbon Price per t CO2")
%%gams
## POST-SOLVE
# Calculate social cost of carbon and other variables
scc(t) = -1000*eeq.m(t)/(.00001+cc.m(t));
atfrac(t) = ((MAT.L(t)-588)/(CCATOT.L(t)+.000001 ));
atfrac2010(t) = ((MAT.L(t)-mat0)/(.00001+CCATOT.L(t)-CCATOT.L('1') ));
ppm(t) = MAT.L(t)/2.13;
Parameter rep(*,t);
rep("Industrial Emissions GTCO2 per year", t) = EIND.L(t);
rep("Atmospheric concentration C (ppm)", t) = MAT.L(t)/2.13;
rep("Atmospheric Temperature", t) = TATM.L(t);
rep("Output Net Net)", t) = Y.L(t);
rep("Climate Damages fraction output", t) = DAMFRAC.L(t);
rep("Consumption Per Capita", t) = CPC.L(t);
rep("Carbon Price (per t CO2)", t) = CPRICE.L(t);
rep("Emissions Control Rate", t) = MIU.L(t);
rep("Social cost of carbon", t) = scc(t);
rep("Interest Rate", t) = RI.L(t);
rep("Population", t) = l(t);
rep("TFP", t) = al(t);
rep("Output gross,gross", t) = YGROSS.L(t);
rep("Change tfp", t) = ga(t);
rep("Capital", t) = K.L(t);
rep("s", t) = S.L(t);
rep("I", t) = I.L(t);
rep("Y gross net", t) = YNET.L(t);
rep("damages", t) = DAMAGES.L(t);
rep("damfrac", t) = DAMFRAC.L(t);
rep("abatement", t) = ABATECOST.L(t);
rep("sigma", t) = sigma(t);
rep("Forcings", t) = FORC.L(t);
rep("Other Forcings", t) = forcoth(t);
rep("Period utilty", t) = PERIODU.L(t);
rep("Consumption", t) = C.L(t);
rep("Land emissions", t) = etree(t);
rep("Cumulative ind emissions", t) = CCA.L(t);
rep("Cumulative total emissions", t) = CCATOT.L(t);
rep("Atmospheric concentrations Gt", t) = MAT.L(t);
rep("Atmospheric concentrations ppm", t) = ppm(t);
rep("Total Emissions GTCO2 per year", t) = E.L(t);
rep("Atmospheric concentrations upper", t) = MU.L(t);
rep("Atmospheric concentrations lower", t) = ML.L(t);
rep("Atmospheric fraction since 1850", t) = atfrac(t);
rep("Atmospheric fraction since 2010", t) = atfrac2010(t);
import copy
rep = copy.deepcopy(m['rep'])
rep.records['t'] = rep.records['t'].map({s:2010+tstep*int(s) for s in m.data['t'].records['uni']})
rep.pivot(index='t', columns='uni')
Industrial Emissions GTCO2 per year | Atmospheric concentration C (ppm) | Atmospheric Temperature | Output Net Net) | Climate Damages fraction output | Consumption Per Capita | Carbon Price (per t CO2) | Emissions Control Rate | Social cost of carbon | Interest Rate | ... | Land emissions | Cumulative ind emissions | Cumulative total emissions | Atmospheric concentrations Gt | Atmospheric concentrations ppm | Total Emissions GTCO2 per year | Atmospheric concentrations upper | Atmospheric concentrations lower | Atmospheric fraction since 1850 | Atmospheric fraction since 2010 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2015 | 35.744714 | 399.530516 | 0.850000 | 104.997237 | 0.001705 | 10.501777 | 2.0 | 0.029883 | 31.231047 | 0.050985 | ... | 2.600000 | 400.000000 | 500.000000 | 851.000000 | 399.530516 | 38.344714 | 460.000000 | 1740.000000 | 0.526000 | |
2020 | 39.383564 | 418.468429 | 1.016345 | 125.040453 | 0.002438 | 11.842331 | 2.208162 | 0.032297 | 37.254110 | 0.049848 | ... | 2.301000 | 448.751655 | 552.297755 | 891.337755 | 418.468429 | 41.684564 | 471.289302 | 1740.670698 | 0.549229 | 0.771309 |
2025 | 42.931485 | 438.311198 | 1.189237 | 147.276539 | 0.003338 | 13.304239 | 2.437989 | 0.034907 | 44.039404 | 0.048731 | ... | 2.036385 | 502.466281 | 609.150678 | 933.602851 | 438.311198 | 44.967870 | 485.128389 | 1741.419438 | 0.567352 | 0.756778 |
2030 | 46.349699 | 459.148661 | 1.367930 | 171.744532 | 0.004416 | 14.891877 | 2.691737 | 0.037728 | 51.620128 | 0.047645 | ... | 1.802201 | 561.019862 | 670.481653 | 977.986648 | 459.148661 | 48.151900 | 501.231051 | 1742.263955 | 0.581651 | 0.74487 |
2035 | 49.605972 | 481.006178 | 1.551747 | 198.476646 | 0.005683 | 16.609518 | 2.971895 | 0.040776 | 60.027615 | 0.046593 | ... | 1.594948 | 624.235491 | 736.155275 | 1024.543158 | 481.006178 | 51.200920 | 519.392164 | 1743.219953 | 0.593004 | 0.734869 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2490 | -2.359501 | 1024.288824 | 6.723640 | 9557.120821 | 0.106689 | 616.411217 | 66.449417 | 1.2 | 314.584052 | 0.018497 | ... | 0.000024 | 3124.445976 | 3255.281341 | 2181.735196 | 1024.288824 | -2.359478 | 1323.740361 | 2300.805784 | 0.489584 | 0.482976 |
2495 | -2.276638 | 1021.672314 | 6.713622 | 9671.140891 | 0.106372 | 623.765194 | 64.788182 | 1.2 | 200.935409 | 0.018339 | ... | 0.000021 | 3121.227889 | 3252.063286 | 2176.162028 | 1021.672314 | -2.276617 | 1320.200239 | 2306.701018 | 0.488355 | 0.481516 |
2500 | -2.196037 | 1019.097084 | 6.703705 | 9781.286533 | 0.106058 | 630.869284 | 63.168477 | 1.2 | 106.740122 | 0.018206 | ... | 0.000019 | 3118.122818 | 3248.958244 | 2170.676790 | 1019.097084 | -2.196019 | 1316.718619 | 2312.562835 | 0.487134 | 0.480064 |
2505 | -2.117845 | 1016.562117 | 6.693887 | 9888.245927 | 0.105747 | 637.767873 | 61.589265 | 1.2 | 37.702249 | 0.018101 | ... | 0.000016 | 3115.127677 | 3245.963128 | 2165.277309 | 1016.562117 | -2.117829 | 1313.294128 | 2318.391692 | 0.485920 | 0.478622 |
2510 | 10.210666 | 1014.066294 | 6.684168 | 9992.794161 | 0.105440 | 644.510952 | 0.000000 | ... | 0.000015 | 3112.239181 | 3243.074655 | 2159.961207 | 1014.066294 | 10.210680 | 1309.925410 | 2324.188037 | 0.484713 | 0.477188 |
100 rows × 36 columns
%gams_cleanup --closedown