From ce6049a159b5159a4c884903278c794972ca9d9a Mon Sep 17 00:00:00 2001 From: Yann Date: Tue, 19 Nov 2024 11:28:22 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20code=20en=20version=20non=20finalis?= =?UTF-8?q?=C3=A9e=20proprement.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Code/modules/Database.py | 860 ++++++++++++++++++ Code/modules/Metrics.py | 392 ++++++++ Code/modules/Metrics_oxyd_ccf.py | 73 ++ Code/modules/OrganiseCurves.py | 31 + Code/modules/Uncertainty.py | 160 ++++ Code/modules/Utils.py | 55 ++ Code/script-01-AGWP-1kg_CO2_1kgCH4_1kg_N2O.py | 199 ++++ Code/script-02-AGTP-1kg_CO2_1kgCH4_1kg_N2O.py | 207 +++++ 8 files changed, 1977 insertions(+) create mode 100644 Code/modules/Database.py create mode 100644 Code/modules/Metrics.py create mode 100644 Code/modules/Metrics_oxyd_ccf.py create mode 100644 Code/modules/OrganiseCurves.py create mode 100644 Code/modules/Uncertainty.py create mode 100644 Code/modules/Utils.py create mode 100644 Code/script-01-AGWP-1kg_CO2_1kgCH4_1kg_N2O.py create mode 100644 Code/script-02-AGTP-1kg_CO2_1kgCH4_1kg_N2O.py diff --git a/Code/modules/Database.py b/Code/modules/Database.py new file mode 100644 index 0000000..a1a81e9 --- /dev/null +++ b/Code/modules/Database.py @@ -0,0 +1,860 @@ +# *-* coding: utf-8 *-* +# In this file, you will find any numerical data for GHG and their uncertainties if available. + + +#==================================================== +# GHG DATAs +#------------------------------- +GasDATAlib = {} +#------------------------------- + +#------------------------------- +# C02 +#------------------------------- +GasDATAlib['CO2'] = { + 'MolarMass' : { 'Comments': 'Masse molaire', + 'value' : 44.0095 , + 'units' : 'g/mol' , + 'distrib' : 'uniform' , + 'delta' : 0.0014 , + 'source' : 'https://fr.wikipedia.org/wiki/Dioxyde_de_carbone' + }, + 'PRG100' : { 'Comments': 'Pouvoir de réchauffement global à 100 ans (dynGWP100)', + 'value' : 1 , + }, + 'A_RadFor' : { 'Comments': 'Forçage radiatif (Attention parfois en ppm plutot que kg)', + 'distrib' : 'normal' , + 'value' : 1.71e-15 , + 'units' : 'W*m^{-2}*kg^{-1}' , + 'sigma' : 1.2505e-16, + 'source' : 'Forster et al., 2021 - 1.645sigma' + }, + + 'coeffIRF' : { 'Comments': 'I(t) = a_0 + sum_i=1^K a_i exp(-t/taui), t de 0 à 1000 ans. sum a_i=1. Correlation : a1,a2,a3,tau1,tau2,tau3.', + 'distrib' : 'manual', + 'values' : { + 'K' : 3 , + 'a0' : 0.2173 , + 'a1' : 0.2240 , 'tau1' : 394.400 , + 'a2' : 0.2824 , 'tau2' : 36.540 , + 'a3' : 0.2763 , 'tau3' : 4.304 + }, + 'models' : { + '1' : {'name' : 'Bern3D-LPJ (reference)', + 'K' : 3 , + 'a0' : 1.85357e-09, 'a1' : 5.15004e-01, 'a2' : 2.63095e-01, 'a3' : 2.21901e-01, + 'tau1' : 1.95501e+03, 'tau2' : 4.58309e+01, 'tau3' : 3.87140e+00}, + '2' : {'name' : 'Bern3D-LPJ (ensemble median)', + 'K' : 3 , + 'a0' : 2.79585e-01, 'a1' : 2.38190e-01, 'a2' : 2.38194e-01, 'a3' : 2.44030e-01, + 'tau1' : 2.76166e+02, 'tau2' : 3.84449e+01, 'tau3' : 4.92789e+00}, + '3' : {'name' : 'Bern2.5D-LPJ', + 'K' : 3 , + 'a0' : 2.36182e-01, 'a1' : 9.86550e-02, 'a2' : 3.85051e-01, 'a3' : 2.80112e-01, + 'tau1' : 2.32060e+02,'tau2' : 5.85029e+01, 'tau3' : 2.58649e+00}, + '4' : {'name' : 'CLIMBER2-LPJ', + 'K' : 3 , + 'a0' : 2.31808e-01, 'a1' : 2.15532e-01, 'a2' : 6.00716e-02, 'a3' : 4.92588e-01, + 'tau1' : 2.72635e+02, 'tau2' : 2.72635e+02, 'tau3' : 6.69203e+00}, + '5' : {'name' : 'DCESS', + 'K' : 3 , + 'a0' : 2.15938e-01, 'a1' : 2.91205e-01, 'a2' : 2.41039e-01, 'a3' : 2.51819e-01, + 'tau1' : 3.79917e+02, 'tau2' : 3.63133e+01, 'tau3' : 3.39821e+00}, + '6' : {'name' : 'GENIE (ensemble median) ', + 'K' : 3 , + 'a0' : 2.14468e-01, 'a1' : 2.49017e-01, 'a2' : 1.92417e-01, 'a3' : 3.44097e-01, + 'tau1' : 2.70068e+02, 'tau2' : 3.93231e+01, 'tau3' : 4.30551e+00}, + '7': {'name' : 'LOVECLIM', + 'K' : 3 , + 'a0' : 8.20680e-09, 'a1' : 3.60847e-01, 'a2' : 4.48756e-01, 'a3' : 1.90397e-01, + 'tau1' : 1.59237e+03, 'tau2' : 2.17546e+01, 'tau3' : 2.31171e+00}, + '8': {'name' : 'MESMO', + 'K' : 3 , + 'a0' : 2.84833e-01, 'a1' : 2.93789e-01, 'a2' : 2.38243e-01, 'a3' : 1.83135e-01, + 'tau1' : 4.54262e+02, 'tau2' : 2.50004e+01, 'tau3' : 2.01397e+00}, + '9': {'name' : 'UVic2.9', + 'K' : 3 , + 'a0' : 3.18612e-01, 'a1' : 1.74787e-01, 'a2' : 1.92120e-01, 'a3' : 3.14480e-01, + 'tau1' : 3.04635e+02, 'tau2' : 2.65602e+01, 'tau3' : 3.80036e+00}, + '10': {'name' : 'ACC2', + 'K' : 3 , + 'a0' : 1.77855e-01, 'a1' : 1.65350e-01, 'a2' : 3.79637e-01, 'a3' : 2.77157e-01, + 'tau1' : 3.86187e+02, 'tau2' : 3.68939e+01, 'tau3' : 3.72353e+00}, + '11': {'name' : 'Bern-SAR', + 'K' : 3 , + 'a0' : 1.99428e-01, 'a1' : 1.76160e-01, 'a2' : 3.45213e-01, 'a3' : 2.79198e-01, + 'tau1' : 3.33144e+02, 'tau2' : 3.96896e+01, 'tau3' : 4.10990e+00}, + '12': {'name' : 'MAGICC6 (ensemble median)', + 'K' : 3 , + 'a0' : 2.05148e-01, 'a1' : 2.53261e-01, 'a2' : 3.31761e-01, 'a3' : 2.09831e-01, + 'tau1' : 5.96072e+02, 'tau2' : 2.19675e+01, 'tau3' : 2.99543e+00}, + '13': {'name' : 'TOTEM2', + 'K' : 3 , + 'a0' : 1.19535e-05, 'a1' : 2.03149e-01, 'a2' : 6.99459e-01, 'a3' : 9.73804e-02, + 'tau1' : 8.57652e+04, 'tau2' : 1.11772e+02, 'tau3' : 1.90248e-02} + }, + 'source' : 'Joos 2013 with year > 500' + } +} + + + +#------------------------------- +# CH4 +#------------------------------- +GasDATAlib['CH4'] = { + 'MolarMass' : { 'Comments': 'Masse molaire', + 'value' : 16.0425 , + 'units' : 'g/mol' , + 'distrib' : 'uniform' , + 'delta' : 0.0011 , + 'source' : 'https://fr.wikipedia.org/wiki/M%C3%A9thane' + }, + 'PRG100' : { 'Comments': 'Pouvoir de réchauffement global à 100 ans (GWP100)', + 'value' : 27.9 , + 'source' : 'https://www.ipcc.ch/report/ar6/wg1/downloads/report/IPCC_AR6_WGI_Chapter07_SM.pdf' + }, + 'A_RadFor' : { 'Comments': 'Forçage radiatif (Attention parfois en ppm plutot que kg)', + 'value' : 1.9990134e-13 , + 'units' : 'W*m^{-2}*kg^{-1}' , + 'distrib' : 'normal' , + 'sigma' : 2.9847158e-14, + 'source' : 'Forster et al., 2021 - 1.645sigma' + }, + 'alphaCO2' : { 'Comments': 'Oxidized CH4 to net production of atmospheric CO2', + 'value' : 0.75 , + 'distrib' : 'uniform' , + 'delta' : 0.25, + 'source' : 'Forster et al., 2021' + }, + + 'coeffIRF' : { 'Comments': 'I(t) = a_0 + sum_i=1^K a_i exp(-t/taui), t de 0 à 1000 ans', + 'values' : {'K' : 1 , + 'a0' : 0.0 , + 'a1' : 1.0 , 'tau1' : 11.8 }, + 'distrib' : 'normal', + 'sigmadic': {'tau1' : 1.094224924 }, + 'source' : '(Forster et al., 2021)' + } +} + + + + +#------------------------------- +# N2O +#------------------------------- +GasDATAlib['N2O'] = { + 'MolarMass' : { 'Comments': 'Masse molaire', + 'value' : 44.0128 , + 'units' : 'g/mol' , + 'distrib' : 'uniform' , + 'delta' : 0.0007 , + 'source' : 'https://fr.wikipedia.org/wiki/Protoxyde_d%27azote' + }, + 'PRG100' : { 'Comments': 'Pouvoir de réchauffement global à 100 ans (GWP100)', + 'value' : 273.0 , + 'source' : 'https://www.ipcc.ch/report/ar6/wg1/downloads/report/IPCC_AR6_WGI_Chapter07_SM.pdf' + }, + 'A_RadFor' : { 'Comments': 'Forçage radiatif (Attention parfois en ppm plutot que kg)', + 'distrib' : 'normal' , + 'value' : 3.5621803e-13 , + 'units' : 'W*m^{-2}*kg^{-1}' , + 'distrib' : 'normal' , + 'sigma' : 8.5071609e-14, + 'source' : 'Forster et al., 2021 - 1.645sigma' + }, + 'coeffIRF' : { 'Comments': 'I(t) = a_0 + sum_i=1^K a_i exp(-t/taui), t de 0 à 1000 ans', + 'distrib' : 'normal', + 'values' : {'K' : 1 , + 'a0' : 0.0 , + 'a1' : 1.0 , 'tau1' : 109.0 }, + 'sigmadic': {'tau1' : 6.079027356 }, + 'source' : 'Canadell et al. (2021)' + }, +} + + +#------------------------------- +# OH +#------------------------------- +GasDATAlib['OH'] = { + 'MolarMass' : { 'Comments': 'Masse molaire', + 'value' : 17.0073 , + 'units' : 'g/mol' , + 'distrib' : 'uniform' , + 'delta' : 0.0004 , + 'source' : 'https://fr.wikipedia.org/wiki/Hydroxyde' + }, + 'coeffIRF' : { 'Comments': 'I(t) = a_0 + sum_i=1^K a_i exp(-t/taui), t de 0 à 1000 ans', + 'distrib' : 'normal', + 'values' : {'K' : 1 , + 'a0' : 0.0 , + 'a1' : 1.0 , 'tau1' : 9.7 }, + 'sigmadic': {'tau1' : 1.1 }, + 'source' : 'Gasser 2017' + } +} + + + +#------------------------------- +# C +#------------------------------- +GasDATAlib['C'] = { + 'MolarMass' : { 'Comments': 'Masse molaire', + 'value' : 12.011 , + 'units' : 'g/mol' + } +} + + +#==================================================== +# Models datas +# We made a choice here for the uncertainty of the ci, di parameters of the model. +# It has been decided to use 600 set of parameters in a Monte-Carlo procedure. +# We have tried to obtain a correlation matrix using Cholesky and inverse of jacobian of the model, but it is not yet validated. + +#------------------------------- +# IRFT +#------------------------------- +IRFT_DataLib = { + + 'ECS' : { 'Comments': '', + 'value' : 0.75776594, + 'units' : 'K / (W/m^2)' , + 'distrib' : 'normal', + 'sigma' : 0.16812612, + 'source' : 'Forster 2021' + }, + + 'coeffTDR' : { 'Comments': 'c1,d1,d2 correlated. c2 = 1-c1.', + 'values' : {'c1' : 0.58562639 , + 'c2' : 1.-0.58562639 , + 'd1' : 3.424102092311 , + 'd2' : 285.003477841911 + }, + 'distrib' : 'manual', + 'models' : { + '1' : {'name' : 'MAGICC7', 'c1': 0.632241768107763 , 'c2': 0.367758231892237 , 'd1': 3.82386950507148 , 'd2': 389.900781087468 }, + '2' : {'name' : 'MAGICC7', 'c1': 0.47651030677388 , 'c2': 0.52348969322612 , 'd1': 5.6215994122556 , 'd2': 319.061154334058 }, + '3' : {'name' : 'MAGICC7', 'c1': 0.588559698303091 , 'c2': 0.411440301696909 , 'd1': 6.30506076996332 , 'd2': 371.9310573597 }, + '4' : {'name' : 'MAGICC7', 'c1': 0.640567580563668 , 'c2': 0.359432419436332 , 'd1': 2.98642018118141 , 'd2': 260.696311318439 }, + '5' : {'name' : 'MAGICC7', 'c1': 0.578261474349108 , 'c2': 0.421738525650892 , 'd1': 7.04529766938455 , 'd2': 330.485390077445 }, + '6' : {'name' : 'MAGICC7', 'c1': 0.590424817810548 , 'c2': 0.409575182189452 , 'd1': 2.31397040718796 , 'd2': 332.389761171534 }, + '7' : {'name' : 'MAGICC7', 'c1': 0.651985609754824 , 'c2': 0.348014390245176 , 'd1': 2.86077870934596 , 'd2': 237.095172544455 }, + '8' : {'name' : 'MAGICC7', 'c1': 0.638346178386973 , 'c2': 0.361653821613027 , 'd1': 6.4484222282771 , 'd2': 291.970329699021 }, + '9' : {'name' : 'MAGICC7', 'c1': 0.649193133479151 , 'c2': 0.350806866520849 , 'd1': 7.17146839958581 , 'd2': 198.783405788516 }, + '10' : {'name' : 'MAGICC7', 'c1': 0.525107153890915 , 'c2': 0.474892846109085 , 'd1': 7.62309609297798 , 'd2': 429.23573508845 }, + '11' : {'name' : 'MAGICC7', 'c1': 0.568473494547009 , 'c2': 0.431526505452991 , 'd1': 3.87864565839856 , 'd2': 361.380421679158 }, + '12' : {'name' : 'MAGICC7', 'c1': 0.66552837484991 , 'c2': 0.33447162515009 , 'd1': 3.46888955155108 , 'd2': 273.144217049346 }, + '13' : {'name' : 'MAGICC7', 'c1': 0.676547154701208 , 'c2': 0.323452845298792 , 'd1': 7.1687543895878 , 'd2': 246.411285530349 }, + '14' : {'name' : 'MAGICC7', 'c1': 0.671969153305233 , 'c2': 0.328030846694767 , 'd1': 3.45997440753028 , 'd2': 206.831006938584 }, + '15' : {'name' : 'MAGICC7', 'c1': 0.576123934161629 , 'c2': 0.423876065838371 , 'd1': 2.76558766630595 , 'd2': 135.944896033756 }, + '16' : {'name' : 'MAGICC7', 'c1': 0.769136990312664 , 'c2': 0.230863009687337 , 'd1': 3.57210960390788 , 'd2': 274.366300556365 }, + '17' : {'name' : 'MAGICC7', 'c1': 0.634082897526365 , 'c2': 0.365917102473635 , 'd1': 7.1172793166239 , 'd2': 269.907235190897 }, + '18' : {'name' : 'MAGICC7', 'c1': 0.622839362119914 , 'c2': 0.377160637880086 , 'd1': 2.66352285394658 , 'd2': 258.253040070431 }, + '19' : {'name' : 'MAGICC7', 'c1': 0.589101099336831 , 'c2': 0.410898900663169 , 'd1': 3.78102171100329 , 'd2': 239.097169295607 }, + '20' : {'name' : 'MAGICC7', 'c1': 0.6238828893578 , 'c2': 0.3761171106422 , 'd1': 6.600151114628 , 'd2': 232.911784121573 }, + '21' : {'name' : 'MAGICC7', 'c1': 0.647603075866261 , 'c2': 0.352396924133739 , 'd1': 5.47377927212362 , 'd2': 228.457045620848 }, + '22' : {'name' : 'MAGICC7', 'c1': 0.626456860281712 , 'c2': 0.373543139718288 , 'd1': 6.03946466411415 , 'd2': 330.618608137511 }, + '23' : {'name' : 'MAGICC7', 'c1': 0.636646979928147 , 'c2': 0.363353020071853 , 'd1': 7.94985770122328 , 'd2': 282.470763471812 }, + '24' : {'name' : 'MAGICC7', 'c1': 0.663662559190617 , 'c2': 0.336337440809383 , 'd1': 3.85569345223402 , 'd2': 372.872771870098 }, + '25' : {'name' : 'MAGICC7', 'c1': 0.587218917177877 , 'c2': 0.412781082822123 , 'd1': 3.36528894125964 , 'd2': 289.065693368163 }, + '26' : {'name' : 'MAGICC7', 'c1': 0.616483197071491 , 'c2': 0.383516802928509 , 'd1': 1.83388317798649 , 'd2': 131.656583418221 }, + '27' : {'name' : 'MAGICC7', 'c1': 0.676969643494841 , 'c2': 0.32303035650516 , 'd1': 5.21296082165822 , 'd2': 214.977812581241 }, + '28' : {'name' : 'MAGICC7', 'c1': 0.735401632976097 , 'c2': 0.264598367023903 , 'd1': 4.13770197156748 , 'd2': 220.52693874936 }, + '29' : {'name' : 'MAGICC7', 'c1': 0.692528111641875 , 'c2': 0.307471888358125 , 'd1': 3.12533515508762 , 'd2': 230.335686943678 }, + '30' : {'name' : 'MAGICC7', 'c1': 0.578586208503603 , 'c2': 0.421413791496397 , 'd1': 6.98379269372093 , 'd2': 133.224555765284 }, + '31' : {'name' : 'MAGICC7', 'c1': 0.666628771890031 , 'c2': 0.333371228109969 , 'd1': 3.16640720823426 , 'd2': 249.08652319974 }, + '32' : {'name' : 'MAGICC7', 'c1': 0.57295925736029 , 'c2': 0.427040742639711 , 'd1': 4.39000383223875 , 'd2': 434.790214665508 }, + '33' : {'name' : 'MAGICC7', 'c1': 0.605346080721354 , 'c2': 0.394653919278646 , 'd1': 2.70629958899932 , 'd2': 220.677154327203 }, + '34' : {'name' : 'MAGICC7', 'c1': 0.510374898438643 , 'c2': 0.489625101561357 , 'd1': 4.37806742174467 , 'd2': 548.420102139577 }, + '35' : {'name' : 'MAGICC7', 'c1': 0.70736343681524 , 'c2': 0.29263656318476 , 'd1': 3.69971641733383 , 'd2': 215.703668498468 }, + '36' : {'name' : 'MAGICC7', 'c1': 0.689864228632141 , 'c2': 0.310135771367859 , 'd1': 4.76922742661194 , 'd2': 213.518836982346 }, + '37' : {'name' : 'MAGICC7', 'c1': 0.563334450422736 , 'c2': 0.436665549577264 , 'd1': 2.8208992651919 , 'd2': 320.73336249832 }, + '38' : {'name' : 'MAGICC7', 'c1': 0.671854799049124 , 'c2': 0.328145200950876 , 'd1': 3.32473996963507 , 'd2': 333.678515333307 }, + '39' : {'name' : 'MAGICC7', 'c1': 0.617896106525012 , 'c2': 0.382103893474988 , 'd1': 6.02234306852562 , 'd2': 341.9919317971 }, + '40' : {'name' : 'MAGICC7', 'c1': 0.673757095321954 , 'c2': 0.326242904678046 , 'd1': 1.90609118815092 , 'd2': 266.204797716508 }, + '41' : {'name' : 'MAGICC7', 'c1': 0.647008411561823 , 'c2': 0.352991588438177 , 'd1': 5.99724013106657 , 'd2': 230.054330884948 }, + '42' : {'name' : 'MAGICC7', 'c1': 0.678558393680003 , 'c2': 0.321441606319997 , 'd1': 5.86176785049258 , 'd2': 229.458840694695 }, + '43' : {'name' : 'MAGICC7', 'c1': 0.65269819615743 , 'c2': 0.34730180384257 , 'd1': 2.9335439459129 , 'd2': 325.412125701192 }, + '44' : {'name' : 'MAGICC7', 'c1': 0.713887076737018 , 'c2': 0.286112923262982 , 'd1': 2.82433797707 , 'd2': 208.475671410828 }, + '45' : {'name' : 'MAGICC7', 'c1': 0.704549273255415 , 'c2': 0.295450726744586 , 'd1': 2.71934906957265 , 'd2': 242.194229171043 }, + '46' : {'name' : 'MAGICC7', 'c1': 0.719945738078425 , 'c2': 0.280054261921575 , 'd1': 3.04164384860224 , 'd2': 230.138386357371 }, + '47' : {'name' : 'MAGICC7', 'c1': 0.637844380105683 , 'c2': 0.362155619894317 , 'd1': 3.50896131914876 , 'd2': 396.893773205207 }, + '48' : {'name' : 'MAGICC7', 'c1': 0.687061107254471 , 'c2': 0.31293889274553 , 'd1': 5.29755156935227 , 'd2': 219.156035720426 }, + '49' : {'name' : 'MAGICC7', 'c1': 0.698232763074995 , 'c2': 0.301767236925005 , 'd1': 2.61862252045183 , 'd2': 190.421975376027 }, + '50' : {'name' : 'MAGICC7', 'c1': 0.626855876911374 , 'c2': 0.373144123088626 , 'd1': 4.01753146337519 , 'd2': 301.516168975059 }, + '51' : {'name' : 'MAGICC7', 'c1': 0.708893958765378 , 'c2': 0.291106041234622 , 'd1': 4.15922121222197 , 'd2': 259.426934108479 }, + '52' : {'name' : 'MAGICC7', 'c1': 0.758486176652179 , 'c2': 0.241513823347821 , 'd1': 3.19435843056883 , 'd2': 212.174721440208 }, + '53' : {'name' : 'MAGICC7', 'c1': 0.712076467840429 , 'c2': 0.287923532159571 , 'd1': 2.9422879032204 , 'd2': 238.720258942513 }, + '54' : {'name' : 'MAGICC7', 'c1': 0.583397325131424 , 'c2': 0.416602674868576 , 'd1': 3.08895220676643 , 'd2': 275.418876744372 }, + '55' : {'name' : 'MAGICC7', 'c1': 0.67187189036558 , 'c2': 0.32812810963442 , 'd1': 3.20179293305284 , 'd2': 243.785163786455 }, + '56' : {'name' : 'MAGICC7', 'c1': 0.621278890077846 , 'c2': 0.378721109922154 , 'd1': 4.76709070679057 , 'd2': 256.940325201313 }, + '57' : {'name' : 'MAGICC7', 'c1': 0.527098571618698 , 'c2': 0.472901428381302 , 'd1': 4.17200570837442 , 'd2': 592.859566730206 }, + '58' : {'name' : 'MAGICC7', 'c1': 0.588039835227702 , 'c2': 0.411960164772298 , 'd1': 2.4516936913602 , 'd2': 295.337065831528 }, + '59' : {'name' : 'MAGICC7', 'c1': 0.606089200620326 , 'c2': 0.393910799379674 , 'd1': 2.50158551541092 , 'd2': 245.380170311118 }, + '60' : {'name' : 'MAGICC7', 'c1': 0.538574549895507 , 'c2': 0.461425450104493 , 'd1': 6.66446934172044 , 'd2': 411.980932479886 }, + '61' : {'name' : 'MAGICC7', 'c1': 0.649041152972744 , 'c2': 0.350958847027256 , 'd1': 2.86970464088908 , 'd2': 127.638250069349 }, + '62' : {'name' : 'MAGICC7', 'c1': 0.549634452215066 , 'c2': 0.450365547784934 , 'd1': 3.50489617486999 , 'd2': 336.105811569808 }, + '63' : {'name' : 'MAGICC7', 'c1': 0.679818987715897 , 'c2': 0.320181012284103 , 'd1': 2.63855991831276 , 'd2': 136.499530194852 }, + '64' : {'name' : 'MAGICC7', 'c1': 0.563473974711505 , 'c2': 0.436526025288495 , 'd1': 2.90912293022117 , 'd2': 348.456964174583 }, + '65' : {'name' : 'MAGICC7', 'c1': 0.546041966822671 , 'c2': 0.45395803317733 , 'd1': 3.02710441239655 , 'd2': 421.50883713795 }, + '66' : {'name' : 'MAGICC7', 'c1': 0.507199753119973 , 'c2': 0.492800246880027 , 'd1': 4.18997576603675 , 'd2': 500.573068681575 }, + '67' : {'name' : 'MAGICC7', 'c1': 0.629864383052903 , 'c2': 0.370135616947097 , 'd1': 3.56528817495604 , 'd2': 379.116539423917 }, + '68' : {'name' : 'MAGICC7', 'c1': 0.759420112177514 , 'c2': 0.240579887822486 , 'd1': 1.94286409500377 , 'd2': 224.709160442091 }, + '69' : {'name' : 'MAGICC7', 'c1': 0.661644916382567 , 'c2': 0.338355083617433 , 'd1': 3.62183523646157 , 'd2': 320.697663751236 }, + '70' : {'name' : 'MAGICC7', 'c1': 0.75160392069896 , 'c2': 0.24839607930104 , 'd1': 3.58406231648057 , 'd2': 239.539810065675 }, + '71' : {'name' : 'MAGICC7', 'c1': 0.633614477141091 , 'c2': 0.366385522858909 , 'd1': 3.18374921091857 , 'd2': 340.869627106446 }, + '72' : {'name' : 'MAGICC7', 'c1': 0.666303510440694 , 'c2': 0.333696489559306 , 'd1': 2.60686427017896 , 'd2': 234.946066940657 }, + '73' : {'name' : 'MAGICC7', 'c1': 0.628422142177359 , 'c2': 0.371577857822642 , 'd1': 3.20948459863148 , 'd2': 255.16259498671 }, + '74' : {'name' : 'MAGICC7', 'c1': 0.586076763083144 , 'c2': 0.413923236916856 , 'd1': 3.41050768984755 , 'd2': 465.210971217287 }, + '75' : {'name' : 'MAGICC7', 'c1': 0.572566411715606 , 'c2': 0.427433588284394 , 'd1': 5.8131438540542 , 'd2': 337.279542205433 }, + '76' : {'name' : 'MAGICC7', 'c1': 0.642550085427758 , 'c2': 0.357449914572242 , 'd1': 7.07662412396742 , 'd2': 228.840150404383 }, + '77' : {'name' : 'MAGICC7', 'c1': 0.730791471266115 , 'c2': 0.269208528733885 , 'd1': 3.38335910513937 , 'd2': 260.074306809865 }, + '78' : {'name' : 'MAGICC7', 'c1': 0.721486041427341 , 'c2': 0.278513958572659 , 'd1': 2.97106149714637 , 'd2': 240.203984700702 }, + '79' : {'name' : 'MAGICC7', 'c1': 0.659328380407917 , 'c2': 0.340671619592083 , 'd1': 2.56333003713157 , 'd2': 240.566752761436 }, + '80' : {'name' : 'MAGICC7', 'c1': 0.621127957561431 , 'c2': 0.378872042438569 , 'd1': 2.14720960685612 , 'd2': 126.676694221424 }, + '81' : {'name' : 'MAGICC7', 'c1': 0.580254548379209 , 'c2': 0.419745451620791 , 'd1': 3.36382687564688 , 'd2': 278.010502925368 }, + '82' : {'name' : 'MAGICC7', 'c1': 0.66035913583787 , 'c2': 0.33964086416213 , 'd1': 3.47028853903568 , 'd2': 425.307737188563 }, + '83' : {'name' : 'MAGICC7', 'c1': 0.609769962301192 , 'c2': 0.390230037698808 , 'd1': 2.01871070592731 , 'd2': 129.07985206 }, + '84' : {'name' : 'MAGICC7', 'c1': 0.678916156668051 , 'c2': 0.321083843331949 , 'd1': 6.07187310664094 , 'd2': 201.598641643042 }, + '85' : {'name' : 'MAGICC7', 'c1': 0.607457819029505 , 'c2': 0.392542180970495 , 'd1': 3.01287636953716 , 'd2': 371.956907499743 }, + '86' : {'name' : 'MAGICC7', 'c1': 0.718479705674298 , 'c2': 0.281520294325702 , 'd1': 3.21496975341955 , 'd2': 262.312429309318 }, + '87' : {'name' : 'MAGICC7', 'c1': 0.654058854430983 , 'c2': 0.345941145569017 , 'd1': 3.40640054204175 , 'd2': 199.395756296467 }, + '88' : {'name' : 'MAGICC7', 'c1': 0.702434572988451 , 'c2': 0.297565427011549 , 'd1': 5.71246048473951 , 'd2': 209.14225774741 }, + '89' : {'name' : 'MAGICC7', 'c1': 0.564362261372927 , 'c2': 0.435637738627073 , 'd1': 3.58586992944271 , 'd2': 247.354513908102 }, + '90' : {'name' : 'MAGICC7', 'c1': 0.646647320242821 , 'c2': 0.353352679757179 , 'd1': 3.33800945481394 , 'd2': 300.510050508955 }, + '91' : {'name' : 'MAGICC7', 'c1': 0.635730033654231 , 'c2': 0.364269966345769 , 'd1': 2.34375514459547 , 'd2': 209.209701353341 }, + '92' : {'name' : 'MAGICC7', 'c1': 0.636803525594575 , 'c2': 0.363196474405425 , 'd1': 2.80688420810654 , 'd2': 260.94150354316 }, + '93' : {'name' : 'MAGICC7', 'c1': 0.733117640180664 , 'c2': 0.266882359819336 , 'd1': 2.65655079789657 , 'd2': 255.66189860761 }, + '94' : {'name' : 'MAGICC7', 'c1': 0.625567745353378 , 'c2': 0.374432254646622 , 'd1': 4.68618520076188 , 'd2': 318.286117326626 }, + '95' : {'name' : 'MAGICC7', 'c1': 0.682038158213469 , 'c2': 0.317961841786531 , 'd1': 2.34717207782671 , 'd2': 203.305465705139 }, + '96' : {'name' : 'MAGICC7', 'c1': 0.716057490545561 , 'c2': 0.283942509454439 , 'd1': 3.20099873847413 , 'd2': 244.355896678665 }, + '97' : {'name' : 'MAGICC7', 'c1': 0.569220626340919 , 'c2': 0.430779373659081 , 'd1': 3.17548146827584 , 'd2': 361.010715290069 }, + '98' : {'name' : 'MAGICC7', 'c1': 0.644037659323726 , 'c2': 0.355962340676274 , 'd1': 3.17395328366445 , 'd2': 240.819283526028 }, + '99' : {'name' : 'MAGICC7', 'c1': 0.688379848779577 , 'c2': 0.311620151220423 , 'd1': 2.94545790817488 , 'd2': 230.684120439902 }, + '100' : {'name' : 'MAGICC7', 'c1': 0.570227564061607 , 'c2': 0.429772435938393 , 'd1': 2.52944855279546 , 'd2': 236.468353025182 }, + '101' : {'name' : 'MAGICC7', 'c1': 0.653941371100315 , 'c2': 0.346058628899685 , 'd1': 5.94402354299445 , 'd2': 243.283196591716 }, + '102' : {'name' : 'MAGICC7', 'c1': 0.656711959886531 , 'c2': 0.34328804011347 , 'd1': 5.3317824365823 , 'd2': 139.395379191608 }, + '103' : {'name' : 'MAGICC7', 'c1': 0.689742395196655 , 'c2': 0.310257604803345 , 'd1': 3.9214172135312 , 'd2': 247.026427850452 }, + '104' : {'name' : 'MAGICC7', 'c1': 0.707153834945278 , 'c2': 0.292846165054722 , 'd1': 2.03680197830309 , 'd2': 121.584078178197 }, + '105' : {'name' : 'MAGICC7', 'c1': 0.686812010621104 , 'c2': 0.313187989378896 , 'd1': 3.09295000954399 , 'd2': 197.99243820942 }, + '106' : {'name' : 'MAGICC7', 'c1': 0.553172967147553 , 'c2': 0.446827032852447 , 'd1': 5.36234929839926 , 'd2': 392.067937538145 }, + '107' : {'name' : 'MAGICC7', 'c1': 0.587114109966165 , 'c2': 0.412885890033835 , 'd1': 5.83976425863474 , 'd2': 419.420045477311 }, + '108' : {'name' : 'MAGICC7', 'c1': 0.695697965221858 , 'c2': 0.304302034778142 , 'd1': 6.7359380655852 , 'd2': 175.39167595584 }, + '109' : {'name' : 'MAGICC7', 'c1': 0.659772435748986 , 'c2': 0.340227564251014 , 'd1': 3.1407147206201 , 'd2': 258.962604820276 }, + '110' : {'name' : 'MAGICC7', 'c1': 0.55508918092291 , 'c2': 0.44491081907709 , 'd1': 3.11212509273781 , 'd2': 406.577749118883 }, + '111' : {'name' : 'MAGICC7', 'c1': 0.608322496718091 , 'c2': 0.391677503281909 , 'd1': 2.31494240494744 , 'd2': 222.723877342308 }, + '112' : {'name' : 'MAGICC7', 'c1': 0.707603400000606 , 'c2': 0.292396599999394 , 'd1': 3.40240354911284 , 'd2': 245.378384823566 }, + '113' : {'name' : 'MAGICC7', 'c1': 0.584490214215056 , 'c2': 0.415509785784944 , 'd1': 3.7849827362671 , 'd2': 263.820018497796 }, + '114' : {'name' : 'MAGICC7', 'c1': 0.615282952714132 , 'c2': 0.384717047285868 , 'd1': 3.45873310848226 , 'd2': 323.14654857221 }, + '115' : {'name' : 'MAGICC7', 'c1': 0.656337983319203 , 'c2': 0.343662016680798 , 'd1': 5.35035676891101 , 'd2': 249.8890327342 }, + '116' : {'name' : 'MAGICC7', 'c1': 0.606550530504647 , 'c2': 0.393449469495353 , 'd1': 5.20267253167241 , 'd2': 287.770252017669 }, + '117' : {'name' : 'MAGICC7', 'c1': 0.552005259572772 , 'c2': 0.447994740427228 , 'd1': 2.77613123846611 , 'd2': 222.494778138684 }, + '118' : {'name' : 'MAGICC7', 'c1': 0.646871267944763 , 'c2': 0.353128732055237 , 'd1': 3.49934288993566 , 'd2': 342.456570559123 }, + '119' : {'name' : 'MAGICC7', 'c1': 0.703480031970623 , 'c2': 0.296519968029377 , 'd1': 3.8654493264885 , 'd2': 249.895798037525 }, + '120' : {'name' : 'MAGICC7', 'c1': 0.571223591670298 , 'c2': 0.428776408329703 , 'd1': 2.39749626795904 , 'd2': 228.611760441712 }, + '121' : {'name' : 'MAGICC7', 'c1': 0.576216748987851 , 'c2': 0.423783251012149 , 'd1': 3.19569849067027 , 'd2': 392.645789594677 }, + '122' : {'name' : 'MAGICC7', 'c1': 0.647491745065752 , 'c2': 0.352508254934248 , 'd1': 2.70961478833138 , 'd2': 301.354183597169 }, + '123' : {'name' : 'MAGICC7', 'c1': 0.553064181885439 , 'c2': 0.446935818114561 , 'd1': 2.8409609274701 , 'd2': 258.495518880657 }, + '124' : {'name' : 'MAGICC7', 'c1': 0.513982650611749 , 'c2': 0.486017349388251 , 'd1': 9.60598581603131 , 'd2': 453.356484164048 }, + '125' : {'name' : 'MAGICC7', 'c1': 0.608931759190393 , 'c2': 0.391068240809607 , 'd1': 3.74553943425484 , 'd2': 250.341642710756 }, + '126' : {'name' : 'MAGICC7', 'c1': 0.668855384018966 , 'c2': 0.331144615981034 , 'd1': 2.59099584205632 , 'd2': 260.319422005059 }, + '127' : {'name' : 'MAGICC7', 'c1': 0.673296119262534 , 'c2': 0.326703880737466 , 'd1': 5.72202448634221 , 'd2': 243.156816600164 }, + '128' : {'name' : 'MAGICC7', 'c1': 0.57614970435372 , 'c2': 0.42385029564628 , 'd1': 7.32647139553954 , 'd2': 346.56556849001 }, + '129' : {'name' : 'MAGICC7', 'c1': 0.690030779751811 , 'c2': 0.309969220248189 , 'd1': 4.23363997410137 , 'd2': 236.792521790695 }, + '130' : {'name' : 'MAGICC7', 'c1': 0.599136492417322 , 'c2': 0.400863507582678 , 'd1': 4.05733531947212 , 'd2': 279.176201575024 }, + '131' : {'name' : 'MAGICC7', 'c1': 0.575885955796162 , 'c2': 0.424114044203838 , 'd1': 3.19220933759292 , 'd2': 250.831078504914 }, + '132' : {'name' : 'MAGICC7', 'c1': 0.591211398183065 , 'c2': 0.408788601816935 , 'd1': 3.88954658059146 , 'd2': 324.718548988821 }, + '133' : {'name' : 'MAGICC7', 'c1': 0.646336776718723 , 'c2': 0.353663223281277 , 'd1': 3.03080175550821 , 'd2': 214.696385541126 }, + '134' : {'name' : 'MAGICC7', 'c1': 0.644612885717529 , 'c2': 0.355387114282471 , 'd1': 3.02066153188394 , 'd2': 231.937723094989 }, + '135' : {'name' : 'MAGICC7', 'c1': 0.621731643008141 , 'c2': 0.37826835699186 , 'd1': 2.88106800508491 , 'd2': 229.135886629792 }, + '136' : {'name' : 'MAGICC7', 'c1': 0.595331320704688 , 'c2': 0.404668679295312 , 'd1': 6.01243883350287 , 'd2': 337.285083434985 }, + '137' : {'name' : 'MAGICC7', 'c1': 0.642459221894771 , 'c2': 0.357540778105229 , 'd1': 3.01163911704369 , 'd2': 271.872589102155 }, + '138' : {'name' : 'MAGICC7', 'c1': 0.60677556559521 , 'c2': 0.39322443440479 , 'd1': 3.01906881065967 , 'd2': 250.032254594271 }, + '139' : {'name' : 'MAGICC7', 'c1': 0.584780009017368 , 'c2': 0.415219990982632 , 'd1': 9.01566690059159 , 'd2': 271.423061587958 }, + '140' : {'name' : 'MAGICC7', 'c1': 0.700007098903229 , 'c2': 0.299992901096771 , 'd1': 3.14435673129843 , 'd2': 197.969021302502 }, + '141' : {'name' : 'MAGICC7', 'c1': 0.649427928620896 , 'c2': 0.350572071379104 , 'd1': 3.60823503599961 , 'd2': 209.399636660152 }, + '142' : {'name' : 'MAGICC7', 'c1': 0.664915964311693 , 'c2': 0.335084035688307 , 'd1': 2.24188965004555 , 'd2': 256.215009764874 }, + '143' : {'name' : 'MAGICC7', 'c1': 0.623424760670817 , 'c2': 0.376575239329183 , 'd1': 5.81339991353055 , 'd2': 389.529884477066 }, + '144' : {'name' : 'MAGICC7', 'c1': 0.527746997780755 , 'c2': 0.472253002219245 , 'd1': 3.23931073442133 , 'd2': 426.70474590232 }, + '145' : {'name' : 'MAGICC7', 'c1': 0.732302891385158 , 'c2': 0.267697108614842 , 'd1': 4.52882932628241 , 'd2': 217.19309660282 }, + '146' : {'name' : 'MAGICC7', 'c1': 0.66318244822611 , 'c2': 0.33681755177389 , 'd1': 2.70645314801594 , 'd2': 248.150207070621 }, + '147' : {'name' : 'MAGICC7', 'c1': 0.764325173094023 , 'c2': 0.235674826905977 , 'd1': 3.7682502674161 , 'd2': 355.481831467108 }, + '148' : {'name' : 'MAGICC7', 'c1': 0.613688553561807 , 'c2': 0.386311446438193 , 'd1': 3.69426676674651 , 'd2': 348.643728972409 }, + '149' : {'name' : 'MAGICC7', 'c1': 0.64158466185412 , 'c2': 0.35841533814588 , 'd1': 2.19044563252325 , 'd2': 125.918861948752 }, + '150' : {'name' : 'MAGICC7', 'c1': 0.605309056909262 , 'c2': 0.394690943090738 , 'd1': 3.51622064537827 , 'd2': 260.091887784462 }, + '151' : {'name' : 'MAGICC7', 'c1': 0.691889451927919 , 'c2': 0.308110548072081 , 'd1': 3.48109032803465 , 'd2': 278.813225981119 }, + '152' : {'name' : 'MAGICC7', 'c1': 0.506341370068009 , 'c2': 0.493658629931991 , 'd1': 12.0885946866376 , 'd2': 335.563001654345 }, + '153' : {'name' : 'MAGICC7', 'c1': 0.735559142225262 , 'c2': 0.264440857774738 , 'd1': 2.60997095819577 , 'd2': 249.422202880571 }, + '154' : {'name' : 'MAGICC7', 'c1': 0.575645623113509 , 'c2': 0.424354376886492 , 'd1': 2.68124513968819 , 'd2': 300.491749993555 }, + '155' : {'name' : 'MAGICC7', 'c1': 0.693312973669458 , 'c2': 0.306687026330542 , 'd1': 2.68488981666939 , 'd2': 201.975678461671 }, + '156' : {'name' : 'MAGICC7', 'c1': 0.586027417290271 , 'c2': 0.413972582709729 , 'd1': 3.92116168152779 , 'd2': 283.44612711163 }, + '157' : {'name' : 'MAGICC7', 'c1': 0.59196507924739 , 'c2': 0.40803492075261 , 'd1': 3.73335475388553 , 'd2': 204.187636186647 }, + '158' : {'name' : 'MAGICC7', 'c1': 0.627606965561232 , 'c2': 0.372393034438768 , 'd1': 3.5699236153655 , 'd2': 257.242542143419 }, + '159' : {'name' : 'MAGICC7', 'c1': 0.598113261020552 , 'c2': 0.401886738979448 , 'd1': 3.19036598364558 , 'd2': 366.82741417047 }, + '160' : {'name' : 'MAGICC7', 'c1': 0.653008475934983 , 'c2': 0.346991524065017 , 'd1': 2.21284649731125 , 'd2': 219.097966743246 }, + '161' : {'name' : 'MAGICC7', 'c1': 0.629862372207964 , 'c2': 0.370137627792036 , 'd1': 3.33637420825941 , 'd2': 333.357824309903 }, + '162' : {'name' : 'MAGICC7', 'c1': 0.646363681680892 , 'c2': 0.353636318319108 , 'd1': 3.08493262313872 , 'd2': 243.847043193365 }, + '163' : {'name' : 'MAGICC7', 'c1': 0.647008613576647 , 'c2': 0.352991386423353 , 'd1': 2.43302142834344 , 'd2': 233.20564271639 }, + '164' : {'name' : 'MAGICC7', 'c1': 0.678136296448991 , 'c2': 0.321863703551009 , 'd1': 3.18945914351406 , 'd2': 333.943362169777 }, + '165' : {'name' : 'MAGICC7', 'c1': 0.710019949074086 , 'c2': 0.289980050925914 , 'd1': 6.29084601580743 , 'd2': 244.904788199915 }, + '166' : {'name' : 'MAGICC7', 'c1': 0.510547104077283 , 'c2': 0.489452895922717 , 'd1': 9.04645461314761 , 'd2': 420.409167933053 }, + '167' : {'name' : 'MAGICC7', 'c1': 0.510400280401205 , 'c2': 0.489599719598795 , 'd1': 9.13867055823351 , 'd2': 441.446372176112 }, + '168' : {'name' : 'MAGICC7', 'c1': 0.65581315711776 , 'c2': 0.34418684288224 , 'd1': 2.38994791990038 , 'd2': 237.41695526311 }, + '169' : {'name' : 'MAGICC7', 'c1': 0.591849309576962 , 'c2': 0.408150690423038 , 'd1': 6.59360669155492 , 'd2': 420.531851286359 }, + '170' : {'name' : 'MAGICC7', 'c1': 0.53183123782781 , 'c2': 0.46816876217219 , 'd1': 3.10450701841398 , 'd2': 236.812627882921 }, + '171' : {'name' : 'MAGICC7', 'c1': 0.635810039162014 , 'c2': 0.364189960837986 , 'd1': 2.49857102444178 , 'd2': 214.470077666462 }, + '172' : {'name' : 'MAGICC7', 'c1': 0.611325324449887 , 'c2': 0.388674675550113 , 'd1': 3.0589353482479 , 'd2': 252.899551661271 }, + '173' : {'name' : 'MAGICC7', 'c1': 0.676202761249067 , 'c2': 0.323797238750933 , 'd1': 5.34017121318216 , 'd2': 366.900593151687 }, + '174' : {'name' : 'MAGICC7', 'c1': 0.636851161565995 , 'c2': 0.363148838434005 , 'd1': 6.41270986975848 , 'd2': 218.104901877463 }, + '175' : {'name' : 'MAGICC7', 'c1': 0.681523413454526 , 'c2': 0.318476586545474 , 'd1': 2.21054625429302 , 'd2': 139.414251080759 }, + '176' : {'name' : 'MAGICC7', 'c1': 0.631321230217712 , 'c2': 0.368678769782288 , 'd1': 4.90291390501193 , 'd2': 350.642162740566 }, + '177' : {'name' : 'MAGICC7', 'c1': 0.53099323013627 , 'c2': 0.46900676986373 , 'd1': 7.6788338224101 , 'd2': 442.979340584705 }, + '178' : {'name' : 'MAGICC7', 'c1': 0.490116169900962 , 'c2': 0.509883830099038 , 'd1': 3.54503522897597 , 'd2': 285.783669946774 }, + '179' : {'name' : 'MAGICC7', 'c1': 0.640036569633804 , 'c2': 0.359963430366196 , 'd1': 2.52509299864462 , 'd2': 229.976379705262 }, + '180' : {'name' : 'MAGICC7', 'c1': 0.52613476851594 , 'c2': 0.473865231484061 , 'd1': 4.13168419598423 , 'd2': 424.453641936819 }, + '181' : {'name' : 'MAGICC7', 'c1': 0.630721016907296 , 'c2': 0.369278983092704 , 'd1': 2.53116683781671 , 'd2': 242.391362611823 }, + '182' : {'name' : 'MAGICC7', 'c1': 0.567412380545655 , 'c2': 0.432587619454345 , 'd1': 3.63853650121893 , 'd2': 316.58464345205 }, + '183' : {'name' : 'MAGICC7', 'c1': 0.599658635101668 , 'c2': 0.400341364898332 , 'd1': 3.55529648425961 , 'd2': 337.533887293177 }, + '184' : {'name' : 'MAGICC7', 'c1': 0.706425793407916 , 'c2': 0.293574206592084 , 'd1': 2.62501837302374 , 'd2': 145.397518463297 }, + '185' : {'name' : 'MAGICC7', 'c1': 0.642121616039605 , 'c2': 0.357878383960396 , 'd1': 3.98918018064605 , 'd2': 255.586540821328 }, + '186' : {'name' : 'MAGICC7', 'c1': 0.640866027557605 , 'c2': 0.359133972442395 , 'd1': 3.24008429844602 , 'd2': 241.217536733183 }, + '187' : {'name' : 'MAGICC7', 'c1': 0.582618093495747 , 'c2': 0.417381906504253 , 'd1': 2.47605380333363 , 'd2': 401.237332124343 }, + '188' : {'name' : 'MAGICC7', 'c1': 0.647487682119551 , 'c2': 0.35251231788045 , 'd1': 6.14584622590657 , 'd2': 263.265944955177 }, + '189' : {'name' : 'MAGICC7', 'c1': 0.606975330840776 , 'c2': 0.393024669159224 , 'd1': 6.56332021547791 , 'd2': 312.607977564457 }, + '190' : {'name' : 'MAGICC7', 'c1': 0.640640541051428 , 'c2': 0.359359458948572 , 'd1': 7.83897755385648 , 'd2': 225.657768443764 }, + '191' : {'name' : 'MAGICC7', 'c1': 0.653582205377249 , 'c2': 0.346417794622751 , 'd1': 2.63011071954573 , 'd2': 246.655475472965 }, + '192' : {'name' : 'MAGICC7', 'c1': 0.591928901914506 , 'c2': 0.408071098085494 , 'd1': 2.33682955436218 , 'd2': 216.40900817225 }, + '193' : {'name' : 'MAGICC7', 'c1': 0.638154239748005 , 'c2': 0.361845760251995 , 'd1': 4.67443555105923 , 'd2': 328.431106004154 }, + '194' : {'name' : 'MAGICC7', 'c1': 0.707429626944831 , 'c2': 0.292570373055169 , 'd1': 3.42460170504038 , 'd2': 209.755734109705 }, + '195' : {'name' : 'MAGICC7', 'c1': 0.670874124545314 , 'c2': 0.329125875454686 , 'd1': 5.27943801319 , 'd2': 272.326769654705 }, + '196' : {'name' : 'MAGICC7', 'c1': 0.627349588932705 , 'c2': 0.372650411067295 , 'd1': 6.38618374315885 , 'd2': 233.4906204373 }, + '197' : {'name' : 'MAGICC7', 'c1': 0.691740616046201 , 'c2': 0.308259383953799 , 'd1': 6.30778239452829 , 'd2': 216.173087323505 }, + '198' : {'name' : 'MAGICC7', 'c1': 0.570919497557262 , 'c2': 0.429080502442738 , 'd1': 7.82496181641612 , 'd2': 416.07034447995 }, + '199' : {'name' : 'MAGICC7', 'c1': 0.565582833367492 , 'c2': 0.434417166632508 , 'd1': 7.14218451033563 , 'd2': 429.635353949871 }, + '200' : {'name' : 'MAGICC7', 'c1': 0.613785671926408 , 'c2': 0.386214328073592 , 'd1': 2.98340735904278 , 'd2': 237.155106940153 }, + '201' : {'name' : 'MAGICC7', 'c1': 0.657771671228413 , 'c2': 0.342228328771587 , 'd1': 2.98096996436894 , 'd2': 214.766956988364 }, + '202' : {'name' : 'MAGICC7', 'c1': 0.628554827398646 , 'c2': 0.371445172601354 , 'd1': 3.59516784036886 , 'd2': 318.958459487098 }, + '203' : {'name' : 'MAGICC7', 'c1': 0.563881751448279 , 'c2': 0.436118248551722 , 'd1': 2.31016093740601 , 'd2': 139.191204133169 }, + '204' : {'name' : 'MAGICC7', 'c1': 0.710529568373128 , 'c2': 0.289470431626871 , 'd1': 2.96843114138217 , 'd2': 214.30627952383 }, + '205' : {'name' : 'MAGICC7', 'c1': 0.651561958976932 , 'c2': 0.348438041023068 , 'd1': 3.72018320545549 , 'd2': 354.846184262799 }, + '206' : {'name' : 'MAGICC7', 'c1': 0.64499499856188 , 'c2': 0.35500500143812 , 'd1': 2.22255170971556 , 'd2': 311.42976940397 }, + '207' : {'name' : 'MAGICC7', 'c1': 0.590153836341313 , 'c2': 0.409846163658687 , 'd1': 3.11022775256738 , 'd2': 235.993604584174 }, + '208' : {'name' : 'MAGICC7', 'c1': 0.728547736729724 , 'c2': 0.271452263270276 , 'd1': 2.9994569107603 , 'd2': 200.313643759929 }, + '209' : {'name' : 'MAGICC7', 'c1': 0.495485049155339 , 'c2': 0.504514950844661 , 'd1': 3.9864468970907 , 'd2': 435.94508217744 }, + '210' : {'name' : 'MAGICC7', 'c1': 0.600694231971385 , 'c2': 0.399305768028615 , 'd1': 4.26251703247075 , 'd2': 379.811738150606 }, + '211' : {'name' : 'MAGICC7', 'c1': 0.645913264649888 , 'c2': 0.354086735350112 , 'd1': 2.51367573099813 , 'd2': 249.427756579165 }, + '212' : {'name' : 'MAGICC7', 'c1': 0.665978313980636 , 'c2': 0.334021686019364 , 'd1': 3.31012010746102 , 'd2': 184.727439289661 }, + '213' : {'name' : 'MAGICC7', 'c1': 0.582160867469758 , 'c2': 0.417839132530242 , 'd1': 7.80302661635664 , 'd2': 300.419926094629 }, + '214' : {'name' : 'MAGICC7', 'c1': 0.447858692174444 , 'c2': 0.552141307825556 , 'd1': 4.53488243348323 , 'd2': 457.750103162542 }, + '215' : {'name' : 'MAGICC7', 'c1': 0.652077750098544 , 'c2': 0.347922249901456 , 'd1': 5.44131016559973 , 'd2': 202.826314690993 }, + '216' : {'name' : 'MAGICC7', 'c1': 0.66434190399812 , 'c2': 0.33565809600188 , 'd1': 3.64631585347507 , 'd2': 389.543750482386 }, + '217' : {'name' : 'MAGICC7', 'c1': 0.659344644698138 , 'c2': 0.340655355301863 , 'd1': 2.38260372415311 , 'd2': 134.662533636555 }, + '218' : {'name' : 'MAGICC7', 'c1': 0.585021244871331 , 'c2': 0.414978755128669 , 'd1': 2.82977251776014 , 'd2': 215.427636327949 }, + '219' : {'name' : 'MAGICC7', 'c1': 0.664854361939269 , 'c2': 0.335145638060731 , 'd1': 7.63284610895522 , 'd2': 280.750105499982 }, + '220' : {'name' : 'MAGICC7', 'c1': 0.753999110344277 , 'c2': 0.246000889655723 , 'd1': 4.16102778201362 , 'd2': 221.138553106711 }, + '221' : {'name' : 'MAGICC7', 'c1': 0.635287245251265 , 'c2': 0.364712754748735 , 'd1': 2.45443272432053 , 'd2': 195.270987121791 }, + '222' : {'name' : 'MAGICC7', 'c1': 0.662314626040138 , 'c2': 0.337685373959862 , 'd1': 3.9471668713385 , 'd2': 328.159156064981 }, + '223' : {'name' : 'MAGICC7', 'c1': 0.590370466150662 , 'c2': 0.409629533849338 , 'd1': 3.83104789883992 , 'd2': 258.692235077586 }, + '224' : {'name' : 'MAGICC7', 'c1': 0.61708957746434 , 'c2': 0.38291042253566 , 'd1': 3.31227272431773 , 'd2': 232.089151522882 }, + '225' : {'name' : 'MAGICC7', 'c1': 0.649263344229455 , 'c2': 0.350736655770545 , 'd1': 2.41304108485431 , 'd2': 129.013585232505 }, + '226' : {'name' : 'MAGICC7', 'c1': 0.578759127214986 , 'c2': 0.421240872785014 , 'd1': 3.81652298361882 , 'd2': 318.921549683237 }, + '227' : {'name' : 'MAGICC7', 'c1': 0.609687522308101 , 'c2': 0.390312477691899 , 'd1': 2.40948818740189 , 'd2': 133.113679172472 }, + '228' : {'name' : 'MAGICC7', 'c1': 0.64903412725866 , 'c2': 0.350965872741341 , 'd1': 5.92720438919779 , 'd2': 223.344476264372 }, + '229' : {'name' : 'MAGICC7', 'c1': 0.448901856340031 , 'c2': 0.551098143659969 , 'd1': 3.92183227981215 , 'd2': 478.033681556855 }, + '230' : {'name' : 'MAGICC7', 'c1': 0.587860568094745 , 'c2': 0.412139431905255 , 'd1': 6.61639607042594 , 'd2': 386.090597629055 }, + '231' : {'name' : 'MAGICC7', 'c1': 0.623483726303581 , 'c2': 0.376516273696419 , 'd1': 3.1780270206249 , 'd2': 268.994044100799 }, + '232' : {'name' : 'MAGICC7', 'c1': 0.573352507942702 , 'c2': 0.426647492057298 , 'd1': 9.9897982477286 , 'd2': 230.335242954804 }, + '233' : {'name' : 'MAGICC7', 'c1': 0.563428716374642 , 'c2': 0.436571283625357 , 'd1': 8.24096081684725 , 'd2': 336.971609132044 }, + '234' : {'name' : 'MAGICC7', 'c1': 0.680857155326887 , 'c2': 0.319142844673113 , 'd1': 2.70837469468931 , 'd2': 234.964896666338 }, + '235' : {'name' : 'MAGICC7', 'c1': 0.587351953951327 , 'c2': 0.412648046048673 , 'd1': 2.84519707706315 , 'd2': 245.348023377153 }, + '236' : {'name' : 'MAGICC7', 'c1': 0.687661450882031 , 'c2': 0.312338549117969 , 'd1': 5.16184322327101 , 'd2': 224.189457572722 }, + '237' : {'name' : 'MAGICC7', 'c1': 0.650929235691432 , 'c2': 0.349070764308569 , 'd1': 2.69376388830155 , 'd2': 231.397743832593 }, + '238' : {'name' : 'MAGICC7', 'c1': 0.593164735128167 , 'c2': 0.406835264871833 , 'd1': 3.08492466761129 , 'd2': 268.794115390812 }, + '239' : {'name' : 'MAGICC7', 'c1': 0.58311706756079 , 'c2': 0.416882932439211 , 'd1': 3.52033307698878 , 'd2': 388.066057354443 }, + '240' : {'name' : 'MAGICC7', 'c1': 0.606379776891961 , 'c2': 0.393620223108039 , 'd1': 3.70765409976921 , 'd2': 227.091639128993 }, + '241' : {'name' : 'MAGICC7', 'c1': 0.557804343099705 , 'c2': 0.442195656900295 , 'd1': 3.96748368295323 , 'd2': 320.089192412101 }, + '242' : {'name' : 'MAGICC7', 'c1': 0.632729046448526 , 'c2': 0.367270953551474 , 'd1': 5.84824845156819 , 'd2': 279.403991467632 }, + '243' : {'name' : 'MAGICC7', 'c1': 0.758603704934552 , 'c2': 0.241396295065448 , 'd1': 3.4392955191473 , 'd2': 245.982265449309 }, + '244' : {'name' : 'MAGICC7', 'c1': 0.609907921537294 , 'c2': 0.390092078462706 , 'd1': 3.73423197157535 , 'd2': 245.149441765587 }, + '245' : {'name' : 'MAGICC7', 'c1': 0.56185791949667 , 'c2': 0.43814208050333 , 'd1': 2.90352299137512 , 'd2': 139.217667747246 }, + '246' : {'name' : 'MAGICC7', 'c1': 0.598577330684473 , 'c2': 0.401422669315527 , 'd1': 5.3682232485659 , 'd2': 344.106845263865 }, + '247' : {'name' : 'MAGICC7', 'c1': 0.607344182111652 , 'c2': 0.392655817888348 , 'd1': 2.62389169004696 , 'd2': 283.695601480307 }, + '248' : {'name' : 'MAGICC7', 'c1': 0.623591064143261 , 'c2': 0.376408935856739 , 'd1': 5.40045337614848 , 'd2': 249.111975081926 }, + '249' : {'name' : 'MAGICC7', 'c1': 0.683686846722392 , 'c2': 0.316313153277608 , 'd1': 2.96440063907644 , 'd2': 238.919464465949 }, + '250' : {'name' : 'MAGICC7', 'c1': 0.638424480402024 , 'c2': 0.361575519597976 , 'd1': 5.80104746758792 , 'd2': 315.381730556726 }, + '251' : {'name' : 'MAGICC7', 'c1': 0.68455638291789 , 'c2': 0.31544361708211 , 'd1': 3.09483906080617 , 'd2': 207.84127472011 }, + '252' : {'name' : 'MAGICC7', 'c1': 0.515196312895118 , 'c2': 0.484803687104883 , 'd1': 10.5940638863467 , 'd2': 351.786027772497 }, + '253' : {'name' : 'MAGICC7', 'c1': 0.596897498064107 , 'c2': 0.403102501935894 , 'd1': 2.89110191007459 , 'd2': 247.775186079363 }, + '254' : {'name' : 'MAGICC7', 'c1': 0.683230767826907 , 'c2': 0.316769232173093 , 'd1': 2.63975529552365 , 'd2': 229.820735256554 }, + '255' : {'name' : 'MAGICC7', 'c1': 0.591532161801958 , 'c2': 0.408467838198042 , 'd1': 2.72148055072192 , 'd2': 231.659228643359 }, + '256' : {'name' : 'MAGICC7', 'c1': 0.67008217827117 , 'c2': 0.32991782172883 , 'd1': 5.34858493048079 , 'd2': 231.357600588157 }, + '257' : {'name' : 'MAGICC7', 'c1': 0.741393928341789 , 'c2': 0.258606071658211 , 'd1': 4.27523650564374 , 'd2': 203.713232471163 }, + '258' : {'name' : 'MAGICC7', 'c1': 0.564737841018723 , 'c2': 0.435262158981277 , 'd1': 4.62305343750736 , 'd2': 417.315092838927 }, + '259' : {'name' : 'MAGICC7', 'c1': 0.703953877534876 , 'c2': 0.296046122465124 , 'd1': 3.0979356333169 , 'd2': 262.455202460091 }, + '260' : {'name' : 'MAGICC7', 'c1': 0.54514350273477 , 'c2': 0.45485649726523 , 'd1': 10.6054717285052 , 'd2': 322.288119960084 }, + '261' : {'name' : 'MAGICC7', 'c1': 0.567338662674005 , 'c2': 0.432661337325995 , 'd1': 4.14530944739375 , 'd2': 412.596980647105 }, + '262' : {'name' : 'MAGICC7', 'c1': 0.563671094495322 , 'c2': 0.436328905504678 , 'd1': 4.28945371463681 , 'd2': 254.994336371501 }, + '263' : {'name' : 'MAGICC7', 'c1': 0.626398504703098 , 'c2': 0.373601495296902 , 'd1': 3.35977172879653 , 'd2': 334.620553055918 }, + '264' : {'name' : 'MAGICC7', 'c1': 0.633478561017898 , 'c2': 0.366521438982102 , 'd1': 3.54771457685478 , 'd2': 323.212793828153 }, + '265' : {'name' : 'MAGICC7', 'c1': 0.613880769207383 , 'c2': 0.386119230792617 , 'd1': 3.13062755301878 , 'd2': 337.730967500795 }, + '266' : {'name' : 'MAGICC7', 'c1': 0.678909340864747 , 'c2': 0.321090659135253 , 'd1': 3.15625798695646 , 'd2': 192.036334064381 }, + '267' : {'name' : 'MAGICC7', 'c1': 0.67725150464285 , 'c2': 0.32274849535715 , 'd1': 3.19624231405962 , 'd2': 332.79292564186 }, + '268' : {'name' : 'MAGICC7', 'c1': 0.736443851594536 , 'c2': 0.263556148405464 , 'd1': 3.63297775392119 , 'd2': 270.857507607523 }, + '269' : {'name' : 'MAGICC7', 'c1': 0.539228455158479 , 'c2': 0.460771544841521 , 'd1': 2.66659944579458 , 'd2': 255.220216977055 }, + '270' : {'name' : 'MAGICC7', 'c1': 0.619573770326182 , 'c2': 0.380426229673818 , 'd1': 3.33097460320727 , 'd2': 249.762141474238 }, + '271' : {'name' : 'MAGICC7', 'c1': 0.605156715366777 , 'c2': 0.394843284633223 , 'd1': 9.0971284766852 , 'd2': 295.887308108879 }, + '272' : {'name' : 'MAGICC7', 'c1': 0.48367814854804 , 'c2': 0.51632185145196 , 'd1': 10.3129017332684 , 'd2': 474.663674262856 }, + '273' : {'name' : 'MAGICC7', 'c1': 0.666655529177165 , 'c2': 0.333344470822835 , 'd1': 4.88800593040523 , 'd2': 290.285196034427 }, + '274' : {'name' : 'MAGICC7', 'c1': 0.635886740575331 , 'c2': 0.364113259424669 , 'd1': 2.82279684431038 , 'd2': 255.655857245491 }, + '275' : {'name' : 'MAGICC7', 'c1': 0.580969254736529 , 'c2': 0.419030745263471 , 'd1': 3.30003504024737 , 'd2': 361.340538989473 }, + '276' : {'name' : 'MAGICC7', 'c1': 0.672080486065269 , 'c2': 0.327919513934731 , 'd1': 4.20967941443647 , 'd2': 256.648258218321 }, + '277' : {'name' : 'MAGICC7', 'c1': 0.512653904338117 , 'c2': 0.487346095661883 , 'd1': 12.794851023763 , 'd2': 349.788358458601 }, + '278' : {'name' : 'MAGICC7', 'c1': 0.627552109011605 , 'c2': 0.372447890988395 , 'd1': 3.74880750124626 , 'd2': 220.888096476688 }, + '279' : {'name' : 'MAGICC7', 'c1': 0.683046777935961 , 'c2': 0.316953222064039 , 'd1': 2.93939646766964 , 'd2': 274.761176375352 }, + '280' : {'name' : 'MAGICC7', 'c1': 0.626234984980455 , 'c2': 0.373765015019545 , 'd1': 5.72530363520083 , 'd2': 248.560409758687 }, + '281' : {'name' : 'MAGICC7', 'c1': 0.633605886008806 , 'c2': 0.366394113991195 , 'd1': 3.86622878222562 , 'd2': 359.49435324179 }, + '282' : {'name' : 'MAGICC7', 'c1': 0.572827472936903 , 'c2': 0.427172527063097 , 'd1': 5.99771598060069 , 'd2': 343.789535133455 }, + '283' : {'name' : 'MAGICC7', 'c1': 0.606726362442785 , 'c2': 0.393273637557215 , 'd1': 3.39516619353376 , 'd2': 259.922373859127 }, + '284' : {'name' : 'MAGICC7', 'c1': 0.674700989141311 , 'c2': 0.325299010858689 , 'd1': 4.38780212623574 , 'd2': 140.596850176201 }, + '285' : {'name' : 'MAGICC7', 'c1': 0.586075508064671 , 'c2': 0.413924491935329 , 'd1': 3.0702855465173 , 'd2': 351.541439809129 }, + '286' : {'name' : 'MAGICC7', 'c1': 0.579715782073231 , 'c2': 0.42028421792677 , 'd1': 3.70951509614175 , 'd2': 352.742921579777 }, + '287' : {'name' : 'MAGICC7', 'c1': 0.736985944718022 , 'c2': 0.263014055281979 , 'd1': 3.28254361232768 , 'd2': 207.080127987194 }, + '288' : {'name' : 'MAGICC7', 'c1': 0.693734109520468 , 'c2': 0.306265890479532 , 'd1': 3.21939949815639 , 'd2': 314.752656349317 }, + '289' : {'name' : 'MAGICC7', 'c1': 0.649706989334459 , 'c2': 0.350293010665541 , 'd1': 6.43961819545406 , 'd2': 323.954584048828 }, + '290' : {'name' : 'MAGICC7', 'c1': 0.689451675058578 , 'c2': 0.310548324941422 , 'd1': 3.54545881355675 , 'd2': 313.525105339338 }, + '291' : {'name' : 'MAGICC7', 'c1': 0.590068655971317 , 'c2': 0.409931344028683 , 'd1': 3.50937134194332 , 'd2': 368.854881104975 }, + '292' : {'name' : 'MAGICC7', 'c1': 0.565044849819509 , 'c2': 0.434955150180491 , 'd1': 2.97635999799714 , 'd2': 324.525547899473 }, + '293' : {'name' : 'MAGICC7', 'c1': 0.654144925845382 , 'c2': 0.345855074154618 , 'd1': 7.85578688655898 , 'd2': 274.06105130027 }, + '294' : {'name' : 'MAGICC7', 'c1': 0.661514120261705 , 'c2': 0.338485879738295 , 'd1': 7.47492837856719 , 'd2': 226.429439663077 }, + '295' : {'name' : 'MAGICC7', 'c1': 0.583249848664301 , 'c2': 0.416750151335699 , 'd1': 3.51686049289201 , 'd2': 385.405812781625 }, + '296' : {'name' : 'MAGICC7', 'c1': 0.628586196684859 , 'c2': 0.371413803315141 , 'd1': 2.79560055146652 , 'd2': 300.472940786535 }, + '297' : {'name' : 'MAGICC7', 'c1': 0.569055781533636 , 'c2': 0.430944218466364 , 'd1': 4.22099305011599 , 'd2': 353.503565687679 }, + '298' : {'name' : 'MAGICC7', 'c1': 0.676807912928812 , 'c2': 0.323192087071188 , 'd1': 6.50227604779621 , 'd2': 283.264168539943 }, + '299' : {'name' : 'MAGICC7', 'c1': 0.708989289451191 , 'c2': 0.291010710548809 , 'd1': 2.59703561448422 , 'd2': 208.937094919009 }, + '300' : {'name' : 'MAGICC7', 'c1': 0.731296480463399 , 'c2': 0.268703519536601 , 'd1': 5.48833109543555 , 'd2': 238.875222178548 }, + '301' : {'name' : 'MAGICC7', 'c1': 0.63057761032581 , 'c2': 0.36942238967419 , 'd1': 2.91360819615885 , 'd2': 246.903398730202 }, + '302' : {'name' : 'MAGICC7', 'c1': 0.631859977013507 , 'c2': 0.368140022986493 , 'd1': 2.94952986822805 , 'd2': 257.082591225813 }, + '303' : {'name' : 'MAGICC7', 'c1': 0.555494639197895 , 'c2': 0.444505360802105 , 'd1': 9.02688984372814 , 'd2': 383.273196352418 }, + '304' : {'name' : 'MAGICC7', 'c1': 0.582938429048341 , 'c2': 0.417061570951659 , 'd1': 6.51571372900314 , 'd2': 345.384284378154 }, + '305' : {'name' : 'MAGICC7', 'c1': 0.649687909401657 , 'c2': 0.350312090598343 , 'd1': 2.5215968067218 , 'd2': 215.097509411414 }, + '306' : {'name' : 'MAGICC7', 'c1': 0.64631013905589 , 'c2': 0.353689860944111 , 'd1': 6.49111257072515 , 'd2': 278.404576348063 }, + '307' : {'name' : 'MAGICC7', 'c1': 0.693488508654308 , 'c2': 0.306511491345692 , 'd1': 3.06055573527793 , 'd2': 206.463820432615 }, + '308' : {'name' : 'MAGICC7', 'c1': 0.621177121723036 , 'c2': 0.378822878276965 , 'd1': 3.82992064935593 , 'd2': 292.361312142946 }, + '309' : {'name' : 'MAGICC7', 'c1': 0.586809098969382 , 'c2': 0.413190901030618 , 'd1': 2.81766395588875 , 'd2': 201.878575616688 }, + '310' : {'name' : 'MAGICC7', 'c1': 0.623165027794962 , 'c2': 0.376834972205038 , 'd1': 8.53305301678775 , 'd2': 363.174065877724 }, + '311' : {'name' : 'MAGICC7', 'c1': 0.625681535662522 , 'c2': 0.374318464337478 , 'd1': 3.01950742022329 , 'd2': 239.609579986441 }, + '312' : {'name' : 'MAGICC7', 'c1': 0.589614619221283 , 'c2': 0.410385380778717 , 'd1': 8.43228024111693 , 'd2': 319.249292906978 }, + '313' : {'name' : 'MAGICC7', 'c1': 0.675096006849603 , 'c2': 0.324903993150398 , 'd1': 3.09837970024254 , 'd2': 244.593058729233 }, + '314' : {'name' : 'MAGICC7', 'c1': 0.67095711529943 , 'c2': 0.32904288470057 , 'd1': 2.31140200513679 , 'd2': 207.244117510933 }, + '315' : {'name' : 'MAGICC7', 'c1': 0.743834464800659 , 'c2': 0.256165535199341 , 'd1': 2.48668074914758 , 'd2': 195.516949826119 }, + '316' : {'name' : 'MAGICC7', 'c1': 0.713151451517586 , 'c2': 0.286848548482414 , 'd1': 2.36613162557101 , 'd2': 221.654964438217 }, + '317' : {'name' : 'MAGICC7', 'c1': 0.618772744101539 , 'c2': 0.381227255898461 , 'd1': 6.70430877418732 , 'd2': 226.394602491471 }, + '318' : {'name' : 'MAGICC7', 'c1': 0.618239560687498 , 'c2': 0.381760439312502 , 'd1': 2.52199543861052 , 'd2': 239.009240542472 }, + '319' : {'name' : 'MAGICC7', 'c1': 0.661349506314117 , 'c2': 0.338650493685883 , 'd1': 2.78743331293578 , 'd2': 250.509401099429 }, + '320' : {'name' : 'MAGICC7', 'c1': 0.611159175741036 , 'c2': 0.388840824258964 , 'd1': 3.50713801767273 , 'd2': 305.819154476851 }, + '321' : {'name' : 'MAGICC7', 'c1': 0.715498533843311 , 'c2': 0.284501466156689 , 'd1': 2.37045093385284 , 'd2': 249.95660992465 }, + '322' : {'name' : 'MAGICC7', 'c1': 0.637668000930883 , 'c2': 0.362331999069117 , 'd1': 5.99191643794132 , 'd2': 240.781831285817 }, + '323' : {'name' : 'MAGICC7', 'c1': 0.670467350683539 , 'c2': 0.329532649316461 , 'd1': 2.88344542776667 , 'd2': 236.413415983308 }, + '324' : {'name' : 'MAGICC7', 'c1': 0.618046702424658 , 'c2': 0.381953297575342 , 'd1': 2.67636212548381 , 'd2': 259.028429041668 }, + '325' : {'name' : 'MAGICC7', 'c1': 0.558688268107475 , 'c2': 0.441311731892525 , 'd1': 7.63443831157963 , 'd2': 367.50649266011 }, + '326' : {'name' : 'MAGICC7', 'c1': 0.684273826329285 , 'c2': 0.315726173670715 , 'd1': 3.9873053979602 , 'd2': 262.587717524663 }, + '327' : {'name' : 'MAGICC7', 'c1': 0.615075138650833 , 'c2': 0.384924861349167 , 'd1': 2.55115769146215 , 'd2': 288.881042611466 }, + '328' : {'name' : 'MAGICC7', 'c1': 0.637016670403052 , 'c2': 0.362983329596948 , 'd1': 5.96409048343329 , 'd2': 288.114495625992 }, + '329' : {'name' : 'MAGICC7', 'c1': 0.620447839005613 , 'c2': 0.379552160994387 , 'd1': 2.51159279078264 , 'd2': 129.602536081496 }, + '330' : {'name' : 'MAGICC7', 'c1': 0.653783505739275 , 'c2': 0.346216494260725 , 'd1': 3.32631176722813 , 'd2': 205.172275759653 }, + '331' : {'name' : 'MAGICC7', 'c1': 0.685315835762908 , 'c2': 0.314684164237092 , 'd1': 2.78297071038226 , 'd2': 244.941395838041 }, + '332' : {'name' : 'MAGICC7', 'c1': 0.518345522293108 , 'c2': 0.481654477706892 , 'd1': 4.67585823905988 , 'd2': 395.563082836385 }, + '333' : {'name' : 'MAGICC7', 'c1': 0.612050008133669 , 'c2': 0.387949991866331 , 'd1': 2.26488917407238 , 'd2': 128.447021159168 }, + '334' : {'name' : 'MAGICC7', 'c1': 0.690580237607604 , 'c2': 0.309419762392396 , 'd1': 2.96899078026044 , 'd2': 210.092291747807 }, + '335' : {'name' : 'MAGICC7', 'c1': 0.659585457027819 , 'c2': 0.340414542972181 , 'd1': 5.23408557005333 , 'd2': 248.463293706789 }, + '336' : {'name' : 'MAGICC7', 'c1': 0.758948957045435 , 'c2': 0.241051042954565 , 'd1': 3.40828371228313 , 'd2': 196.670138143972 }, + '337' : {'name' : 'MAGICC7', 'c1': 0.655944770360933 , 'c2': 0.344055229639067 , 'd1': 3.17445117018193 , 'd2': 329.41425261015 }, + '338' : {'name' : 'MAGICC7', 'c1': 0.690536816306853 , 'c2': 0.309463183693147 , 'd1': 3.31557494137849 , 'd2': 184.289491723581 }, + '339' : {'name' : 'MAGICC7', 'c1': 0.703524696561491 , 'c2': 0.296475303438509 , 'd1': 6.60942049289224 , 'd2': 236.201492605183 }, + '340' : {'name' : 'MAGICC7', 'c1': 0.693086588844659 , 'c2': 0.306913411155342 , 'd1': 3.9351869606701 , 'd2': 217.873150971237 }, + '341' : {'name' : 'MAGICC7', 'c1': 0.613714385886257 , 'c2': 0.386285614113743 , 'd1': 3.53608265174563 , 'd2': 343.084010526758 }, + '342' : {'name' : 'MAGICC7', 'c1': 0.683709142325464 , 'c2': 0.316290857674536 , 'd1': 3.05943778934585 , 'd2': 244.540553939782 }, + '343' : {'name' : 'MAGICC7', 'c1': 0.588056647219092 , 'c2': 0.411943352780909 , 'd1': 9.2811626817422 , 'd2': 404.305331165449 }, + '344' : {'name' : 'MAGICC7', 'c1': 0.642392164841816 , 'c2': 0.357607835158184 , 'd1': 3.5479939838415 , 'd2': 190.750762618271 }, + '345' : {'name' : 'MAGICC7', 'c1': 0.660163317823675 , 'c2': 0.339836682176325 , 'd1': 7.5988201538459 , 'd2': 229.353138808044 }, + '346' : {'name' : 'MAGICC7', 'c1': 0.596565941415506 , 'c2': 0.403434058584494 , 'd1': 8.24151288970046 , 'd2': 374.003308502609 }, + '347' : {'name' : 'MAGICC7', 'c1': 0.725908025660422 , 'c2': 0.274091974339578 , 'd1': 3.16540673525806 , 'd2': 212.863952063478 }, + '348' : {'name' : 'MAGICC7', 'c1': 0.693030605398742 , 'c2': 0.306969394601258 , 'd1': 3.16532525816533 , 'd2': 143.925366779861 }, + '349' : {'name' : 'MAGICC7', 'c1': 0.670447179751963 , 'c2': 0.329552820248037 , 'd1': 3.33761834344783 , 'd2': 226.17776264628 }, + '350' : {'name' : 'MAGICC7', 'c1': 0.721611686069586 , 'c2': 0.278388313930414 , 'd1': 3.69223105731011 , 'd2': 173.434393906555 }, + '351' : {'name' : 'MAGICC7', 'c1': 0.647096304723243 , 'c2': 0.352903695276757 , 'd1': 3.86633309083339 , 'd2': 387.083273891291 }, + '352' : {'name' : 'MAGICC7', 'c1': 0.661139706170971 , 'c2': 0.338860293829029 , 'd1': 6.44617436896825 , 'd2': 312.767138052467 }, + '353' : {'name' : 'MAGICC7', 'c1': 0.593450904313136 , 'c2': 0.406549095686864 , 'd1': 6.52959153144351 , 'd2': 340.827340897786 }, + '354' : {'name' : 'MAGICC7', 'c1': 0.607605466271486 , 'c2': 0.392394533728514 , 'd1': 3.77761802709295 , 'd2': 396.121185945025 }, + '355' : {'name' : 'MAGICC7', 'c1': 0.687865616712469 , 'c2': 0.312134383287531 , 'd1': 5.00226164753224 , 'd2': 240.858581170117 }, + '356' : {'name' : 'MAGICC7', 'c1': 0.664511069077028 , 'c2': 0.335488930922972 , 'd1': 5.25704393917926 , 'd2': 231.350706704519 }, + '357' : {'name' : 'MAGICC7', 'c1': 0.66472090682889 , 'c2': 0.33527909317111 , 'd1': 3.52148530896914 , 'd2': 272.675207476158 }, + '358' : {'name' : 'MAGICC7', 'c1': 0.546190591044867 , 'c2': 0.453809408955133 , 'd1': 5.9987321732794 , 'd2': 425.735047408596 }, + '359' : {'name' : 'MAGICC7', 'c1': 0.633842249285448 , 'c2': 0.366157750714552 , 'd1': 3.8939661020321 , 'd2': 315.885777331856 }, + '360' : {'name' : 'MAGICC7', 'c1': 0.646070285728401 , 'c2': 0.353929714271599 , 'd1': 3.08400073253954 , 'd2': 131.947644867015 }, + '361' : {'name' : 'MAGICC7', 'c1': 0.545221437575703 , 'c2': 0.454778562424297 , 'd1': 2.41789253515974 , 'd2': 143.786252334343 }, + '362' : {'name' : 'MAGICC7', 'c1': 0.621422839468582 , 'c2': 0.378577160531419 , 'd1': 3.33745929535958 , 'd2': 255.563650519781 }, + '363' : {'name' : 'MAGICC7', 'c1': 0.617206128517957 , 'c2': 0.382793871482043 , 'd1': 7.29881142955813 , 'd2': 253.353457326934 }, + '364' : {'name' : 'MAGICC7', 'c1': 0.670085039682806 , 'c2': 0.329914960317194 , 'd1': 3.05547269750128 , 'd2': 262.03106299907 }, + '365' : {'name' : 'MAGICC7', 'c1': 0.702089550402048 , 'c2': 0.297910449597953 , 'd1': 2.50691489440882 , 'd2': 135.315977524196 }, + '366' : {'name' : 'MAGICC7', 'c1': 0.644871026962871 , 'c2': 0.355128973037129 , 'd1': 3.28280962554659 , 'd2': 247.134802705571 }, + '367' : {'name' : 'MAGICC7', 'c1': 0.688660877655045 , 'c2': 0.311339122344955 , 'd1': 3.74115486892446 , 'd2': 355.012368583999 }, + '368' : {'name' : 'MAGICC7', 'c1': 0.769975157727764 , 'c2': 0.230024842272237 , 'd1': 3.66357105764585 , 'd2': 258.126339896322 }, + '369' : {'name' : 'MAGICC7', 'c1': 0.540411383687216 , 'c2': 0.459588616312784 , 'd1': 3.46156779598278 , 'd2': 345.260744825127 }, + '370' : {'name' : 'MAGICC7', 'c1': 0.556379034213496 , 'c2': 0.443620965786504 , 'd1': 7.77038227538746 , 'd2': 430.159618675597 }, + '371' : {'name' : 'MAGICC7', 'c1': 0.675504108529944 , 'c2': 0.324495891470056 , 'd1': 2.56004464189531 , 'd2': 215.454914536573 }, + '372' : {'name' : 'MAGICC7', 'c1': 0.4885392895939 , 'c2': 0.5114607104061 , 'd1': 9.67302641938637 , 'd2': 397.432675621394 }, + '373' : {'name' : 'MAGICC7', 'c1': 0.683012857162859 , 'c2': 0.316987142837141 , 'd1': 3.46451985842501 , 'd2': 309.358339414448 }, + '374' : {'name' : 'MAGICC7', 'c1': 0.654240880746424 , 'c2': 0.345759119253576 , 'd1': 3.54681259395071 , 'd2': 332.106874014212 }, + '375' : {'name' : 'MAGICC7', 'c1': 0.681366920191282 , 'c2': 0.318633079808718 , 'd1': 4.30532680094996 , 'd2': 231.548685276304 }, + '376' : {'name' : 'MAGICC7', 'c1': 0.645745457896007 , 'c2': 0.354254542103993 , 'd1': 3.08952292091637 , 'd2': 290.546910930767 }, + '377' : {'name' : 'MAGICC7', 'c1': 0.628617055012811 , 'c2': 0.37138294498719 , 'd1': 2.96209512431107 , 'd2': 306.527375697357 }, + '378' : {'name' : 'MAGICC7', 'c1': 0.545196088084276 , 'c2': 0.454803911915724 , 'd1': 3.97667632336896 , 'd2': 323.192112861558 }, + '379' : {'name' : 'MAGICC7', 'c1': 0.613977118629122 , 'c2': 0.386022881370878 , 'd1': 3.16601529827203 , 'd2': 241.769009242894 }, + '380' : {'name' : 'MAGICC7', 'c1': 0.640899945000156 , 'c2': 0.359100054999845 , 'd1': 5.55699167537467 , 'd2': 303.548411753897 }, + '381' : {'name' : 'MAGICC7', 'c1': 0.718156878088236 , 'c2': 0.281843121911764 , 'd1': 3.116117032961 , 'd2': 242.377490160893 }, + '382' : {'name' : 'MAGICC7', 'c1': 0.532094983489162 , 'c2': 0.467905016510838 , 'd1': 3.76904058599588 , 'd2': 291.07221015835 }, + '383' : {'name' : 'MAGICC7', 'c1': 0.509820315662003 , 'c2': 0.490179684337997 , 'd1': 4.2727970257939 , 'd2': 477.65853820402 }, + '384' : {'name' : 'MAGICC7', 'c1': 0.712029574212813 , 'c2': 0.287970425787187 , 'd1': 3.4147147449414 , 'd2': 286.473344493824 }, + '385' : {'name' : 'MAGICC7', 'c1': 0.673903747413405 , 'c2': 0.326096252586595 , 'd1': 3.36047542803879 , 'd2': 205.849943584644 }, + '386' : {'name' : 'MAGICC7', 'c1': 0.59908615624308 , 'c2': 0.400913843756921 , 'd1': 2.12566553510196 , 'd2': 132.036953501028 }, + '387' : {'name' : 'MAGICC7', 'c1': 0.655947139787592 , 'c2': 0.344052860212408 , 'd1': 6.0933432875104 , 'd2': 197.467987225189 }, + '388' : {'name' : 'MAGICC7', 'c1': 0.643486813497658 , 'c2': 0.356513186502342 , 'd1': 7.55362574089111 , 'd2': 210.326396208779 }, + '389' : {'name' : 'MAGICC7', 'c1': 0.695225518154489 , 'c2': 0.304774481845511 , 'd1': 3.88118357553257 , 'd2': 219.554852845668 }, + '390' : {'name' : 'MAGICC7', 'c1': 0.582098560190663 , 'c2': 0.417901439809337 , 'd1': 7.80421183260757 , 'd2': 374.536008661313 }, + '391' : {'name' : 'MAGICC7', 'c1': 0.605795079575836 , 'c2': 0.394204920424164 , 'd1': 9.07010487838193 , 'd2': 369.235216242809 }, + '392' : {'name' : 'MAGICC7', 'c1': 0.609199993426894 , 'c2': 0.390800006573106 , 'd1': 7.88677809802474 , 'd2': 254.48461880014 }, + '393' : {'name' : 'MAGICC7', 'c1': 0.730069131754471 , 'c2': 0.269930868245529 , 'd1': 3.57945658009672 , 'd2': 214.641165616712 }, + '394' : {'name' : 'MAGICC7', 'c1': 0.684877700460154 , 'c2': 0.315122299539846 , 'd1': 2.82369033741411 , 'd2': 242.000448946647 }, + '395' : {'name' : 'MAGICC7', 'c1': 0.621516848958686 , 'c2': 0.378483151041314 , 'd1': 2.96684466137715 , 'd2': 251.497884388891 }, + '396' : {'name' : 'MAGICC7', 'c1': 0.664756970004485 , 'c2': 0.335243029995515 , 'd1': 2.43141200025799 , 'd2': 135.035049124945 }, + '397' : {'name' : 'MAGICC7', 'c1': 0.63686595083349 , 'c2': 0.36313404916651 , 'd1': 3.90214364596771 , 'd2': 310.086075249933 }, + '398' : {'name' : 'MAGICC7', 'c1': 0.702869426555476 , 'c2': 0.297130573444524 , 'd1': 5.72901975008374 , 'd2': 218.178860844955 }, + '399' : {'name' : 'MAGICC7', 'c1': 0.673612926471866 , 'c2': 0.326387073528135 , 'd1': 9.47126285592879 , 'd2': 266.898372813952 }, + '400' : {'name' : 'MAGICC7', 'c1': 0.664364187791623 , 'c2': 0.335635812208377 , 'd1': 3.46254681915616 , 'd2': 242.511775097562 }, + '401' : {'name' : 'MAGICC7', 'c1': 0.670414956426145 , 'c2': 0.329585043573855 , 'd1': 2.65588928565131 , 'd2': 242.780947787944 }, + '402' : {'name' : 'MAGICC7', 'c1': 0.577661517058217 , 'c2': 0.422338482941783 , 'd1': 3.18641937940879 , 'd2': 486.449334832652 }, + '403' : {'name' : 'MAGICC7', 'c1': 0.710319942938303 , 'c2': 0.289680057061697 , 'd1': 3.09973880260799 , 'd2': 202.015838373864 }, + '404' : {'name' : 'MAGICC7', 'c1': 0.741050677996964 , 'c2': 0.258949322003036 , 'd1': 3.61147825184574 , 'd2': 232.89519039456 }, + '405' : {'name' : 'MAGICC7', 'c1': 0.629153616909515 , 'c2': 0.370846383090485 , 'd1': 3.08935070366999 , 'd2': 249.521151083237 }, + '406' : {'name' : 'MAGICC7', 'c1': 0.574287761775452 , 'c2': 0.425712238224548 , 'd1': 6.52973280369761 , 'd2': 337.025058390756 }, + '407' : {'name' : 'MAGICC7', 'c1': 0.628878439952018 , 'c2': 0.371121560047982 , 'd1': 6.84750741187182 , 'd2': 223.845927985278 }, + '408' : {'name' : 'MAGICC7', 'c1': 0.707050921380334 , 'c2': 0.292949078619666 , 'd1': 5.30869219155876 , 'd2': 214.269697360838 }, + '409' : {'name' : 'MAGICC7', 'c1': 0.592605001490216 , 'c2': 0.407394998509784 , 'd1': 3.18099842840916 , 'd2': 375.284489465271 }, + '410' : {'name' : 'MAGICC7', 'c1': 0.699920582854801 , 'c2': 0.300079417145199 , 'd1': 2.84410619747649 , 'd2': 202.515883705543 }, + '411' : {'name' : 'MAGICC7', 'c1': 0.451070370965295 , 'c2': 0.548929629034705 , 'd1': 3.08570941479926 , 'd2': 172.477668164475 }, + '412' : {'name' : 'MAGICC7', 'c1': 0.704487518551675 , 'c2': 0.295512481448325 , 'd1': 4.87518463213906 , 'd2': 280.162292101944 }, + '413' : {'name' : 'MAGICC7', 'c1': 0.615017832228012 , 'c2': 0.384982167771987 , 'd1': 3.69770346081949 , 'd2': 218.788204905931 }, + '414' : {'name' : 'MAGICC7', 'c1': 0.650297114513077 , 'c2': 0.349702885486923 , 'd1': 2.95423673297724 , 'd2': 236.437924061105 }, + '415' : {'name' : 'MAGICC7', 'c1': 0.586703410857822 , 'c2': 0.413296589142178 , 'd1': 3.57099112356484 , 'd2': 261.49371434658 }, + '416' : {'name' : 'MAGICC7', 'c1': 0.578644311122031 , 'c2': 0.42135568887797 , 'd1': 3.80557622673254 , 'd2': 357.081566472156 }, + '417' : {'name' : 'MAGICC7', 'c1': 0.53815456032818 , 'c2': 0.46184543967182 , 'd1': 9.46336741138948 , 'd2': 276.26545200947 }, + '418' : {'name' : 'MAGICC7', 'c1': 0.568849893040646 , 'c2': 0.431150106959354 , 'd1': 4.11894242725394 , 'd2': 335.424480630856 }, + '419' : {'name' : 'MAGICC7', 'c1': 0.630447654696638 , 'c2': 0.369552345303362 , 'd1': 3.19315642347594 , 'd2': 362.500550730121 }, + '420' : {'name' : 'MAGICC7', 'c1': 0.670055922765427 , 'c2': 0.329944077234573 , 'd1': 5.39102751980088 , 'd2': 245.636023639818 }, + '421' : {'name' : 'MAGICC7', 'c1': 0.541538235088723 , 'c2': 0.458461764911277 , 'd1': 2.539050647466 , 'd2': 144.643449805574 }, + '422' : {'name' : 'MAGICC7', 'c1': 0.52466028678011 , 'c2': 0.47533971321989 , 'd1': 5.59622242209489 , 'd2': 423.944270629528 }, + '423' : {'name' : 'MAGICC7', 'c1': 0.713148430563968 , 'c2': 0.286851569436033 , 'd1': 3.93303912965269 , 'd2': 182.875749072328 }, + '424' : {'name' : 'MAGICC7', 'c1': 0.637415707518643 , 'c2': 0.362584292481357 , 'd1': 6.36532015060148 , 'd2': 254.433664205498 }, + '425' : {'name' : 'MAGICC7', 'c1': 0.501650255860724 , 'c2': 0.498349744139276 , 'd1': 7.30971927041779 , 'd2': 330.618191960712 }, + '426' : {'name' : 'MAGICC7', 'c1': 0.671681001839566 , 'c2': 0.328318998160434 , 'd1': 7.66011993182762 , 'd2': 233.465370862569 }, + '427' : {'name' : 'MAGICC7', 'c1': 0.675836383764543 , 'c2': 0.324163616235457 , 'd1': 3.41166567017455 , 'd2': 215.014174678284 }, + '428' : {'name' : 'MAGICC7', 'c1': 0.557204947683185 , 'c2': 0.442795052316815 , 'd1': 4.32139797633956 , 'd2': 528.891820367641 }, + '429' : {'name' : 'MAGICC7', 'c1': 0.763426888841884 , 'c2': 0.236573111158116 , 'd1': 4.0146813425841 , 'd2': 373.251877632366 }, + '430' : {'name' : 'MAGICC7', 'c1': 0.660294925779291 , 'c2': 0.339705074220709 , 'd1': 4.82501469043532 , 'd2': 137.707909625615 }, + '431' : {'name' : 'MAGICC7', 'c1': 0.559493526454192 , 'c2': 0.440506473545808 , 'd1': 4.00287105185586 , 'd2': 384.939891972123 }, + '432' : {'name' : 'MAGICC7', 'c1': 0.659433717064599 , 'c2': 0.340566282935401 , 'd1': 4.82948158310767 , 'd2': 139.150135910112 }, + '433' : {'name' : 'MAGICC7', 'c1': 0.509913058867281 , 'c2': 0.49008694113272 , 'd1': 9.18019186168945 , 'd2': 433.081233624885 }, + '434' : {'name' : 'MAGICC7', 'c1': 0.685504640330125 , 'c2': 0.314495359669875 , 'd1': 2.77673652936033 , 'd2': 272.605338764589 }, + '435' : {'name' : 'MAGICC7', 'c1': 0.643029289349985 , 'c2': 0.356970710650015 , 'd1': 3.41129045531003 , 'd2': 338.058025523832 }, + '436' : {'name' : 'MAGICC7', 'c1': 0.591416326687212 , 'c2': 0.408583673312788 , 'd1': 4.94055044652915 , 'd2': 400.999007132446 }, + '437' : {'name' : 'MAGICC7', 'c1': 0.608164083167775 , 'c2': 0.391835916832225 , 'd1': 7.70293256263891 , 'd2': 285.51412147506 }, + '438' : {'name' : 'MAGICC7', 'c1': 0.619990683378411 , 'c2': 0.380009316621589 , 'd1': 6.7612531661848 , 'd2': 228.242305792688 }, + '439' : {'name' : 'MAGICC7', 'c1': 0.740379618081857 , 'c2': 0.259620381918143 , 'd1': 3.92822395947013 , 'd2': 170.409742212095 }, + '440' : {'name' : 'MAGICC7', 'c1': 0.584484449497267 , 'c2': 0.415515550502733 , 'd1': 3.18637575371874 , 'd2': 286.380830825454 }, + '441' : {'name' : 'MAGICC7', 'c1': 0.663106077420833 , 'c2': 0.336893922579167 , 'd1': 5.27816753690677 , 'd2': 254.050353820125 }, + '442' : {'name' : 'MAGICC7', 'c1': 0.684230634862959 , 'c2': 0.315769365137041 , 'd1': 3.14679840728791 , 'd2': 243.064432403668 }, + '443' : {'name' : 'MAGICC7', 'c1': 0.616328341412932 , 'c2': 0.383671658587068 , 'd1': 3.59001583727901 , 'd2': 279.56898943314 }, + '444' : {'name' : 'MAGICC7', 'c1': 0.633934117703736 , 'c2': 0.366065882296264 , 'd1': 6.58782811209302 , 'd2': 224.052443977594 }, + '445' : {'name' : 'MAGICC7', 'c1': 0.641747057314967 , 'c2': 0.358252942685033 , 'd1': 2.03499658041947 , 'd2': 199.03949017597 }, + '446' : {'name' : 'MAGICC7', 'c1': 0.595274345403182 , 'c2': 0.404725654596818 , 'd1': 3.9381450178484 , 'd2': 423.646657726647 }, + '447' : {'name' : 'MAGICC7', 'c1': 0.687297270788146 , 'c2': 0.312702729211854 , 'd1': 3.08718910074369 , 'd2': 212.421450192412 }, + '448' : {'name' : 'MAGICC7', 'c1': 0.652634899103514 , 'c2': 0.347365100896486 , 'd1': 2.87297777206769 , 'd2': 262.012177699616 }, + '449' : {'name' : 'MAGICC7', 'c1': 0.616395924528381 , 'c2': 0.383604075471619 , 'd1': 8.23784720179692 , 'd2': 395.750818343816 }, + '450' : {'name' : 'MAGICC7', 'c1': 0.676400466410375 , 'c2': 0.323599533589625 , 'd1': 4.7301009185999 , 'd2': 346.706105130033 }, + '451' : {'name' : 'MAGICC7', 'c1': 0.59399333769617 , 'c2': 0.40600666230383 , 'd1': 3.83221800955597 , 'd2': 355.91630626617 }, + '452' : {'name' : 'MAGICC7', 'c1': 0.7234748376099 , 'c2': 0.2765251623901 , 'd1': 2.81296367333722 , 'd2': 186.554997371107 }, + '453' : {'name' : 'MAGICC7', 'c1': 0.567632821425543 , 'c2': 0.432367178574457 , 'd1': 7.904767068927 , 'd2': 291.514579711858 }, + '454' : {'name' : 'MAGICC7', 'c1': 0.645179062682183 , 'c2': 0.354820937317817 , 'd1': 2.90796973791016 , 'd2': 217.416434434272 }, + '455' : {'name' : 'MAGICC7', 'c1': 0.670857621707002 , 'c2': 0.329142378292998 , 'd1': 2.74270001599814 , 'd2': 255.371724283032 }, + '456' : {'name' : 'MAGICC7', 'c1': 0.575908900370668 , 'c2': 0.424091099629332 , 'd1': 3.63115764016603 , 'd2': 357.358407425799 }, + '457' : {'name' : 'MAGICC7', 'c1': 0.697575349958259 , 'c2': 0.302424650041741 , 'd1': 3.46339864329077 , 'd2': 251.535212928015 }, + '458' : {'name' : 'MAGICC7', 'c1': 0.736626491595284 , 'c2': 0.263373508404716 , 'd1': 2.93483474679992 , 'd2': 264.17644344828 }, + '459' : {'name' : 'MAGICC7', 'c1': 0.55148241136522 , 'c2': 0.44851758863478 , 'd1': 3.69859552243185 , 'd2': 386.128910824878 }, + '460' : {'name' : 'MAGICC7', 'c1': 0.596203816892754 , 'c2': 0.403796183107246 , 'd1': 3.67172205265691 , 'd2': 374.531095214333 }, + '461' : {'name' : 'MAGICC7', 'c1': 0.682847275429766 , 'c2': 0.317152724570234 , 'd1': 3.09295918029814 , 'd2': 316.964732338962 }, + '462' : {'name' : 'MAGICC7', 'c1': 0.628197823669918 , 'c2': 0.371802176330082 , 'd1': 7.7508934232538 , 'd2': 267.755331027639 }, + '463' : {'name' : 'MAGICC7', 'c1': 0.584833397653198 , 'c2': 0.415166602346802 , 'd1': 3.22078555712264 , 'd2': 346.690393517598 }, + '464' : {'name' : 'MAGICC7', 'c1': 0.65784379155186 , 'c2': 0.34215620844814 , 'd1': 3.23252472169682 , 'd2': 258.191325445473 }, + '465' : {'name' : 'MAGICC7', 'c1': 0.74603697187132 , 'c2': 0.25396302812868 , 'd1': 3.63633907104328 , 'd2': 248.655275496617 }, + '466' : {'name' : 'MAGICC7', 'c1': 0.667984856886987 , 'c2': 0.332015143113013 , 'd1': 4.37216490352096 , 'd2': 238.786575779867 }, + '467' : {'name' : 'MAGICC7', 'c1': 0.711758450041727 , 'c2': 0.288241549958273 , 'd1': 2.67342273226597 , 'd2': 261.875226812701 }, + '468' : {'name' : 'MAGICC7', 'c1': 0.620489064212838 , 'c2': 0.379510935787162 , 'd1': 2.38464062984345 , 'd2': 126.658397329798 }, + '469' : {'name' : 'MAGICC7', 'c1': 0.653417224901323 , 'c2': 0.346582775098677 , 'd1': 2.69416315427679 , 'd2': 228.252552598294 }, + '470' : {'name' : 'MAGICC7', 'c1': 0.763274508420304 , 'c2': 0.236725491579696 , 'd1': 3.10429310440337 , 'd2': 233.839750715319 }, + '471' : {'name' : 'MAGICC7', 'c1': 0.70018401671804 , 'c2': 0.29981598328196 , 'd1': 3.68634473173136 , 'd2': 250.656301461226 }, + '472' : {'name' : 'MAGICC7', 'c1': 0.690573714870357 , 'c2': 0.309426285129643 , 'd1': 2.81515078015609 , 'd2': 195.956399409688 }, + '473' : {'name' : 'MAGICC7', 'c1': 0.799257931398498 , 'c2': 0.200742068601502 , 'd1': 3.70536315931098 , 'd2': 242.85861945432 }, + '474' : {'name' : 'MAGICC7', 'c1': 0.642748613849642 , 'c2': 0.357251386150358 , 'd1': 3.65218628576947 , 'd2': 281.32435227409 }, + '475' : {'name' : 'MAGICC7', 'c1': 0.616914414160455 , 'c2': 0.383085585839545 , 'd1': 2.77340131336259 , 'd2': 209.654070145538 }, + '476' : {'name' : 'MAGICC7', 'c1': 0.764337951295091 , 'c2': 0.235662048704909 , 'd1': 4.58449790706476 , 'd2': 218.859907934657 }, + '477' : {'name' : 'MAGICC7', 'c1': 0.646909817702678 , 'c2': 0.353090182297323 , 'd1': 3.91287825555876 , 'd2': 224.634516583354 }, + '478' : {'name' : 'MAGICC7', 'c1': 0.657686700142161 , 'c2': 0.342313299857839 , 'd1': 2.99214791433943 , 'd2': 299.951558027189 }, + '479' : {'name' : 'MAGICC7', 'c1': 0.600548714877887 , 'c2': 0.399451285122113 , 'd1': 8.33155543158501 , 'd2': 301.10963223021 }, + '480' : {'name' : 'MAGICC7', 'c1': 0.617547232455938 , 'c2': 0.382452767544063 , 'd1': 5.39910354986806 , 'd2': 233.588770873498 }, + '481' : {'name' : 'MAGICC7', 'c1': 0.59840702141904 , 'c2': 0.40159297858096 , 'd1': 7.3475311510081 , 'd2': 389.396318829016 }, + '482' : {'name' : 'MAGICC7', 'c1': 0.629981836608497 , 'c2': 0.370018163391504 , 'd1': 3.79567442417872 , 'd2': 231.566097361873 }, + '483' : {'name' : 'MAGICC7', 'c1': 0.650521408781619 , 'c2': 0.349478591218381 , 'd1': 3.17937381990033 , 'd2': 258.954002698053 }, + '484' : {'name' : 'MAGICC7', 'c1': 0.659706422872875 , 'c2': 0.340293577127125 , 'd1': 1.98142170954978 , 'd2': 119.48217889783 }, + '485' : {'name' : 'MAGICC7', 'c1': 0.692032307326627 , 'c2': 0.307967692673373 , 'd1': 3.16848551866808 , 'd2': 256.346114074432 }, + '486' : {'name' : 'MAGICC7', 'c1': 0.6055523784023 , 'c2': 0.3944476215977 , 'd1': 3.4532352988777 , 'd2': 392.482009504808 }, + '487' : {'name' : 'MAGICC7', 'c1': 0.652089703413536 , 'c2': 0.347910296586464 , 'd1': 3.42281443765007 , 'd2': 136.170085846552 }, + '488' : {'name' : 'MAGICC7', 'c1': 0.683522275600395 , 'c2': 0.316477724399606 , 'd1': 3.35201447476568 , 'd2': 386.262383018438 }, + '489' : {'name' : 'MAGICC7', 'c1': 0.686666683755967 , 'c2': 0.313333316244033 , 'd1': 3.56162541063132 , 'd2': 219.052612114198 }, + '490' : {'name' : 'MAGICC7', 'c1': 0.649444420564963 , 'c2': 0.350555579435037 , 'd1': 3.55001992794784 , 'd2': 230.852800186554 }, + '491' : {'name' : 'MAGICC7', 'c1': 0.694248201118914 , 'c2': 0.305751798881086 , 'd1': 4.22972835238615 , 'd2': 249.806555622807 }, + '492' : {'name' : 'MAGICC7', 'c1': 0.645038729802202 , 'c2': 0.354961270197798 , 'd1': 3.45571410902813 , 'd2': 251.841652645956 }, + '493' : {'name' : 'MAGICC7', 'c1': 0.611523264986742 , 'c2': 0.388476735013258 , 'd1': 2.9198511026235 , 'd2': 251.121910238299 }, + '494' : {'name' : 'MAGICC7', 'c1': 0.581055621878673 , 'c2': 0.418944378121328 , 'd1': 8.58112402461991 , 'd2': 246.924483145002 }, + '495' : {'name' : 'MAGICC7', 'c1': 0.63767363603775 , 'c2': 0.36232636396225 , 'd1': 3.33818234894512 , 'd2': 374.993198547248 }, + '496' : {'name' : 'MAGICC7', 'c1': 0.696551040240136 , 'c2': 0.303448959759864 , 'd1': 4.67898999416782 , 'd2': 209.202141893879 }, + '497' : {'name' : 'MAGICC7', 'c1': 0.721064300274409 , 'c2': 0.278935699725592 , 'd1': 4.62272193959722 , 'd2': 169.866306023223 }, + '498' : {'name' : 'MAGICC7', 'c1': 0.583772772880513 , 'c2': 0.416227227119487 , 'd1': 3.7987745042049 , 'd2': 258.735800746073 }, + '499' : {'name' : 'MAGICC7', 'c1': 0.630744509034808 , 'c2': 0.369255490965192 , 'd1': 3.7885091001863 , 'd2': 243.620161476766 }, + '500' : {'name' : 'MAGICC7', 'c1': 0.649666888187663 , 'c2': 0.350333111812337 , 'd1': 3.49637794800911 , 'd2': 236.872667934104 }, + '501' : {'name' : 'MAGICC7', 'c1': 0.695539536146452 , 'c2': 0.304460463853548 , 'd1': 3.32481614355991 , 'd2': 262.57414320946 }, + '502' : {'name' : 'MAGICC7', 'c1': 0.650590099685399 , 'c2': 0.349409900314601 , 'd1': 3.80433553955271 , 'd2': 237.204047587287 }, + '503' : {'name' : 'MAGICC7', 'c1': 0.536429579900697 , 'c2': 0.463570420099303 , 'd1': 9.67411519820644 , 'd2': 494.91527306975 }, + '504' : {'name' : 'MAGICC7', 'c1': 0.550608862796308 , 'c2': 0.449391137203692 , 'd1': 3.53530992340637 , 'd2': 235.685180572533 }, + '505' : {'name' : 'MAGICC7', 'c1': 0.664503484342193 , 'c2': 0.335496515657807 , 'd1': 3.65284704334322 , 'd2': 385.934948862178 }, + '506' : {'name' : 'MAGICC7', 'c1': 0.632311153350938 , 'c2': 0.367688846649062 , 'd1': 5.99823734079644 , 'd2': 308.429483959816 }, + '507' : {'name' : 'MAGICC7', 'c1': 0.573735508613421 , 'c2': 0.426264491386579 , 'd1': 3.28166364440753 , 'd2': 311.465556336121 }, + '508' : {'name' : 'MAGICC7', 'c1': 0.57383966653599 , 'c2': 0.426160333464011 , 'd1': 3.36294322928779 , 'd2': 223.985410381584 }, + '509' : {'name' : 'MAGICC7', 'c1': 0.617959648626931 , 'c2': 0.382040351373069 , 'd1': 2.93695095199988 , 'd2': 275.629738272613 }, + '510' : {'name' : 'MAGICC7', 'c1': 0.639082401730126 , 'c2': 0.360917598269874 , 'd1': 3.19514779643352 , 'd2': 220.200531220667 }, + '511' : {'name' : 'MAGICC7', 'c1': 0.704878282361688 , 'c2': 0.295121717638312 , 'd1': 3.08562333899222 , 'd2': 275.416709938402 }, + '512' : {'name' : 'MAGICC7', 'c1': 0.672642691794854 , 'c2': 0.327357308205146 , 'd1': 3.61243838707211 , 'd2': 214.347049744905 }, + '513' : {'name' : 'MAGICC7', 'c1': 0.695002692545388 , 'c2': 0.304997307454613 , 'd1': 6.0537191568102 , 'd2': 227.634709953017 }, + '514' : {'name' : 'MAGICC7', 'c1': 0.643648506377934 , 'c2': 0.356351493622066 , 'd1': 7.75043143865777 , 'd2': 243.066432673567 }, + '515' : {'name' : 'MAGICC7', 'c1': 0.720145625077963 , 'c2': 0.279854374922037 , 'd1': 2.88571871522855 , 'd2': 213.575156823579 }, + '516' : {'name' : 'MAGICC7', 'c1': 0.671975344469943 , 'c2': 0.328024655530057 , 'd1': 2.37979015466814 , 'd2': 222.765346061639 }, + '517' : {'name' : 'MAGICC7', 'c1': 0.519166860273643 , 'c2': 0.480833139726357 , 'd1': 4.27595061541546 , 'd2': 383.809002212611 }, + '518' : {'name' : 'MAGICC7', 'c1': 0.682615879828694 , 'c2': 0.317384120171306 , 'd1': 2.87710531022665 , 'd2': 225.153435709324 }, + '519' : {'name' : 'MAGICC7', 'c1': 0.618520126921817 , 'c2': 0.381479873078183 , 'd1': 7.26546317107291 , 'd2': 225.83834441791 }, + '520' : {'name' : 'MAGICC7', 'c1': 0.530913469237019 , 'c2': 0.469086530762981 , 'd1': 9.1206782237592 , 'd2': 389.834299674376 }, + '521' : {'name' : 'MAGICC7', 'c1': 0.653651436535323 , 'c2': 0.346348563464677 , 'd1': 2.73444860806503 , 'd2': 264.100535628878 }, + '522' : {'name' : 'MAGICC7', 'c1': 0.681090768424506 , 'c2': 0.318909231575494 , 'd1': 3.47175438258303 , 'd2': 214.514810654959 }, + '523' : {'name' : 'MAGICC7', 'c1': 0.625003763933881 , 'c2': 0.374996236066119 , 'd1': 3.26721193890188 , 'd2': 363.589066137864 }, + '524' : {'name' : 'MAGICC7', 'c1': 0.711487438030213 , 'c2': 0.288512561969787 , 'd1': 5.38241921568038 , 'd2': 263.1745302145 }, + '525' : {'name' : 'MAGICC7', 'c1': 0.640719636997771 , 'c2': 0.359280363002229 , 'd1': 3.43879641080124 , 'd2': 384.056144719603 }, + '526' : {'name' : 'MAGICC7', 'c1': 0.6544730152797 , 'c2': 0.3455269847203 , 'd1': 5.99546731490276 , 'd2': 232.068276749394 }, + '527' : {'name' : 'MAGICC7', 'c1': 0.659930205093141 , 'c2': 0.340069794906859 , 'd1': 3.07796646828413 , 'd2': 261.728753240272 }, + '528' : {'name' : 'MAGICC7', 'c1': 0.695868124714975 , 'c2': 0.304131875285025 , 'd1': 3.1895144101549 , 'd2': 347.592888773322 }, + '529' : {'name' : 'MAGICC7', 'c1': 0.650151276890645 , 'c2': 0.349848723109355 , 'd1': 3.28544792505524 , 'd2': 284.528194138668 }, + '530' : {'name' : 'MAGICC7', 'c1': 0.675844445124808 , 'c2': 0.324155554875192 , 'd1': 3.45284805342112 , 'd2': 357.410781887619 }, + '531' : {'name' : 'MAGICC7', 'c1': 0.764854983152137 , 'c2': 0.235145016847863 , 'd1': 4.48741816343957 , 'd2': 275.497305292203 }, + '532' : {'name' : 'MAGICC7', 'c1': 0.615561766924249 , 'c2': 0.384438233075751 , 'd1': 3.45909419384126 , 'd2': 253.510617372854 }, + '533' : {'name' : 'MAGICC7', 'c1': 0.697319722720532 , 'c2': 0.302680277279468 , 'd1': 3.6424012867593 , 'd2': 325.42519441747 }, + '534' : {'name' : 'MAGICC7', 'c1': 0.504519112889754 , 'c2': 0.495480887110246 , 'd1': 10.4976817472602 , 'd2': 445.933224132176 }, + '535' : {'name' : 'MAGICC7', 'c1': 0.665596816646228 , 'c2': 0.334403183353773 , 'd1': 3.27218547061198 , 'd2': 268.096701914356 }, + '536' : {'name' : 'MAGICC7', 'c1': 0.474377311061714 , 'c2': 0.525622688938286 , 'd1': 4.47401130184451 , 'd2': 436.903940429607 }, + '537' : {'name' : 'MAGICC7', 'c1': 0.662272527374181 , 'c2': 0.337727472625819 , 'd1': 3.40526034556354 , 'd2': 258.449880885788 }, + '538' : {'name' : 'MAGICC7', 'c1': 0.489016660357483 , 'c2': 0.510983339642517 , 'd1': 3.99031348324731 , 'd2': 464.423189168398 }, + '539' : {'name' : 'MAGICC7', 'c1': 0.639905652051969 , 'c2': 0.360094347948031 , 'd1': 5.26347530211535 , 'd2': 276.945799087985 }, + '540' : {'name' : 'MAGICC7', 'c1': 0.671554180388081 , 'c2': 0.328445819611919 , 'd1': 2.39863954123576 , 'd2': 245.290172445067 }, + '541' : {'name' : 'MAGICC7', 'c1': 0.597257357287847 , 'c2': 0.402742642712153 , 'd1': 9.92987980021181 , 'd2': 339.219828707511 }, + '542' : {'name' : 'MAGICC7', 'c1': 0.618255887398764 , 'c2': 0.381744112601236 , 'd1': 3.28697572196158 , 'd2': 304.314061536861 }, + '543' : {'name' : 'MAGICC7', 'c1': 0.690024558768948 , 'c2': 0.309975441231052 , 'd1': 2.81625589166515 , 'd2': 248.870934522134 }, + '544' : {'name' : 'MAGICC7', 'c1': 0.617297292247215 , 'c2': 0.382702707752785 , 'd1': 2.91508742028193 , 'd2': 258.931979046508 }, + '545' : {'name' : 'MAGICC7', 'c1': 0.625887572809806 , 'c2': 0.374112427190194 , 'd1': 5.85461360919975 , 'd2': 275.696661210274 }, + '546' : {'name' : 'MAGICC7', 'c1': 0.6893009634384 , 'c2': 0.3106990365616 , 'd1': 4.58567119496467 , 'd2': 303.196283730914 }, + '547' : {'name' : 'MAGICC7', 'c1': 0.596907250071951 , 'c2': 0.403092749928049 , 'd1': 3.43965515788222 , 'd2': 305.894565297994 }, + '548' : {'name' : 'MAGICC7', 'c1': 0.594204738775283 , 'c2': 0.405795261224717 , 'd1': 3.80158789337706 , 'd2': 270.393760201573 }, + '549' : {'name' : 'MAGICC7', 'c1': 0.586246056901735 , 'c2': 0.413753943098265 , 'd1': 4.12201410439895 , 'd2': 237.62204734586 }, + '550' : {'name' : 'MAGICC7', 'c1': 0.593611894192607 , 'c2': 0.406388105807393 , 'd1': 6.70111238331226 , 'd2': 366.384898553854 }, + '551' : {'name' : 'MAGICC7', 'c1': 0.740163046331711 , 'c2': 0.259836953668289 , 'd1': 4.73323236242889 , 'd2': 212.123932695153 }, + '552' : {'name' : 'MAGICC7', 'c1': 0.747650701903033 , 'c2': 0.252349298096967 , 'd1': 2.98793940885308 , 'd2': 237.948063718156 }, + '553' : {'name' : 'MAGICC7', 'c1': 0.684111311040424 , 'c2': 0.315888688959576 , 'd1': 3.39761249511122 , 'd2': 250.900798521762 }, + '554' : {'name' : 'MAGICC7', 'c1': 0.622212013763061 , 'c2': 0.377787986236939 , 'd1': 6.47117275117155 , 'd2': 429.44482232678 }, + '555' : {'name' : 'MAGICC7', 'c1': 0.61262168019383 , 'c2': 0.387378319806171 , 'd1': 2.15180358606939 , 'd2': 129.227138101338 }, + '556' : {'name' : 'MAGICC7', 'c1': 0.453977402313057 , 'c2': 0.546022597686943 , 'd1': 8.289688303874 , 'd2': 344.54761771041 }, + '557' : {'name' : 'MAGICC7', 'c1': 0.617987382784339 , 'c2': 0.382012617215661 , 'd1': 3.344398878077 , 'd2': 227.266395133675 }, + '558' : {'name' : 'MAGICC7', 'c1': 0.553471213173995 , 'c2': 0.446528786826005 , 'd1': 3.24956165947741 , 'd2': 240.517381444803 }, + '559' : {'name' : 'MAGICC7', 'c1': 0.660337922894994 , 'c2': 0.339662077105006 , 'd1': 5.32377244844934 , 'd2': 222.857171439293 }, + '560' : {'name' : 'MAGICC7', 'c1': 0.747591549770222 , 'c2': 0.252408450229778 , 'd1': 3.67962157718313 , 'd2': 277.72618145419 }, + '561' : {'name' : 'MAGICC7', 'c1': 0.456828147993384 , 'c2': 0.543171852006616 , 'd1': 10.1857997813597 , 'd2': 499.77253752945 }, + '562' : {'name' : 'MAGICC7', 'c1': 0.667146886827598 , 'c2': 0.332853113172402 , 'd1': 2.56178440762384 , 'd2': 239.093573071748 }, + '563' : {'name' : 'MAGICC7', 'c1': 0.603360315395765 , 'c2': 0.396639684604235 , 'd1': 3.54284063548797 , 'd2': 243.332118395614 }, + '564' : {'name' : 'MAGICC7', 'c1': 0.682482189266101 , 'c2': 0.317517810733899 , 'd1': 2.44840415669163 , 'd2': 214.620706007656 }, + '565' : {'name' : 'MAGICC7', 'c1': 0.565511532514815 , 'c2': 0.434488467485185 , 'd1': 3.80472692929141 , 'd2': 399.426346095194 }, + '566' : {'name' : 'MAGICC7', 'c1': 0.709619444673342 , 'c2': 0.290380555326658 , 'd1': 2.39399935979883 , 'd2': 189.134693752976 }, + '567' : {'name' : 'MAGICC7', 'c1': 0.564175883805714 , 'c2': 0.435824116194286 , 'd1': 3.04861659653435 , 'd2': 138.552899379936 }, + '568' : {'name' : 'MAGICC7', 'c1': 0.575469390640199 , 'c2': 0.424530609359801 , 'd1': 3.11566105279692 , 'd2': 202.226211102845 }, + '569' : {'name' : 'MAGICC7', 'c1': 0.562270126547263 , 'c2': 0.437729873452737 , 'd1': 9.00047398330628 , 'd2': 367.867350750182 }, + '570' : {'name' : 'MAGICC7', 'c1': 0.685551437764939 , 'c2': 0.314448562235061 , 'd1': 4.15804599684857 , 'd2': 400.623400757268 }, + '571' : {'name' : 'MAGICC7', 'c1': 0.59397649955681 , 'c2': 0.40602350044319 , 'd1': 5.28791433265754 , 'd2': 430.717133331896 }, + '572' : {'name' : 'MAGICC7', 'c1': 0.553810614233776 , 'c2': 0.446189385766224 , 'd1': 4.75293256315581 , 'd2': 475.620538112599 }, + '573' : {'name' : 'MAGICC7', 'c1': 0.731765424506543 , 'c2': 0.268234575493457 , 'd1': 5.47526818048222 , 'd2': 196.275495803962 }, + '574' : {'name' : 'MAGICC7', 'c1': 0.629043600647894 , 'c2': 0.370956399352106 , 'd1': 3.52853449445301 , 'd2': 253.51077277087 }, + '575' : {'name' : 'MAGICC7', 'c1': 0.57261704609674 , 'c2': 0.42738295390326 , 'd1': 8.53493852973763 , 'd2': 325.146180486022 }, + '576' : {'name' : 'MAGICC7', 'c1': 0.627846033341192 , 'c2': 0.372153966658809 , 'd1': 4.75294390374766 , 'd2': 320.285754731612 }, + '577' : {'name' : 'MAGICC7', 'c1': 0.695275943521407 , 'c2': 0.304724056478593 , 'd1': 2.90518354462472 , 'd2': 213.594729914315 }, + '578' : {'name' : 'MAGICC7', 'c1': 0.629948173222001 , 'c2': 0.370051826777999 , 'd1': 6.32390020322396 , 'd2': 337.583138143306 }, + '579' : {'name' : 'MAGICC7', 'c1': 0.610526505243734 , 'c2': 0.389473494756266 , 'd1': 3.10174292139221 , 'd2': 275.647230075266 }, + '580' : {'name' : 'MAGICC7', 'c1': 0.622684475965588 , 'c2': 0.377315524034412 , 'd1': 6.67426923404313 , 'd2': 354.866261140392 }, + '581' : {'name' : 'MAGICC7', 'c1': 0.724092338113389 , 'c2': 0.275907661886611 , 'd1': 4.1451297178718 , 'd2': 167.266065643123 }, + '582' : {'name' : 'MAGICC7', 'c1': 0.5701769820632 , 'c2': 0.4298230179368 , 'd1': 2.49612143048749 , 'd2': 137.538782793065 }, + '583' : {'name' : 'MAGICC7', 'c1': 0.707152560653253 , 'c2': 0.292847439346747 , 'd1': 6.09982344936841 , 'd2': 350.44569784397 }, + '584' : {'name' : 'MAGICC7', 'c1': 0.666617299149025 , 'c2': 0.333382700850975 , 'd1': 6.39565899807181 , 'd2': 232.862045566867 }, + '585' : {'name' : 'MAGICC7', 'c1': 0.562734407400704 , 'c2': 0.437265592599297 , 'd1': 2.8939411662329 , 'd2': 211.89232604689 }, + '586' : {'name' : 'MAGICC7', 'c1': 0.630318175542598 , 'c2': 0.369681824457402 , 'd1': 3.69833832591566 , 'd2': 329.874986495759 }, + '587' : {'name' : 'MAGICC7', 'c1': 0.678319298050272 , 'c2': 0.321680701949728 , 'd1': 4.14220960497588 , 'd2': 240.395182647385 }, + '588' : {'name' : 'MAGICC7', 'c1': 0.579599728630149 , 'c2': 0.420400271369852 , 'd1': 3.8886850315108 , 'd2': 407.237237732288 }, + '589' : {'name' : 'MAGICC7', 'c1': 0.686285554081863 , 'c2': 0.313714445918137 , 'd1': 5.26999665241253 , 'd2': 206.206870378495 }, + '590' : {'name' : 'MAGICC7', 'c1': 0.606109355321491 , 'c2': 0.393890644678509 , 'd1': 6.58266138661032 , 'd2': 349.84219363809 }, + '591' : {'name' : 'MAGICC7', 'c1': 0.631150234040417 , 'c2': 0.368849765959583 , 'd1': 3.63515533885807 , 'd2': 301.839367368673 }, + '592' : {'name' : 'MAGICC7', 'c1': 0.652477991138922 , 'c2': 0.347522008861078 , 'd1': 2.9107008027847 , 'd2': 393.235837295079 }, + '593' : {'name' : 'MAGICC7', 'c1': 0.704540752331198 , 'c2': 0.295459247668802 , 'd1': 3.1405869691169 , 'd2': 319.315643338283 }, + '594' : {'name' : 'MAGICC7', 'c1': 0.621531999825269 , 'c2': 0.378468000174731 , 'd1': 3.0787284332417 , 'd2': 282.170073663922 }, + '595' : {'name' : 'MAGICC7', 'c1': 0.64790863291531 , 'c2': 0.35209136708469 , 'd1': 4.55224158607576 , 'd2': 235.563702291901 }, + '596' : {'name' : 'MAGICC7', 'c1': 0.713420029384911 , 'c2': 0.286579970615089 , 'd1': 3.15915328459431 , 'd2': 183.340248401454 }, + '597' : {'name' : 'MAGICC7', 'c1': 0.635891708636205 , 'c2': 0.364108291363795 , 'd1': 8.49229013923011 , 'd2': 455.090978486928 }, + '598' : {'name' : 'MAGICC7', 'c1': 0.515615667811385 , 'c2': 0.484384332188616 , 'd1': 3.80800767343503 , 'd2': 286.274190771913 }, + '599' : {'name' : 'MAGICC7', 'c1': 0.673500478719652 , 'c2': 0.326499521280348 , 'd1': 3.68599677507894 , 'd2': 333.459461371074 }, + '600' : {'name' : 'MAGICC7', 'c1': 0.57718474101824 , 'c2': 0.42281525898176 , 'd1': 3.62431562430348 , 'd2': 443.99501577095 } + }, + 'source' : 'IPCC Github' + } +} + + + +#------------------------------- +# Gasser used a specific model in the AGWP/AGTP Carbon cycle feedback +#------------------------------- +Gasser_CCF_Model = { + #Gasser 2017 - CCF + 'gamma' : 3.015, + 'aS1' : 0.6368, + 'aS2' : 0.3322, + 'aS3' : 0.0310, + 'tauS1' : 2.376, + 'tauS2' : 30.14, + 'tauS3' : 490.1 +} + + diff --git a/Code/modules/Metrics.py b/Code/modules/Metrics.py new file mode 100644 index 0000000..2ec6dc2 --- /dev/null +++ b/Code/modules/Metrics.py @@ -0,0 +1,392 @@ +# *-* coding: utf-8 *-* +# Definition of : +# - ImpulseRF +# - RadiativeForcing +# - IRFT +# - AGWP +# - AGTP + +# - - - - - - - - - - - - - - - - - - +import numpy as np +# - - - - - - - - - - - - - - - - - - +from .Metrics_oxyd_ccf import * +# - - - - - - - - - - - - - - - - - - + + + +#------------------------------------------------------------ +# IRF : Impulse response function +# I(t) = a_0 + sum_i=1^K a_i exp(-t/taui) +# Input : +# + time +# + Gas informations +# + mass of this gas +# Output : +# Response function at a given time +def ImpulseRF(GasDATA,IRFT_DATA,t,gas,mass,gasorigin): + DataG = GasDATA[gas] + f = DataG['a0'] + for i in range(1,DataG['K']+1): + f+= DataG['a'+str(i)] * np.exp(-t/ DataG['tau'+str(i)]) + return mass*f + + + + +#------------------------------------------------------------ +# RF : Radative forcing +#------------------------------------------------------------ +# RF(t) = A * I(t) +# DataG['A_RadFor'] is Radiative forcing scaling factor for the given gas database. +# Input : +# + time +# + Gas informations +# + mass of this gas +# Output : +# Radative forcing at a given time +def RadiativeForcing(GasDATA,IRFT_DATA,t,gas,mass,gasorigin): + DataG = GasDATA[gas] + return DataG['A_RadFor'] * ImpulseRF(GasDATA,TdrDATA,t, gas, mass, gasorigin) + + + + + + +#------------------------------------------------------------ +# IRFT : Impulse response function for temperature : +#------------------------------------------------------------ +# Input : +# + time +# Output : +# IRFT(t) = ECS * (c1/d1 * np.exp(-t/d1) + c2/d2 * np.exp(-t/d2)) +def IRFT(IRFT_DATA,t): + ECS = IRFT_DATA['ECS'] + d1 = IRFT_DATA['d1'] + d2 = IRFT_DATA['d2'] + return ECS * ( IRFT_DATA['c1']/d1 * np.exp(-t/d1) + IRFT_DATA['c2']/d2 * np.exp(-t/d2) ) + + + + + + + + + + + +#------------------------------------------------------------ +# AGWP : Absolute global warming potential +#------------------------------------------------------------ +# Integral of ImpulseRF(t) over time period +# Input : +# + time +# + Gas informations +# + mass of this gas +# Output : +# Absolute global warming potential at a given time (W m^{-2} yr kg^{-1}) +# +def AGWP(GasDATA,IRFT_DATA, t,gas,mass,gasorigin): + + # --- + DataG = GasDATA[gas] + AGWPfunc = DataG['a0'] * t + + # --- + for i in range(1,DataG['K']+1): + taui = DataG['tau'+str(i)] + AGWPfunc+= DataG['a'+str(i)] * taui * (1.-np.exp(-t/ taui)) + + # --- Different formula for CH4 + if gas == "CH4": + # --- CH4 DATA + alphaCO2 = DataG['alphaCO2'] # Only CH4 + CH4tau1 = DataG['tau1'] + A_radCH4 = DataG['A_RadFor'] + MCH4 = DataG['MolarMass'] + + # --- CO2 DATA + DataGCO2 = GasDATA['CO2'] + a0 = DataGCO2['a0'] + a1 = DataGCO2['a1'] + a2 = DataGCO2['a2'] + a3 = DataGCO2['a3'] + tau1 = DataGCO2['tau1'] + tau2 = DataGCO2['tau2'] + tau3 = DataGCO2['tau3'] + A_RadFor_CO2 = DataGCO2['A_RadFor'] + MCO2 = DataGCO2['MolarMass'] + + # --- OH DATA + tauOH = GasDATA['OH']['tau1'] + + # --- C data + MC = GasDATA['C']['MolarMass'] + + + # --- IRFT data + IRFT_ECS = IRFT_DATA['ECS'] + IRFT_c1 = IRFT_DATA['c1'] + IRFT_c2 = IRFT_DATA['c2'] + IRFT_d1 = IRFT_DATA['d1'] + IRFT_d2 = IRFT_DATA['d2'] + + # --- Gasser CCF suppl.Model + # GASS_gamma = Gasser_CCF_Model['gamma'] + # GASS_aS1 = Gasser_CCF_Model['aS1'] + # GASS_aS2 = Gasser_CCF_Model['aS2'] + # GASS_aS3 = Gasser_CCF_Model['aS3'] + # GASS_tauS1 = Gasser_CCF_Model['tauS1'] + # GASS_tauS2 = Gasser_CCF_Model['tauS2'] + # GASS_tauS3 = Gasser_CCF_Model['tauS3'] + GASS_gamma = 3.015 + GASS_aS1 = 0.6368 + GASS_aS2 = 0.3322 + GASS_aS3 = 0.0310 + GASS_tauS1 = 2.376 + GASS_tauS2 = 30.14 + GASS_tauS3 = 490.1 + + # - - - - + # Carbon cycle feedback + Add_AGWP_CCF = GasserCCFDAGWPNonCO2(t, CH4tau1, IRFT_ECS, IRFT_c1, IRFT_d1, IRFT_c2, IRFT_d2, A_radCH4, a0,a3,a2,a1,tau3,tau2,tau1 ,A_RadFor_CO2, GASS_gamma , GASS_aS1, GASS_aS2, GASS_aS3, GASS_tauS1, GASS_tauS2, GASS_tauS3, MCO2, MC) + + # - - - - + # CH4 oxydation (CH4 -> CO2) + Add_AGWP_Oxyd = GasserDAGWPCH4toCO2(t, a0, a1, a2, a3, tau1, tau2, tau3, A_RadFor_CO2 , tauOH, alphaCO2, MCO2, MCH4 ) + # - - - - + + elif gas == "N2O": + # --- CO2 DATA + DataGCO2 = GasDATA['CO2'] + a0 = DataGCO2['a0'] + a1 = DataGCO2['a1'] + a2 = DataGCO2['a2'] + a3 = DataGCO2['a3'] + tau1 = DataGCO2['tau1'] + tau2 = DataGCO2['tau2'] + tau3 = DataGCO2['tau3'] + A_RadFor_CO2 = DataGCO2['A_RadFor'] + MCO2 = DataGCO2['MolarMass'] + + # --- N2O DATA + N2Otau1 = DataG['tau1'] + A_radN2O = DataG['A_RadFor'] + # --- C data + MC = GasDATA['C']['MolarMass'] + + # --- IRFT data + IRFT_ECS = IRFT_DATA['ECS'] + IRFT_c1 = IRFT_DATA['c1'] + IRFT_c2 = IRFT_DATA['c2'] + IRFT_d1 = IRFT_DATA['d1'] + IRFT_d2 = IRFT_DATA['d2'] + + # --- Gasser CCF suppl.Model + # GASS_gamma = Gasser_CCF_Model['gamma'] + # GASS_aS1 = Gasser_CCF_Model['aS1'] + # GASS_aS2 = Gasser_CCF_Model['aS2'] + # GASS_aS3 = Gasser_CCF_Model['aS3'] + # GASS_tauS1 = Gasser_CCF_Model['tauS1'] + # GASS_tauS2 = Gasser_CCF_Model['tauS2'] + # GASS_tauS3 = Gasser_CCF_Model['tauS3'] + GASS_gamma = 3.015 + GASS_aS1 = 0.6368 + GASS_aS2 = 0.3322 + GASS_aS3 = 0.0310 + GASS_tauS1 = 2.376 + GASS_tauS2 = 30.14 + GASS_tauS3 = 490.1 + + # - - - - + # Carbon cycle feedback + Add_AGWP_CCF = GasserCCFDAGWPNonCO2(t, N2Otau1, IRFT_ECS, IRFT_c1, IRFT_d1, IRFT_c2, IRFT_d2, A_radN2O, a0,a3,a2,a1,tau3,tau2,tau1, A_RadFor_CO2, GASS_gamma , GASS_aS1, GASS_aS2, GASS_aS3, GASS_tauS1, GASS_tauS2, GASS_tauS3, MCO2, MC) + + # - - - - + # no oxydation + if isinstance(t,np.ndarray) : + Add_AGWP_Oxyd = np.zeros(len(t)) + else : + Add_AGWP_Oxyd = 0. + # - - - - + + else : + # No CCF and oxydation for other GHG considered here + if isinstance(t,np.ndarray) : + Add_AGWP_CCF = np.zeros(len(t)) + Add_AGWP_Oxyd = np.zeros(len(t)) + else : + Add_AGWP_CCF = 0. + Add_AGWP_Oxyd = 0. + + + return mass * ( DataG['A_RadFor'] * AGWPfunc + Add_AGWP_CCF + Add_AGWP_Oxyd ) + + + + + + +#------------------------------------------------------------ +# AGTP : Absolute global temperature change potential +#------------------------------------------------------------ +# Integral of (RF(t) * delayed temperature response) over time period +# Input : +# + time +# + Gas informations +# + mass of this gas +# REQUIRES +# Time delayed response coefficients +# Output : +# Absolute global temperature change potential at a given time +# +def AGTP( GasDATA,IRFT_DATA,t,gas,mass,gasorigin): + + # --- + DataG = GasDATA[gas] + + # --- + ECS = IRFT_DATA['ECS'] + azero = DataG['a0'] + AGTPfunc = azero * ECS * IRFT_DATA['c1'] * (1.-np.exp(-t/IRFT_DATA['d1'])) + AGTPfunc += azero * ECS * IRFT_DATA['c2'] * (1.-np.exp(-t/IRFT_DATA['d2'])) + for j in [1,2] : + for i in range(1,DataG['K']+1): # boucle de 1 à "K" + ai = DataG['a'+str(i)] + taui = DataG['tau'+str(i)] + cj = IRFT_DATA['c'+str(j)] + dj = IRFT_DATA['d'+str(j)] + coef = ai * ECS * cj * taui / (taui-dj) + AGTPfunc+= coef * ( np.exp(-t/taui) - np.exp(-t/dj) ) + + # Different formula for CH4 + if gas == "CH4": + + # --- CO2 DATA + DataGCO2 = GasDATA['CO2'] + a0 = DataGCO2['a0'] + a1 = DataGCO2['a1'] + a2 = DataGCO2['a2'] + a3 = DataGCO2['a3'] + tau1 = DataGCO2['tau1'] + tau2 = DataGCO2['tau2'] + tau3 = DataGCO2['tau3'] + A_RadFor_CO2 = DataGCO2['A_RadFor'] + MCO2 = DataGCO2['MolarMass'] + + # --- CH4 DATA + alphaCO2 = DataG['alphaCO2'] # Only CH4 + CH4tau1 = DataG['tau1'] + A_radCH4 = DataG['A_RadFor'] + MCH4 = DataG['MolarMass'] + + # --- OH DATA + tauOH = GasDATA['OH']['tau1'] + + # --- IRFT data + IRFT_ECS = IRFT_DATA['ECS'] + IRFT_c1 = IRFT_DATA['c1'] + IRFT_c2 = IRFT_DATA['c2'] + IRFT_d1 = IRFT_DATA['d1'] + IRFT_d2 = IRFT_DATA['d2'] + # --- C data + MC = GasDATA['C']['MolarMass'] + # --- Gasser CCF suppl.Model + # GASS_gamma = Gasser_CCF_Model['gamma'] + # GASS_aS1 = Gasser_CCF_Model['aS1'] + # GASS_aS2 = Gasser_CCF_Model['aS2'] + # GASS_aS3 = Gasser_CCF_Model['aS3'] + # GASS_tauS1 = Gasser_CCF_Model['tauS1'] + # GASS_tauS2 = Gasser_CCF_Model['tauS2'] + # GASS_tauS3 = Gasser_CCF_Model['tauS3'] + GASS_gamma = 3.015 + GASS_aS1 = 0.6368 + GASS_aS2 = 0.3322 + GASS_aS3 = 0.0310 + GASS_tauS1 = 2.376 + GASS_tauS2 = 30.14 + GASS_tauS3 = 490.1 + + # - - - - + # Carbon cycle feedback + Add_AGTP_CCF = GasserCCFDAGTPNonCO2(t, CH4tau1, IRFT_ECS, IRFT_c1, IRFT_d1, IRFT_c2, IRFT_d2, A_radCH4, a0,a3,a2,a1,tau3,tau2,tau1, A_RadFor_CO2, GASS_gamma , GASS_aS1, GASS_aS2, GASS_aS3, GASS_tauS1, GASS_tauS2, GASS_tauS3, MCO2, MC) + + # - - - - + # CH4 oxydation (CH4 -> CO2) + Add_AGTP_Oxyd = GasserDAGTPCH4toCO2(t, a0, a1, a2, a3, tau1, tau2, tau3, IRFT_ECS, IRFT_c1, IRFT_d1, IRFT_c2, IRFT_d2, A_RadFor_CO2, tauOH, alphaCO2, MCO2, MCH4 ) + + # - - - - - - + + + elif gas =="N2O": + + # --- CO2 DATA + DataGCO2 = GasDATA['CO2'] + a0 = DataGCO2['a0'] + a1 = DataGCO2['a1'] + a2 = DataGCO2['a2'] + a3 = DataGCO2['a3'] + tau1 = DataGCO2['tau1'] + tau2 = DataGCO2['tau2'] + tau3 = DataGCO2['tau3'] + A_RadFor_CO2 = DataGCO2['A_RadFor'] + MCO2 = DataGCO2['MolarMass'] + + # --- CH4 DATA + N2Otau1 = DataG['tau1'] + A_radN2O = DataG['A_RadFor'] + + # --- IRFT data + IRFT_ECS = IRFT_DATA['ECS'] + IRFT_c1 = IRFT_DATA['c1'] + IRFT_c2 = IRFT_DATA['c2'] + IRFT_d1 = IRFT_DATA['d1'] + IRFT_d2 = IRFT_DATA['d2'] + + # --- C data + MC = GasDATA['C']['MolarMass'] + + # --- Gasser CCF suppl.Model + # GASS_gamma = Gasser_CCF_Model['gamma'] + # GASS_aS1 = Gasser_CCF_Model['aS1'] + # GASS_aS2 = Gasser_CCF_Model['aS2'] + # GASS_aS3 = Gasser_CCF_Model['aS3'] + # GASS_tauS1 = Gasser_CCF_Model['tauS1'] + # GASS_tauS2 = Gasser_CCF_Model['tauS2'] + # GASS_tauS3 = Gasser_CCF_Model['tauS3'] + GASS_gamma = 3.015 + GASS_aS1 = 0.6368 + GASS_aS2 = 0.3322 + GASS_aS3 = 0.0310 + GASS_tauS1 = 2.376 + GASS_tauS2 = 30.14 + GASS_tauS3 = 490.1 + + + # - - - - + # Carbon cycle feedback + Add_AGTP_CCF = GasserCCFDAGTPNonCO2(t, N2Otau1, IRFT_ECS, IRFT_c1, IRFT_d1, IRFT_c2, IRFT_d2, A_radN2O, a0,a3,a2,a1,tau3,tau2,tau1 , A_RadFor_CO2, GASS_gamma , GASS_aS1, GASS_aS2, GASS_aS3, GASS_tauS1, GASS_tauS2, GASS_tauS3, MCO2, MC) + + # - - - - - - + # Add_AGTP_Oxyd = 0 FOR N2O + if isinstance(t,np.ndarray) : + Add_AGTP_Oxyd = np.zeros(len(t)) + else : + Add_AGTP_Oxyd = 0. + # - - - - + + + else : + # No CCF and oxydation for other GHG considered here + if isinstance(t,np.ndarray) : + Add_AGTP_CCF = np.zeros(len(t)) + Add_AGTP_Oxyd = np.zeros(len(t)) + + else : + Add_AGTP_CCF = 0. + Add_AGTP_Oxyd = 0. + + + + return mass * ( DataG['A_RadFor']* AGTPfunc + Add_AGTP_CCF + Add_AGTP_Oxyd ) diff --git a/Code/modules/Metrics_oxyd_ccf.py b/Code/modules/Metrics_oxyd_ccf.py new file mode 100644 index 0000000..e2f1645 --- /dev/null +++ b/Code/modules/Metrics_oxyd_ccf.py @@ -0,0 +1,73 @@ +# *-* coding: utf-8 *-* +# +# In this file you will find carbon cycle feedback and CH4 oxydation provided by T.Gasser. +# +# - - - - - - - - - - - - - - - - - - +import numpy as np +# - - - - - - - - - - - - - - - - - - + + +#------------------------------------------------- +# Oxydation +def GasserDAGWPCH4toCO2(t, aC1, aC2, aC3, aC4, tauC1, tauC2, tauC3, AACO2, tauOH, Y, MCO2, MCH4 ): + # AACO2 : Efficacité radiative CO2 + # MCO2 : masse molaire + # MCH4 : masse molaire + # Y : alphaCO2 pour le CH4 + # tauOH : 9.7 et 1 sigma = 1.1 en loi normale + + value = aC1*tauOH*(t + tauOH*(-1 + np.exp(-t/tauOH))) - aC2*tauC1**2*tauOH*(-np.exp(-t/tauOH) + np.exp(-t/tauC1))/(tauC1 - tauOH) - aC3*tauC2**2*tauOH*(-np.exp(-t/tauOH) + np.exp(-t/tauC2))/(tauC2 - tauOH) - aC4*tauC3**2*tauOH*(-np.exp(-t/tauOH) + np.exp(-t/tauC3))/(tauC3 - tauOH) + aC2*tauC1*(tauOH - tauOH*np.exp(-t/tauOH)) + aC3*tauC2*(tauOH - tauOH*np.exp(-t/tauOH)) + aC4*tauC3*(tauOH - tauOH*np.exp(-t/tauOH)) + return AACO2*MCO2*Y*value/(MCH4*tauOH) + +def GasserDAGTPCH4toCO2(t, aC1, aC2, aC3, aC4, tauC1, tauC2, tauC3, kPulseT, aT1, tauT1, aT2, tauT2, AACO2, tauOH, Y, MCO2, MCH4): + # kPulseT : IRFT > ECS + # aT1, tauT1, aT2, tauT2 : IRFT > c1,d1,c2,d2 + # AACO2 : Efficacité radiative CO2 + # tauOH : 9.7 et 1 sigma = 1.1 en loi normale + # Y : alphaCO2 pour le CH4 + # MCO2 : masse molaire + # MCH4 : masse molaire + + value = aC1*aT1*(tauOH - tauOH*np.exp(-t/tauOH)) + aC1*aT2*(tauOH - tauOH*np.exp(-t/tauOH)) - aC1*aT1*tauOH*tauT1*(-np.exp(-t/tauT1) + np.exp(-t/tauOH))/(tauOH - tauT1) - aC1*aT2*tauOH*tauT2*(-np.exp(-t/tauT2) + np.exp(-t/tauOH))/(tauOH - tauT2) + aC2*aT1*tauC1*tauOH*tauT1*(-np.exp(-t/tauT1) + np.exp(-t/tauOH)) / ((-tauC1 + tauT1)*(tauOH - tauT1)) + aC2*aT2*tauC1*tauOH*tauT2*(-np.exp(-t/tauT2) + np.exp(-t/tauOH)) / ((-tauC1 + tauT2)*(tauOH - tauT2)) + aC3*aT1*tauC2*tauOH*tauT1*(-np.exp(-t/tauT1) + np.exp(-t/tauOH)) / ((-tauC2 + tauT1)*(tauOH - tauT1)) + aC3*aT2*tauC2*tauOH*tauT2*(-np.exp(-t/tauT2) + np.exp(-t/tauOH)) / ((-tauC2 + tauT2)*(tauOH - tauT2)) + aC4*aT1*tauC3*tauOH*tauT1*(-np.exp(-t/tauT1) + np.exp(-t/tauOH)) / ((-tauC3 + tauT1)*(tauOH - tauT1)) + aC4*aT2*tauC3*tauOH*tauT2*(-np.exp(-t/tauT2) + np.exp(-t/tauOH)) / ((-tauC3 + tauT2)*(tauOH - tauT2)) - aC2*aT1*tauC1**2*tauOH*(-np.exp(-t/tauOH) + np.exp(-t/tauC1))/((-tauC1 + tauT1)*(tauC1 - tauOH)) - aC2*aT2*tauC1**2*tauOH*(-np.exp(-t/tauOH) + np.exp(-t/tauC1))/((-tauC1 + tauT2)*(tauC1 - tauOH)) - aC3*aT1*tauC2**2*tauOH*(-np.exp(-t/tauOH) + np.exp(-t/tauC2))/((-tauC2 + tauT1)*(tauC2 - tauOH)) - aC3*aT2*tauC2**2*tauOH*(-np.exp(-t/tauOH) + np.exp(-t/tauC2))/((-tauC2 + tauT2)*(tauC2 - tauOH)) - aC4*aT1*tauC3**2*tauOH*(-np.exp(-t/tauOH) + np.exp(-t/tauC3))/((-tauC3 + tauT1)*(tauC3 - tauOH)) - aC4*aT2*tauC3**2*tauOH*(-np.exp(-t/tauOH) + np.exp(-t/tauC3))/((-tauC3 + tauT2)*(tauC3 - tauOH)) + return AACO2*MCO2*Y*kPulseT*value/(MCH4*tauOH) + + + + + + +#------------------------------------------------- +# Carbon cycle feedback +def GasserCCFDAGWPNonCO2(t, tauNonCO2, kPulseT, aT1, tauT1, aT2, tauT2, AANonCO2, aC1, aC2, aC3, aC4, tauC1, tauC2, tauC3, AACO2, gamma, aS1, aS2, aS3, tauS1, tauS2, tauS3, MCO2, MC): + + term1 = -aC1*aS1*aT1*tauT1*t*(1 - np.exp(-t/tauS1))/(tauT1 - tauNonCO2) - aC1*aS1*aT2*tauT2*t*(1 - np.exp(-t/tauS1))/(tauT2 - tauNonCO2) - aC1*aS2*aT1*tauT1*t*(1 - np.exp(-t/tauS2))/(tauT1 - tauNonCO2) - aC1*aS2*aT2*tauT2*t*(1 - np.exp(-t/tauS2))/(tauT2 - tauNonCO2) - aC1*aS3*aT1*tauT1*t*(1 - np.exp(-t/tauS3))/(tauT1 - tauNonCO2) - aC1*aS3*aT2*tauT2*t*(1 - np.exp(-t/tauS3))/(tauT2 - tauNonCO2) - aC1*aT1*tauT1**2/(tauT1 - tauNonCO2) + aC1*aT1*tauT1**2*np.exp(-t/tauT1)/(tauT1 - tauNonCO2) + aC1*aT1*tauT1*t/(tauT1 - tauNonCO2) - aC1*aT2*tauT2**2/(tauT2 - tauNonCO2) + aC1*aT2*tauT2**2*np.exp(-t/tauT2)/(tauT2 - tauNonCO2) + aC1*aT2*tauT2*t/(tauT2 - tauNonCO2) - aC2*aS1*aT1*tauT1*tauC1*(1 - np.exp(-t/tauS1))/(tauT1 - tauNonCO2) - aC2*aS1*aT2*tauT2*tauC1*(1 - np.exp(-t/tauS1))/(tauT2 - tauNonCO2) - aC2*aS2*aT1*tauT1*tauC1*(1 - np.exp(-t/tauS2))/(tauT1 - tauNonCO2) - aC2*aS2*aT2*tauT2*tauC1*(1 - np.exp(-t/tauS2))/(tauT2 - tauNonCO2) - aC2*aS3*aT1*tauT1*tauC1*(1 - np.exp(-t/tauS3))/(tauT1 - tauNonCO2) - aC2*aS3*aT2*tauT2*tauC1*(1 - np.exp(-t/tauS3))/(tauT2 - tauNonCO2) + aC2*aT1*tauT1*tauC1**2*np.exp(-t/tauC1)/((tauT1 - tauC1)*(tauT1 - tauNonCO2)) - aC2*aT1*tauT1*tauC1**2*np.exp(-t/tauT1)/((tauT1 - tauC1)*(tauT1 - tauNonCO2)) + aC2*aT1*tauT1*tauC1/(tauT1 - tauNonCO2) - aC2*aT1*tauT1*tauC1*np.exp(-t/tauT1)/(tauT1 - tauNonCO2) + aC2*aT2*tauT2*tauC1**2*np.exp(-t/tauC1)/((tauT2 - tauC1)*(tauT2 - tauNonCO2)) - aC2*aT2*tauT2*tauC1**2*np.exp(-t/tauT2)/((tauT2 - tauC1)*(tauT2 - tauNonCO2)) + aC2*aT2*tauT2*tauC1/(tauT2 - tauNonCO2) - aC2*aT2*tauT2*tauC1*np.exp(-t/tauT2)/(tauT2 - tauNonCO2) - aC3*aS1*aT1*tauT1*tauC2*(1 - np.exp(-t/tauS1))/(tauT1 - tauNonCO2) - aC3*aS1*aT2*tauT2*tauC2*(1 - np.exp(-t/tauS1))/(tauT2 - tauNonCO2) - aC3*aS2*aT1*tauT1*tauC2*(1 - np.exp(-t/tauS2))/(tauT1 - tauNonCO2) - aC3*aS2*aT2*tauT2*tauC2*(1 - np.exp(-t/tauS2))/(tauT2 - tauNonCO2) - aC3*aS3*aT1*tauT1*tauC2*(1 - np.exp(-t/tauS3))/(tauT1 - tauNonCO2) - aC3*aS3*aT2*tauT2*tauC2*(1 - np.exp(-t/tauS3))/(tauT2 - tauNonCO2) + aC3*aT1*tauT1*tauC2**2*np.exp(-t/tauC2)/((tauT1 - tauC2)*(tauT1 - tauNonCO2)) - aC3*aT1*tauT1*tauC2**2*np.exp(-t/tauT1)/((tauT1 - tauC2)*(tauT1 - tauNonCO2)) + aC3*aT1*tauT1*tauC2/(tauT1 - tauNonCO2) - aC3*aT1*tauT1*tauC2*np.exp(-t/tauT1)/(tauT1 - tauNonCO2) + aC3*aT2*tauT2*tauC2**2*np.exp(-t/tauC2)/((tauT2 - tauC2)*(tauT2 - tauNonCO2)) - aC3*aT2*tauT2*tauC2**2*np.exp(-t/tauT2)/((tauT2 - tauC2)*(tauT2 - tauNonCO2)) + aC3*aT2*tauT2*tauC2/(tauT2 - tauNonCO2) - aC3*aT2*tauT2*tauC2*np.exp(-t/tauT2)/(tauT2 - tauNonCO2) - aC4*aS1*aT1*tauT1*tauC3*(1 - np.exp(-t/tauS1))/(tauT1 - tauNonCO2) - aC4*aS1*aT2*tauT2*tauC3*(1 - np.exp(-t/tauS1))/(tauT2 - tauNonCO2) - aC4*aS2*aT1*tauT1*tauC3*(1 - np.exp(-t/tauS2))/(tauT1 - tauNonCO2) - aC4*aS2*aT2*tauT2*tauC3*(1 - np.exp(-t/tauS2))/(tauT2 - tauNonCO2) - aC4*aS3*aT1*tauT1*tauC3*(1 - np.exp(-t/tauS3))/(tauT1 - tauNonCO2) - aC4*aS3*aT2*tauT2*tauC3*(1 - np.exp(-t/tauS3))/(tauT2 - tauNonCO2) + aC4*aT1*tauT1*tauC3**2*np.exp(-t/tauC3)/((tauT1 - tauC3)*(tauT1 - tauNonCO2)) - aC4*aT1*tauT1*tauC3**2*np.exp(-t/tauT1)/((tauT1 - tauC3)*(tauT1 - tauNonCO2)) + aC4*aT1*tauT1*tauC3/(tauT1 - tauNonCO2) - aC4*aT1*tauT1*tauC3*np.exp(-t/tauT1)/(tauT1 - tauNonCO2) + aC4*aT2*tauT2*tauC3/(tauT2 - tauNonCO2) - aC4*aT2*tauT2*tauC3*np.exp(-t/tauT2)/(tauT2 - tauNonCO2) + + term2 = aC1*aS1*aT1*t*tauNonCO2*(1 - np.exp(-t/tauS1))/(tauT1 - tauNonCO2) + aC1*aS1*aT2*t*tauNonCO2*(1 - np.exp(-t/tauS1))/(tauT2 - tauNonCO2) + aC1*aS2*aT1*t*tauNonCO2*(1 - np.exp(-t/tauS2))/(tauT1 - tauNonCO2) + aC1*aS2*aT2*t*tauNonCO2*(1 - np.exp(-t/tauS2))/(tauT2 - tauNonCO2) + aC1*aS3*aT1*t*tauNonCO2*(1 - np.exp(-t/tauS3))/(tauT1 - tauNonCO2) + aC1*aS3*aT2*t*tauNonCO2*(1 - np.exp(-t/tauS3))/(tauT2 - tauNonCO2) - aC1*aT1*t*tauNonCO2/(tauT1 - tauNonCO2) + aC1*aT1*tauNonCO2**2/(tauT1 - tauNonCO2) + aC1*aT1*tauNonCO2**2*np.exp(-t/tauNonCO2)/(-tauT1 + tauNonCO2) - aC1*aT2*t*tauNonCO2/(tauT2 - tauNonCO2) + aC1*aT2*tauNonCO2**2/(tauT2 - tauNonCO2) + aC1*aT2*tauNonCO2**2*np.exp(-t/tauNonCO2)/(-tauT2 + tauNonCO2) + aC2*aS1*aT1*tauC1*tauNonCO2*(1 - np.exp(-t/tauS1))/(tauT1 - tauNonCO2) + aC2*aS1*aT2*tauC1*tauNonCO2*(1 - np.exp(-t/tauS1))/(tauT2 - tauNonCO2) + aC2*aS2*aT1*tauC1*tauNonCO2*(1 - np.exp(-t/tauS2))/(tauT1 - tauNonCO2) + aC2*aS2*aT2*tauC1*tauNonCO2*(1 - np.exp(-t/tauS2))/(tauT2 - tauNonCO2) + aC2*aS3*aT1*tauC1*tauNonCO2*(1 - np.exp(-t/tauS3))/(tauT1 - tauNonCO2) + aC2*aS3*aT2*tauC1*tauNonCO2*(1 - np.exp(-t/tauS3))/(tauT2 - tauNonCO2) + aC2*aT1*tauC1**2*tauNonCO2*np.exp(-t/tauC1)/((tauT1 - tauNonCO2)*(tauC1 - tauNonCO2)) - aC2*aT1*tauC1**2*tauNonCO2*np.exp(-t/tauNonCO2)/((-tauT1 + tauNonCO2)*(-tauC1 + tauNonCO2)) - aC2*aT1*tauC1*tauNonCO2/(tauT1 - tauNonCO2) + aC2*aT1*tauC1*tauNonCO2*np.exp(-t/tauNonCO2)/(tauT1 - tauNonCO2) + aC2*aT2*tauC1**2*tauNonCO2*np.exp(-t/tauC1)/((tauT2 - tauNonCO2)*(tauC1 - tauNonCO2)) - aC2*aT2*tauC1**2*tauNonCO2*np.exp(-t/tauNonCO2)/((-tauT2 + tauNonCO2)*(-tauC1 + tauNonCO2)) - aC2*aT2*tauC1*tauNonCO2/(tauT2 - tauNonCO2) + aC2*aT2*tauC1*tauNonCO2*np.exp(-t/tauNonCO2)/(tauT2 - tauNonCO2) + aC3*aS1*aT1*tauC2*tauNonCO2*(1 - np.exp(-t/tauS1))/(tauT1 - tauNonCO2) + aC3*aS1*aT2*tauC2*tauNonCO2*(1 - np.exp(-t/tauS1))/(tauT2 - tauNonCO2) + aC3*aS2*aT1*tauC2*tauNonCO2*(1 - np.exp(-t/tauS2))/(tauT1 - tauNonCO2) + aC3*aS2*aT2*tauC2*tauNonCO2*(1 - np.exp(-t/tauS2))/(tauT2 - tauNonCO2) + aC3*aS3*aT1*tauC2*tauNonCO2*(1 - np.exp(-t/tauS3))/(tauT1 - tauNonCO2) + aC3*aS3*aT2*tauC2*tauNonCO2*(1 - np.exp(-t/tauS3))/(tauT2 - tauNonCO2) + aC3*aT1*tauC2**2*tauNonCO2*np.exp(-t/tauC2)/((tauT1 - tauNonCO2)*(tauC2 - tauNonCO2)) - aC3*aT1*tauC2**2*tauNonCO2*np.exp(-t/tauNonCO2)/((-tauT1 + tauNonCO2)*(-tauC2 + tauNonCO2)) - aC3*aT1*tauC2*tauNonCO2/(tauT1 - tauNonCO2) + aC3*aT1*tauC2*tauNonCO2*np.exp(-t/tauNonCO2)/(tauT1 - tauNonCO2) + aC3*aT2*tauC2**2*tauNonCO2*np.exp(-t/tauC2)/((tauT2 - tauNonCO2)*(tauC2 - tauNonCO2)) - aC3*aT2*tauC2**2*tauNonCO2*np.exp(-t/tauNonCO2)/((-tauT2 + tauNonCO2)*(-tauC2 + tauNonCO2)) - aC3*aT2*tauC2*tauNonCO2/(tauT2 - tauNonCO2) + aC3*aT2*tauC2*tauNonCO2*np.exp(-t/tauNonCO2)/(tauT2 - tauNonCO2) + aC4*aS1*aT1*tauC3*tauNonCO2*(1 - np.exp(-t/tauS1))/(tauT1 - tauNonCO2) + aC4*aS1*aT2*tauC3*tauNonCO2*(1 - np.exp(-t/tauS1))/(tauT2 - tauNonCO2) + aC4*aS2*aT1*tauC3*tauNonCO2*(1 - np.exp(-t/tauS2))/(tauT1 - tauNonCO2) + aC4*aS2*aT2*tauC3*tauNonCO2*(1 - np.exp(-t/tauS2))/(tauT2 - tauNonCO2) + aC4*aS3*aT1*tauC3*tauNonCO2*(1 - np.exp(-t/tauS3))/(tauT1 - tauNonCO2) + aC4*aS3*aT2*tauC3*tauNonCO2*(1 - np.exp(-t/tauS3))/(tauT2 - tauNonCO2) + aC4*aT1*tauC3**2*tauNonCO2*np.exp(-t/tauC3)/((tauT1 - tauNonCO2)*(tauC3 - tauNonCO2)) - aC4*aT1*tauC3**2*tauNonCO2*np.exp(-t/tauNonCO2)/((-tauT1 + tauNonCO2)*(-tauC3 + tauNonCO2)) - aC4*aT1*tauC3*tauNonCO2/(tauT1 - tauNonCO2) + aC4*aT1*tauC3*tauNonCO2*np.exp(-t/tauNonCO2)/(tauT1 - tauNonCO2) + aC4*aT2*tauT2*tauC3**2*np.exp(-t/tauC3)/((tauT2 - tauC3)*(tauT2 - tauNonCO2)) - aC4*aT2*tauT2*tauC3**2*np.exp(-t/tauT2)/((tauT2 - tauC3)*(tauT2 - tauNonCO2)) + aC4*aT2*tauC3**2*tauNonCO2*np.exp(-t/tauC3)/((tauT2 - tauNonCO2)*(tauC3 - tauNonCO2)) - aC4*aT2*tauC3*tauNonCO2/(tauT2 - tauNonCO2) + aC4*aT2*tauC3*tauNonCO2*np.exp(-t/tauNonCO2)/(tauT2 - tauNonCO2) + + term3 = -aC1*aS1*aT1*tauT1**3*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS1)) - aC1*aS1*aT2*tauT2**3*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS1)) + aC2*aS1*aT1*tauT1**2*tauC1**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)) + aC2*aS1*aT1*tauT1**2*tauC1*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS1)) - aC2*aS1*aT1*tauT1*tauC1**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauC1 - tauS1)) + aC2*aS1*aT1*tauC1**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC1))/((-tauT1 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauC1 - tauS1)) - aC2*aS1*aT1*tauC1*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC2*aS1*aT2*tauT2**2*tauC1**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) + aC2*aS1*aT2*tauT2**2*tauC1*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS1)) - aC2*aS1*aT2*tauT2*tauC1**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC1))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauC1 - tauS1)) + aC2*aS1*aT2*tauC1**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC1))/((-tauT2 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauC1 - tauS1)) - aC2*aS1*aT2*tauC1*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC3*aS1*aT1*tauT1**2*tauC2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)) + aC3*aS1*aT1*tauT1**2*tauC2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS1)) - aC3*aS1*aT1*tauT1*tauC2**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauC2 - tauS1)) + aC3*aS1*aT1*tauC2**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC2))/((-tauT1 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauC2 - tauS1)) - aC3*aS1*aT1*tauC2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC3*aS1*aT2*tauT2**2*tauC2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) + aC3*aS1*aT2*tauT2**2*tauC2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS1)) - aC3*aS1*aT2*tauT2*tauC2**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauC2 - tauS1)) + aC3*aS1*aT2*tauC2**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC2))/((-tauT2 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauC2 - tauS1)) + aC4*aS1*aT1*tauT1**2*tauC3**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)) + aC4*aS1*aT1*tauT1**2*tauC3*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS1)) - aC4*aS1*aT1*tauT1*tauC3**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC3))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauC3 - tauS1)) + aC4*aS1*aT1*tauC3**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC3))/((-tauT1 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauC3 - tauS1)) - aC4*aS1*aT1*tauC3*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC4*aS1*aT2*tauT2**2*tauC3**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) + aC4*aS1*aT2*tauT2**2*tauC3*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS1)) - aC4*aS1*aT2*tauT2*tauC3**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC3))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauC3 - tauS1)) + aC4*aS1*aT2*tauC3**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC3))/((-tauT2 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauC3 - tauS1)) - aC4*aT2*tauC3**2*tauNonCO2*np.exp(-t/tauNonCO2)/((-tauT2 + tauNonCO2)*(-tauC3 + tauNonCO2)) + + term4 = aC1*aS1*aT1*tauT1**2*(tauS1 - tauS1*np.exp(-t/tauS1))/(tauS1*(tauT1 - tauNonCO2)) - aC1*aS1*aT1*tauT1*(t - tauS1*np.exp(t/tauS1) + tauS1)*np.exp(-t/tauS1)/(tauT1 - tauNonCO2) + aC1*aS1*aT1*tauNonCO2**3*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC1*aS1*aT1*tauNonCO2**2*(tauS1 - tauS1*np.exp(-t/tauS1))/(tauS1*(-tauT1 + tauNonCO2)) + aC1*aS1*aT1*tauNonCO2*(t - tauS1*np.exp(t/tauS1) + tauS1)*np.exp(-t/tauS1)/(tauT1 - tauNonCO2) + aC1*aS1*aT2*tauT2**2*(tauS1 - tauS1*np.exp(-t/tauS1))/(tauS1*(tauT2 - tauNonCO2)) - aC1*aS1*aT2*tauT2*(t - tauS1*np.exp(t/tauS1) + tauS1)*np.exp(-t/tauS1)/(tauT2 - tauNonCO2) + aC1*aS1*aT2*tauNonCO2**3*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC1*aS1*aT2*tauNonCO2**2*(tauS1 - tauS1*np.exp(-t/tauS1))/(tauS1*(-tauT2 + tauNonCO2)) + aC1*aS1*aT2*tauNonCO2*(t - tauS1*np.exp(t/tauS1) + tauS1)*np.exp(-t/tauS1)/(tauT2 - tauNonCO2) - aC1*aS2*aT1*tauT1**3*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS2)) + aC1*aS2*aT1*tauT1**2*(tauS2 - tauS2*np.exp(-t/tauS2))/(tauS2*(tauT1 - tauNonCO2)) - aC1*aS2*aT1*tauT1*(t - tauS2*np.exp(t/tauS2) + tauS2)*np.exp(-t/tauS2)/(tauT1 - tauNonCO2) + aC1*aS2*aT1*tauNonCO2**3*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC1*aS2*aT1*tauNonCO2**2*(tauS2 - tauS2*np.exp(-t/tauS2))/(tauS2*(-tauT1 + tauNonCO2)) + aC1*aS2*aT1*tauNonCO2*(t - tauS2*np.exp(t/tauS2) + tauS2)*np.exp(-t/tauS2)/(tauT1 - tauNonCO2) - aC1*aS2*aT2*tauT2**3*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS2)) + aC1*aS2*aT2*tauT2**2*(tauS2 - tauS2*np.exp(-t/tauS2))/(tauS2*(tauT2 - tauNonCO2)) - aC1*aS2*aT2*tauT2*(t - tauS2*np.exp(t/tauS2) + tauS2)*np.exp(-t/tauS2)/(tauT2 - tauNonCO2) + aC1*aS2*aT2*tauNonCO2**3*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC1*aS2*aT2*tauNonCO2**2*(tauS2 - tauS2*np.exp(-t/tauS2))/(tauS2*(-tauT2 + tauNonCO2)) + aC1*aS2*aT2*tauNonCO2*(t - tauS2*np.exp(t/tauS2) + tauS2)*np.exp(-t/tauS2)/(tauT2 - tauNonCO2) - aC1*aS3*aT1*tauT1**3*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS3)) + aC1*aS3*aT1*tauT1**2*(tauS3 - tauS3*np.exp(-t/tauS3))/(tauS3*(tauT1 - tauNonCO2)) - aC1*aS3*aT1*tauT1*(t - tauS3*np.exp(t/tauS3) + tauS3)*np.exp(-t/tauS3)/(tauT1 - tauNonCO2) + aC1*aS3*aT1*tauNonCO2**3*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS3)) + aC1*aS3*aT1*tauNonCO2**2*(tauS3 - tauS3*np.exp(-t/tauS3))/(tauS3*(-tauT1 + tauNonCO2)) + aC1*aS3*aT1*tauNonCO2*(t - tauS3*np.exp(t/tauS3) + tauS3)*np.exp(-t/tauS3)/(tauT1 - tauNonCO2) - aC1*aS3*aT2*tauT2**3*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS3)) + aC1*aS3*aT2*tauT2**2*(tauS3 - tauS3*np.exp(-t/tauS3))/(tauS3*(tauT2 - tauNonCO2)) - aC1*aS3*aT2*tauT2*(t - tauS3*np.exp(t/tauS3) + tauS3)*np.exp(-t/tauS3)/(tauT2 - tauNonCO2) + aC1*aS3*aT2*tauNonCO2**3*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS3)) + aC1*aS3*aT2*tauNonCO2**2*(tauS3 - tauS3*np.exp(-t/tauS3))/(tauS3*(-tauT2 + tauNonCO2)) + aC1*aS3*aT2*tauNonCO2*(t - tauS3*np.exp(t/tauS3) + tauS3)*np.exp(-t/tauS3)/(tauT2 - tauNonCO2) - aC2*aS1*aT1*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS1)) - aC2*aS1*aT2*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((-tauT2 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC2*aS2*aT1*tauT1**2*tauC1**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)) + aC2*aS2*aT1*tauT1**2*tauC1*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS2)) - aC2*aS2*aT1*tauT1*tauC1**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauC1 - tauS2)) + aC2*aS2*aT1*tauC1**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC1))/((-tauT1 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauC1 - tauS2)) - aC2*aS2*aT1*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS2)) - aC2*aS2*aT1*tauC1*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC2*aS2*aT2*tauT2**2*tauC1**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) + aC2*aS2*aT2*tauT2**2*tauC1*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS2)) - aC2*aS2*aT2*tauT2*tauC1**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC1))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauC1 - tauS2)) + aC2*aS2*aT2*tauC1**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC1))/((-tauT2 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauC1 - tauS2)) - aC2*aS2*aT2*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((-tauT2 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS2)) - aC2*aS2*aT2*tauC1*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC2*aS3*aT1*tauT1**2*tauC1**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)) + aC2*aS3*aT1*tauT1**2*tauC1*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS3)) - aC2*aS3*aT1*tauT1*tauC1**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauC1 - tauS3)) + aC2*aS3*aT1*tauC1**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC1))/((-tauT1 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauC1 - tauS3)) - aC2*aS3*aT1*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS3)) - aC2*aS3*aT1*tauC1*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS3)) + aC2*aS3*aT2*tauT2**2*tauC1**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) + aC2*aS3*aT2*tauT2**2*tauC1*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS3)) - aC2*aS3*aT2*tauT2*tauC1**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC1))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauC1 - tauS3)) + aC2*aS3*aT2*tauC1**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC1))/((-tauT2 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauC1 - tauS3)) - aC2*aS3*aT2*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((-tauT2 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS3)) - aC2*aS3*aT2*tauC1*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS3)) - aC3*aS1*aT1*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS1)) - aC3*aS1*aT2*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((-tauT2 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS1)) - aC3*aS1*aT2*tauC2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC3*aS2*aT1*tauT1**2*tauC2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)) + aC3*aS2*aT1*tauT1**2*tauC2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS2)) - aC3*aS2*aT1*tauT1*tauC2**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauC2 - tauS2)) + aC3*aS2*aT1*tauC2**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC2))/((-tauT1 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauC2 - tauS2)) - aC3*aS2*aT1*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS2)) - aC3*aS2*aT1*tauC2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC3*aS2*aT2*tauT2**2*tauC2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) + aC3*aS2*aT2*tauT2**2*tauC2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS2)) - aC3*aS2*aT2*tauT2*tauC2**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauC2 - tauS2)) + aC3*aS2*aT2*tauC2**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC2))/((-tauT2 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauC2 - tauS2)) - aC3*aS2*aT2*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((-tauT2 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS2)) - aC3*aS2*aT2*tauC2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC3*aS3*aT1*tauT1**2*tauC2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)) + aC3*aS3*aT1*tauT1**2*tauC2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS3)) - aC3*aS3*aT1*tauT1*tauC2**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauC2 - tauS3)) + aC3*aS3*aT1*tauC2**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC2))/((-tauT1 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauC2 - tauS3)) - aC3*aS3*aT1*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS3)) - aC3*aS3*aT1*tauC2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS3)) + aC3*aS3*aT2*tauT2**2*tauC2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) + aC3*aS3*aT2*tauT2**2*tauC2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS3)) - aC3*aS3*aT2*tauT2*tauC2**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauC2 - tauS3)) + aC3*aS3*aT2*tauC2**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC2))/((-tauT2 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauC2 - tauS3)) - aC3*aS3*aT2*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((-tauT2 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS3)) - aC3*aS3*aT2*tauC2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS3)) - aC4*aS1*aT1*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS1)) - aC4*aS1*aT2*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((-tauT2 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS1)) - aC4*aS1*aT2*tauC3*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC4*aS2*aT1*tauT1**2*tauC3**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)) + aC4*aS2*aT1*tauT1**2*tauC3*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS2)) - aC4*aS2*aT1*tauT1*tauC3**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC3))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauC3 - tauS2)) + aC4*aS2*aT1*tauC3**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC3))/((-tauT1 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauC3 - tauS2)) - aC4*aS2*aT1*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS2)) - aC4*aS2*aT1*tauC3*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC4*aS2*aT2*tauT2**2*tauC3**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) + aC4*aS2*aT2*tauT2**2*tauC3*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS2)) - aC4*aS2*aT2*tauT2*tauC3**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC3))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauC3 - tauS2)) + aC4*aS2*aT2*tauC3**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC3))/((-tauT2 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauC3 - tauS2)) - aC4*aS2*aT2*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((-tauT2 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS2)) - aC4*aS2*aT2*tauC3*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC4*aS3*aT1*tauT1**2*tauC3**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)) + aC4*aS3*aT1*tauT1**2*tauC3*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS3)) - aC4*aS3*aT1*tauT1*tauC3**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC3))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauC3 - tauS3)) + aC4*aS3*aT1*tauC3**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC3))/((-tauT1 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauC3 - tauS3)) - aC4*aS3*aT1*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS3)) - aC4*aS3*aT1*tauC3*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS3)) + aC4*aS3*aT2*tauT2**2*tauC3**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) + aC4*aS3*aT2*tauT2**2*tauC3*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS3)) - aC4*aS3*aT2*tauT2*tauC3**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC3))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauC3 - tauS3)) + aC4*aS3*aT2*tauC3**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC3))/((-tauT2 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauC3 - tauS3)) - aC4*aS3*aT2*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((-tauT2 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS3)) - aC4*aS3*aT2*tauC3*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS3)) + + value = term1 + term2 + term3 + term4 + + return (MCO2/MC)*1E12 * AANonCO2 * AACO2 * gamma * kPulseT * tauNonCO2 * value + + + + +#------------------------------------------------- +def GasserCCFDAGTPNonCO2(t, tauNonCO2, kPulseT, aT1, tauT1, aT2, tauT2, AANonCO2, aC1, aC2, aC3, aC4, tauC1, tauC2, tauC3, AACO2, gamma, aS1, aS2, aS3, tauS1, tauS2, tauS3, MCO2, MC): + + term1 = -aC1*aS1*aT1**2*tauT1**2*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)**2*(tauT1 - tauS1)) + aC1*aS1*aT1**2*tauT1**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS1)) + aC1*aS1*aT1**2*tauT1*t*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS1)) + aC1*aS1*aT1**2*tauT1*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)**2*(tauNonCO2 - tauS1)) + aC1*aS1*aT1**2*tauT1*(-tauT1*tauS1 + (tauT1*(t + tauS1) - t*tauS1)*np.exp(t*(-1/tauS1 + 1/tauT1)))*np.exp(-t/tauT1)/((tauT1 - tauNonCO2)*(tauT1 - tauS1)**2) - aC1*aS1*aT1**2*tauT1*(tauS1 - tauS1*np.exp(-t/tauS1))/(tauS1*(tauT1 - tauNonCO2)) - aC1*aS1*aT1**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC1*aS1*aT1*tauT1**2*aT2*tauT2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauS1)*(tauT2 - tauNonCO2)) + aC1*aS1*aT1*tauT1**2*aT2*tauT2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)) + aC1*aS1*aT1*tauT1**2*aT2*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS1)*(-tauT2 + tauNonCO2)) + aC1*aS1*aT1*tauT1**2*aT2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS1)) - aC1*aS1*aT1*tauT1*aT2*tauT2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) - aC1*aS1*aT1*tauT1*aT2*tauT2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauS1)) - aC1*aS1*aT1*tauT1*aT2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(-tauT2 + tauNonCO2)*(tauNonCO2 - tauS1)) - aC1*aS1*aT1*tauT1*aT2*(1 - np.exp(-t/tauS1))/(tauT1 - tauNonCO2) + aC1*aS1*aT1*aT2*tauT2**2*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((-tauT1 + tauNonCO2)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) + aC1*aS1*aT1*aT2*tauT2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS1)) - aC1*aS1*aT1*aT2*tauT2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauNonCO2)*(tauNonCO2 - tauS1)) - aC1*aS1*aT1*aT2*tauT2*(1 - np.exp(-t/tauS1))/(tauT2 - tauNonCO2) - aC1*aS1*aT1*aT2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS1)) - aC1*aS1*aT1*aT2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC1*aS1*aT1*aT2*tauNonCO2*(1 - np.exp(-t/tauS1))/(tauT2 - tauNonCO2) + aC1*aS1*aT1*aT2*tauNonCO2*(1 - np.exp(-t/tauS1))/(tauT1 - tauNonCO2) - aC1*aS1*aT2**2*tauT2**2*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)**2*(tauT2 - tauS1)) + aC1*aS1*aT2**2*tauT2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS1)) + aC1*aS1*aT2**2*tauT2*t*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS1)) + aC1*aS1*aT2**2*tauT2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)**2*(tauNonCO2 - tauS1)) + aC1*aS1*aT2**2*tauT2*(-tauT2*tauS1 + (tauT2*(t + tauS1) - t*tauS1)*np.exp(t*(-1/tauS1 + 1/tauT2)))*np.exp(-t/tauT2)/((tauT2 - tauNonCO2)*(tauT2 - tauS1)**2) - aC1*aS1*aT2**2*tauT2*(tauS1 - tauS1*np.exp(-t/tauS1))/(tauS1*(tauT2 - tauNonCO2)) - aC1*aS1*aT2**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS1)) - aC1*aS2*aT1**2*tauT1**2*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)**2*(tauT1 - tauS2)) + aC1*aS2*aT1**2*tauT1**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS2)) + aC1*aS2*aT1**2*tauT1*t*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS2)) + aC1*aS2*aT1**2*tauT1*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)**2*(tauNonCO2 - tauS2)) + aC1*aS2*aT1**2*tauT1*(-tauT1*tauS2 + (tauT1*(t + tauS2) - t*tauS2)*np.exp(t*(-1/tauS2 + 1/tauT1)))*np.exp(-t/tauT1)/((tauT1 - tauNonCO2)*(tauT1 - tauS2)**2) - aC1*aS2*aT1**2*tauT1*(tauS2 - tauS2*np.exp(-t/tauS2))/(tauS2*(tauT1 - tauNonCO2)) - aC1*aS2*aT1**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC1*aS2*aT1*tauT1**2*aT2*tauT2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauS2)*(tauT2 - tauNonCO2)) + aC1*aS2*aT1*tauT1**2*aT2*tauT2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)) + aC1*aS2*aT1*tauT1**2*aT2*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS2)*(-tauT2 + tauNonCO2)) + aC1*aS2*aT1*tauT1**2*aT2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS2)) - aC1*aS2*aT1*tauT1*aT2*tauT2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) - aC1*aS2*aT1*tauT1*aT2*tauT2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauS2)) - aC1*aS2*aT1*tauT1*aT2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(-tauT2 + tauNonCO2)*(tauNonCO2 - tauS2)) - aC1*aS2*aT1*tauT1*aT2*(1 - np.exp(-t/tauS2))/(tauT1 - tauNonCO2) + + term2 = aC1*aS2*aT1*aT2*tauT2**2*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((-tauT1 + tauNonCO2)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) + aC1*aS2*aT1*aT2*tauT2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS2)) - aC1*aS2*aT1*aT2*tauT2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauNonCO2)*(tauNonCO2 - tauS2)) - aC1*aS2*aT1*aT2*tauT2*(1 - np.exp(-t/tauS2))/(tauT2 - tauNonCO2) - aC1*aS2*aT1*aT2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS2)) - aC1*aS2*aT1*aT2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC1*aS2*aT1*aT2*tauNonCO2*(1 - np.exp(-t/tauS2))/(tauT2 - tauNonCO2) + aC1*aS2*aT1*aT2*tauNonCO2*(1 - np.exp(-t/tauS2))/(tauT1 - tauNonCO2) - aC1*aS2*aT2**2*tauT2**2*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)**2*(tauT2 - tauS2)) + aC1*aS2*aT2**2*tauT2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS2)) + aC1*aS2*aT2**2*tauT2*t*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS2)) + aC1*aS2*aT2**2*tauT2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)**2*(tauNonCO2 - tauS2)) + aC1*aS2*aT2**2*tauT2*(-tauT2*tauS2 + (tauT2*(t + tauS2) - t*tauS2)*np.exp(t*(-1/tauS2 + 1/tauT2)))*np.exp(-t/tauT2)/((tauT2 - tauNonCO2)*(tauT2 - tauS2)**2) - aC1*aS2*aT2**2*tauT2*(tauS2 - tauS2*np.exp(-t/tauS2))/(tauS2*(tauT2 - tauNonCO2)) - aC1*aS2*aT2**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS2)) - aC1*aS3*aT1**2*tauT1**2*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)**2*(tauT1 - tauS3)) + aC1*aS3*aT1**2*tauT1**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS3)) + aC1*aS3*aT1**2*tauT1*t*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS3)) + aC1*aS3*aT1**2*tauT1*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)**2*(tauNonCO2 - tauS3)) + aC1*aS3*aT1**2*tauT1*(-tauT1*tauS3 + (tauT1*(t + tauS3) - t*tauS3)*np.exp(t*(-1/tauS3 + 1/tauT1)))*np.exp(-t/tauT1)/((tauT1 - tauNonCO2)*(tauT1 - tauS3)**2) - aC1*aS3*aT1**2*tauT1*(tauS3 - tauS3*np.exp(-t/tauS3))/(tauS3*(tauT1 - tauNonCO2)) - aC1*aS3*aT1**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS3)) + aC1*aS3*aT1*tauT1**2*aT2*tauT2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauS3)*(tauT2 - tauNonCO2)) + aC1*aS3*aT1*tauT1**2*aT2*tauT2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)) + aC1*aS3*aT1*tauT1**2*aT2*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS3)*(-tauT2 + tauNonCO2)) + aC1*aS3*aT1*tauT1**2*aT2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauNonCO2)*(tauT1 - tauS3)) - aC1*aS3*aT1*tauT1*aT2*tauT2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) - aC1*aS3*aT1*tauT1*aT2*tauT2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauS3)) - aC1*aS3*aT1*tauT1*aT2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(-tauT2 + tauNonCO2)*(tauNonCO2 - tauS3)) - aC1*aS3*aT1*tauT1*aT2*(1 - np.exp(-t/tauS3))/(tauT1 - tauNonCO2) + aC1*aS3*aT1*aT2*tauT2**2*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((-tauT1 + tauNonCO2)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) + aC1*aS3*aT1*aT2*tauT2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS3)) - aC1*aS3*aT1*aT2*tauT2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauNonCO2)*(tauNonCO2 - tauS3)) - aC1*aS3*aT1*aT2*tauT2*(1 - np.exp(-t/tauS3))/(tauT2 - tauNonCO2) - aC1*aS3*aT1*aT2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS3)) - aC1*aS3*aT1*aT2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauNonCO2)*(tauNonCO2 - tauS3)) + aC1*aS3*aT1*aT2*tauNonCO2*(1 - np.exp(-t/tauS3))/(tauT2 - tauNonCO2) + aC1*aS3*aT1*aT2*tauNonCO2*(1 - np.exp(-t/tauS3))/(tauT1 - tauNonCO2) - aC1*aS3*aT2**2*tauT2**2*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)**2*(tauT2 - tauS3)) + aC1*aS3*aT2**2*tauT2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS3)) + aC1*aS3*aT2**2*tauT2*t*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauNonCO2)*(tauT2 - tauS3)) + aC1*aS3*aT2**2*tauT2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)**2*(tauNonCO2 - tauS3)) + aC1*aS3*aT2**2*tauT2*(-tauT2*tauS3 + (tauT2*(t + tauS3) - t*tauS3)*np.exp(t*(-1/tauS3 + 1/tauT2)))*np.exp(-t/tauT2)/((tauT2 - tauNonCO2)*(tauT2 - tauS3)**2) - aC1*aS3*aT2**2*tauT2*(tauS3 - tauS3*np.exp(-t/tauS3))/(tauS3*(tauT2 - tauNonCO2)) - aC1*aS3*aT2**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT2 - tauNonCO2)*(tauNonCO2 - tauS3)) - aC1*aT1**2*tauT1*tauNonCO2*np.exp(-t/tauNonCO2)/(tauT1 - tauNonCO2)**2 + aC1*aT1**2*tauT1*tauNonCO2*np.exp(-t/tauT1)/(tauT1 - tauNonCO2)**2 + aC1*aT1**2*tauT1/(tauT1 - tauNonCO2) - aC1*aT1**2*tauT1*np.exp(-t/tauT1)/(tauT1 - tauNonCO2) - aC1*aT1**2*t*np.exp(-t/tauT1)/(tauT1 - tauNonCO2) - aC1*aT1**2*tauNonCO2/(tauT1 - tauNonCO2) + aC1*aT1**2*tauNonCO2*np.exp(-t/tauNonCO2)/(tauT1 - tauNonCO2) + aC1*aT1*tauT1*aT2*tauT2*np.exp(-t/tauT2)/((tauT1 - tauT2)*(tauT2 - tauNonCO2)) - aC1*aT1*tauT1*aT2*tauT2*np.exp(-t/tauT1)/((tauT1 - tauT2)*(tauT2 - tauNonCO2)) + aC1*aT1*tauT1*aT2*tauT2*np.exp(-t/tauT2)/((tauT1 - tauT2)*(tauT1 - tauNonCO2)) - aC1*aT1*tauT1*aT2*tauT2*np.exp(-t/tauT1)/((tauT1 - tauT2)*(tauT1 - tauNonCO2)) + aC1*aT1*tauT1*aT2*tauNonCO2*np.exp(-t/tauT1)/((tauT1 - tauNonCO2)*(tauT2 - tauNonCO2)) + aC1*aT1*tauT1*aT2*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT1 - tauNonCO2)*(-tauT2 + tauNonCO2)) + aC1*aT1*tauT1*aT2/(tauT1 - tauNonCO2) - aC1*aT1*tauT1*aT2*np.exp(-t/tauT1)/(tauT1 - tauNonCO2) + aC1*aT1*aT2*tauT2*tauNonCO2*np.exp(-t/tauT2)/((tauT1 - tauNonCO2)*(tauT2 - tauNonCO2)) + aC1*aT1*aT2*tauT2*tauNonCO2*np.exp(-t/tauNonCO2)/((-tauT1 + tauNonCO2)*(tauT2 - tauNonCO2)) + aC1*aT1*aT2*tauT2/(tauT2 - tauNonCO2) - aC1*aT1*aT2*tauT2*np.exp(-t/tauT2)/(tauT2 - tauNonCO2) - aC1*aT1*aT2*tauNonCO2/(tauT2 - tauNonCO2) + aC1*aT1*aT2*tauNonCO2*np.exp(-t/tauNonCO2)/(tauT2 - tauNonCO2) - aC1*aT1*aT2*tauNonCO2/(tauT1 - tauNonCO2) + aC1*aT1*aT2*tauNonCO2*np.exp(-t/tauNonCO2)/(tauT1 - tauNonCO2) - aC1*aT2**2*tauT2*tauNonCO2*np.exp(-t/tauNonCO2)/(tauT2 - tauNonCO2)**2 + aC1*aT2**2*tauT2*tauNonCO2*np.exp(-t/tauT2)/(tauT2 - tauNonCO2)**2 + aC1*aT2**2*tauT2/(tauT2 - tauNonCO2) - aC1*aT2**2*tauT2*np.exp(-t/tauT2)/(tauT2 - tauNonCO2) - aC1*aT2**2*t*np.exp(-t/tauT2)/(tauT2 - tauNonCO2) - aC1*aT2**2*tauNonCO2/(tauT2 - tauNonCO2) + aC1*aT2**2*tauNonCO2*np.exp(-t/tauNonCO2)/(tauT2 - tauNonCO2) + aC2*aS1*aT1**2*tauT1**2*tauC1**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC1)**2*(tauT1 - tauNonCO2)*(tauT1 - tauS1)) + aC2*aS1*aT1**2*tauT1**2*tauC1*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)**2*(tauT1 - tauS1)) - aC2*aS1*aT1**2*tauT1*t*tauC1*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)) - aC2*aS1*aT1**2*tauT1*tauC1**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC1))/((tauT1 - tauC1)**2*(tauT1 - tauNonCO2)*(tauC1 - tauS1)) - aC2*aS1*aT1**2*tauT1*tauC1*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)**2*(tauNonCO2 - tauS1)) - aC2*aS1*aT1**2*tauT1*tauC1*(-tauT1*tauS1 + (tauT1*(t + tauS1) - t*tauS1)*np.exp(t*(-1/tauS1 + 1/tauT1)))*np.exp(-t/tauT1)/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)**2) - aC2*aS1*aT1**2*tauC1**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauC1 - tauNonCO2)*(tauC1 - tauS1)) + aC2*aS1*aT1**2*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS1)) - aC2*aS1*aT1*tauT1**2*aT2*tauT2*tauC1*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)*(tauT2 - tauC1)) - aC2*aS1*aT1*tauT1**2*aT2*tauT2*tauC1*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauC1)*(tauT1 - tauS1)*(tauT2 - tauNonCO2)) - aC2*aS1*aT1*tauT1**2*aT2*tauC1**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)*(-tauT2 + tauC1)) - aC2*aS1*aT1*tauT1**2*aT2*tauC1*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)*(-tauT2 + tauNonCO2)) + aC2*aS1*aT1*tauT1*aT2*tauT2**2*tauC1*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauC1)*(tauT2 - tauS1)) + aC2*aS1*aT1*tauT1*aT2*tauT2**2*tauC1*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) + aC2*aS1*aT1*tauT1*aT2*tauC1**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(-tauT2 + tauC1)*(tauC1 - tauS1)) + aC2*aS1*aT1*tauT1*aT2*tauC1*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(-tauT2 + tauNonCO2)*(tauNonCO2 - tauS1)) - aC2*aS1*aT1*aT2*tauT2**2*tauC1**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((-tauT1 + tauC1)*(tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) - aC2*aS1*aT1*aT2*tauT2**2*tauC1*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) + aC2*aS1*aT1*aT2*tauT2*tauC1**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC1))/((-tauT1 + tauC1)*(tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauC1 - tauS1)) + aC2*aS1*aT1*aT2*tauT2*tauC1*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC2*aS1*aT1*aT2*tauC1**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC1))/((tauT1 - tauC1)*(-tauT2 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauC1 - tauS1)) + aC2*aS1*aT1*aT2*tauC1**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC1))/((-tauT1 + tauNonCO2)*(tauT2 - tauC1)*(tauC1 - tauNonCO2)*(tauC1 - tauS1)) - aC2*aS1*aT1*aT2*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauC1)*(-tauT2 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS1)) - aC2*aS1*aT1*aT2*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC1)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC2*aS1*aT2**2*tauT2**2*tauC1**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauC1)**2*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) + aC2*aS1*aT2**2*tauT2**2*tauC1*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)**2*(tauT2 - tauS1)) - aC2*aS1*aT2**2*tauT2*t*tauC1*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) - aC2*aS1*aT2**2*tauT2*tauC1**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC1))/((tauT2 - tauC1)**2*(tauT2 - tauNonCO2)*(tauC1 - tauS1)) - aC2*aS1*aT2**2*tauT2*tauC1*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)**2*(tauNonCO2 - tauS1)) - aC2*aS1*aT2**2*tauT2*tauC1*(-tauT2*tauS1 + (tauT2*(t + tauS1) - t*tauS1)*np.exp(t*(-1/tauS1 + 1/tauT2)))*np.exp(-t/tauT2)/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)**2) - aC2*aS1*aT2**2*tauC1**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC1))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauC1 - tauNonCO2)*(tauC1 - tauS1)) + aC2*aS1*aT2**2*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC2*aS2*aT1**2*tauT1**2*tauC1**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC1)**2*(tauT1 - tauNonCO2)*(tauT1 - tauS2)) + aC2*aS2*aT1**2*tauT1**2*tauC1*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)**2*(tauT1 - tauS2)) - aC2*aS2*aT1**2*tauT1*t*tauC1*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)) - aC2*aS2*aT1**2*tauT1*tauC1**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC1))/((tauT1 - tauC1)**2*(tauT1 - tauNonCO2)*(tauC1 - tauS2)) - aC2*aS2*aT1**2*tauT1*tauC1*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)**2*(tauNonCO2 - tauS2)) - aC2*aS2*aT1**2*tauT1*tauC1*(-tauT1*tauS2 + (tauT1*(t + tauS2) - t*tauS2)*np.exp(t*(-1/tauS2 + 1/tauT1)))*np.exp(-t/tauT1)/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)**2) - aC2*aS2*aT1**2*tauC1**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauC1 - tauNonCO2)*(tauC1 - tauS2)) + aC2*aS2*aT1**2*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS2)) - aC2*aS2*aT1*tauT1**2*aT2*tauT2*tauC1*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)*(tauT2 - tauC1)) - aC2*aS2*aT1*tauT1**2*aT2*tauT2*tauC1*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauC1)*(tauT1 - tauS2)*(tauT2 - tauNonCO2)) - aC2*aS2*aT1*tauT1**2*aT2*tauC1**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)*(-tauT2 + tauC1)) - aC2*aS2*aT1*tauT1**2*aT2*tauC1*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)*(-tauT2 + tauNonCO2)) + aC2*aS2*aT1*tauT1*aT2*tauT2**2*tauC1*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauC1)*(tauT2 - tauS2)) + aC2*aS2*aT1*tauT1*aT2*tauT2**2*tauC1*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) + aC2*aS2*aT1*tauT1*aT2*tauC1**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(-tauT2 + tauC1)*(tauC1 - tauS2)) + aC2*aS2*aT1*tauT1*aT2*tauC1*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(-tauT2 + tauNonCO2)*(tauNonCO2 - tauS2)) - aC2*aS2*aT1*aT2*tauT2**2*tauC1**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((-tauT1 + tauC1)*(tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) - aC2*aS2*aT1*aT2*tauT2**2*tauC1*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) + aC2*aS2*aT1*aT2*tauT2*tauC1**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC1))/((-tauT1 + tauC1)*(tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauC1 - tauS2)) + aC2*aS2*aT1*aT2*tauT2*tauC1*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC2*aS2*aT1*aT2*tauC1**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC1))/((tauT1 - tauC1)*(-tauT2 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauC1 - tauS2)) + + term3 = aC2*aS2*aT1*aT2*tauC1**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC1))/((-tauT1 + tauNonCO2)*(tauT2 - tauC1)*(tauC1 - tauNonCO2)*(tauC1 - tauS2)) - aC2*aS2*aT1*aT2*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauC1)*(-tauT2 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS2)) - aC2*aS2*aT1*aT2*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC1)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC2*aS2*aT2**2*tauT2**2*tauC1**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauC1)**2*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) + aC2*aS2*aT2**2*tauT2**2*tauC1*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)**2*(tauT2 - tauS2)) - aC2*aS2*aT2**2*tauT2*t*tauC1*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) - aC2*aS2*aT2**2*tauT2*tauC1**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC1))/((tauT2 - tauC1)**2*(tauT2 - tauNonCO2)*(tauC1 - tauS2)) - aC2*aS2*aT2**2*tauT2*tauC1*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)**2*(tauNonCO2 - tauS2)) - aC2*aS2*aT2**2*tauT2*tauC1*(-tauT2*tauS2 + (tauT2*(t + tauS2) - t*tauS2)*np.exp(t*(-1/tauS2 + 1/tauT2)))*np.exp(-t/tauT2)/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)**2) - aC2*aS2*aT2**2*tauC1**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC1))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauC1 - tauNonCO2)*(tauC1 - tauS2)) + aC2*aS2*aT2**2*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC2*aS3*aT1**2*tauT1**2*tauC1**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC1)**2*(tauT1 - tauNonCO2)*(tauT1 - tauS3)) + aC2*aS3*aT1**2*tauT1**2*tauC1*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)**2*(tauT1 - tauS3)) - aC2*aS3*aT1**2*tauT1*t*tauC1*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)) - aC2*aS3*aT1**2*tauT1*tauC1**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC1))/((tauT1 - tauC1)**2*(tauT1 - tauNonCO2)*(tauC1 - tauS3)) - aC2*aS3*aT1**2*tauT1*tauC1*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)**2*(tauNonCO2 - tauS3)) - aC2*aS3*aT1**2*tauT1*tauC1*(-tauT1*tauS3 + (tauT1*(t + tauS3) - t*tauS3)*np.exp(t*(-1/tauS3 + 1/tauT1)))*np.exp(-t/tauT1)/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)**2) - aC2*aS3*aT1**2*tauC1**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauC1 - tauNonCO2)*(tauC1 - tauS3)) + aC2*aS3*aT1**2*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS3)) - aC2*aS3*aT1*tauT1**2*aT2*tauT2*tauC1*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)*(tauT2 - tauC1)) - aC2*aS3*aT1*tauT1**2*aT2*tauT2*tauC1*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauC1)*(tauT1 - tauS3)*(tauT2 - tauNonCO2)) - aC2*aS3*aT1*tauT1**2*aT2*tauC1**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)*(-tauT2 + tauC1)) - aC2*aS3*aT1*tauT1**2*aT2*tauC1*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)*(-tauT2 + tauNonCO2)) + aC2*aS3*aT1*tauT1*aT2*tauT2**2*tauC1*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauC1)*(tauT2 - tauS3)) + aC2*aS3*aT1*tauT1*aT2*tauT2**2*tauC1*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) + aC2*aS3*aT1*tauT1*aT2*tauC1**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC1))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(-tauT2 + tauC1)*(tauC1 - tauS3)) + aC2*aS3*aT1*tauT1*aT2*tauC1*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(-tauT2 + tauNonCO2)*(tauNonCO2 - tauS3)) - aC2*aS3*aT1*aT2*tauT2**2*tauC1**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((-tauT1 + tauC1)*(tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) - aC2*aS3*aT1*aT2*tauT2**2*tauC1*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) + aC2*aS3*aT1*aT2*tauT2*tauC1**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC1))/((-tauT1 + tauC1)*(tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauC1 - tauS3)) + aC2*aS3*aT1*aT2*tauT2*tauC1*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauNonCO2 - tauS3)) + aC2*aS3*aT1*aT2*tauC1**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC1))/((tauT1 - tauC1)*(-tauT2 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauC1 - tauS3)) + aC2*aS3*aT1*aT2*tauC1**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC1))/((-tauT1 + tauNonCO2)*(tauT2 - tauC1)*(tauC1 - tauNonCO2)*(tauC1 - tauS3)) - aC2*aS3*aT1*aT2*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauC1)*(-tauT2 + tauNonCO2)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS3)) - aC2*aS3*aT1*aT2*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC1)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS3)) + aC2*aS3*aT2**2*tauT2**2*tauC1**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauC1)**2*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) + + term4 = aC2*aS3*aT2**2*tauT2**2*tauC1*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)**2*(tauT2 - tauS3)) - aC2*aS3*aT2**2*tauT2*t*tauC1*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) - aC2*aS3*aT2**2*tauT2*tauC1**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC1))/((tauT2 - tauC1)**2*(tauT2 - tauNonCO2)*(tauC1 - tauS3)) - aC2*aS3*aT2**2*tauT2*tauC1*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)**2*(tauNonCO2 - tauS3)) - aC2*aS3*aT2**2*tauT2*tauC1*(-tauT2*tauS3 + (tauT2*(t + tauS3) - t*tauS3)*np.exp(t*(-1/tauS3 + 1/tauT2)))*np.exp(-t/tauT2)/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)**2) - aC2*aS3*aT2**2*tauC1**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC1))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauC1 - tauNonCO2)*(tauC1 - tauS3)) + aC2*aS3*aT2**2*tauC1**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauC1 - tauNonCO2)*(tauNonCO2 - tauS3)) + aC2*aT1**2*tauT1*tauC1**2*np.exp(-t/tauC1)/((tauT1 - tauC1)**2*(tauT1 - tauNonCO2)) - aC2*aT1**2*tauT1*tauC1**2*np.exp(-t/tauT1)/((tauT1 - tauC1)**2*(tauT1 - tauNonCO2)) + aC2*aT1**2*tauT1*tauC1*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT1 - tauC1)*(tauT1 - tauNonCO2)**2) - aC2*aT1**2*tauT1*tauC1*tauNonCO2*np.exp(-t/tauT1)/((tauT1 - tauC1)*(tauT1 - tauNonCO2)**2) + aC2*aT1**2*t*tauC1*np.exp(-t/tauT1)/((tauT1 - tauC1)*(tauT1 - tauNonCO2)) - aC2*aT1**2*tauC1**2*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauC1 - tauNonCO2)) + aC2*aT1**2*tauC1**2*tauNonCO2*np.exp(-t/tauC1)/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauC1 - tauNonCO2)) - aC2*aT1*tauT1*aT2*tauT2*tauC1*np.exp(-t/tauT2)/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauC1)) + aC2*aT1*tauT1*aT2*tauT2*tauC1*np.exp(-t/tauT1)/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauC1)) - aC2*aT1*tauT1*aT2*tauT2*tauC1*np.exp(-t/tauT2)/((tauT1 - tauT2)*(tauT1 - tauC1)*(tauT2 - tauNonCO2)) + aC2*aT1*tauT1*aT2*tauT2*tauC1*np.exp(-t/tauT1)/((tauT1 - tauT2)*(tauT1 - tauC1)*(tauT2 - tauNonCO2)) + aC2*aT1*tauT1*aT2*tauC1**2*np.exp(-t/tauC1)/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauT2 - tauC1)) + aC2*aT1*tauT1*aT2*tauC1**2*np.exp(-t/tauT1)/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(-tauT2 + tauC1)) + aC2*aT1*tauT1*aT2*tauC1*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(tauT2 - tauNonCO2)) + aC2*aT1*tauT1*aT2*tauC1*tauNonCO2*np.exp(-t/tauT1)/((tauT1 - tauC1)*(tauT1 - tauNonCO2)*(-tauT2 + tauNonCO2)) + aC2*aT1*aT2*tauT2*tauC1**2*np.exp(-t/tauC1)/((tauT1 - tauC1)*(tauT2 - tauC1)*(tauT2 - tauNonCO2)) + aC2*aT1*aT2*tauT2*tauC1**2*np.exp(-t/tauT2)/((-tauT1 + tauC1)*(tauT2 - tauC1)*(tauT2 - tauNonCO2)) + aC2*aT1*aT2*tauT2*tauC1*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT1 - tauNonCO2)*(tauT2 - tauC1)*(tauT2 - tauNonCO2)) + aC2*aT1*aT2*tauT2*tauC1*tauNonCO2*np.exp(-t/tauT2)/((-tauT1 + tauNonCO2)*(tauT2 - tauC1)*(tauT2 - tauNonCO2)) + aC2*aT1*aT2*tauC1**2*tauNonCO2*np.exp(-t/tauC1)/((-tauT1 + tauNonCO2)*(-tauT2 + tauC1)*(tauC1 - tauNonCO2)) + aC2*aT1*aT2*tauC1**2*tauNonCO2*np.exp(-t/tauNonCO2)/((-tauT1 + tauNonCO2)*(-tauT2 + tauC1)*(-tauC1 + tauNonCO2)) + aC2*aT1*aT2*tauC1**2*tauNonCO2*np.exp(-t/tauC1)/((-tauT1 + tauC1)*(-tauT2 + tauNonCO2)*(tauC1 - tauNonCO2)) + aC2*aT1*aT2*tauC1**2*tauNonCO2*np.exp(-t/tauNonCO2)/((-tauT1 + tauC1)*(-tauT2 + tauNonCO2)*(-tauC1 + tauNonCO2)) + aC2*aT2**2*tauT2*tauC1**2*np.exp(-t/tauC1)/((tauT2 - tauC1)**2*(tauT2 - tauNonCO2)) - aC2*aT2**2*tauT2*tauC1**2*np.exp(-t/tauT2)/((tauT2 - tauC1)**2*(tauT2 - tauNonCO2)) + aC2*aT2**2*tauT2*tauC1*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT2 - tauC1)*(tauT2 - tauNonCO2)**2) - aC2*aT2**2*tauT2*tauC1*tauNonCO2*np.exp(-t/tauT2)/((tauT2 - tauC1)*(tauT2 - tauNonCO2)**2) + aC2*aT2**2*t*tauC1*np.exp(-t/tauT2)/((tauT2 - tauC1)*(tauT2 - tauNonCO2)) - aC2*aT2**2*tauC1**2*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauC1 - tauNonCO2)) + aC2*aT2**2*tauC1**2*tauNonCO2*np.exp(-t/tauC1)/((tauT2 - tauC1)*(tauT2 - tauNonCO2)*(tauC1 - tauNonCO2)) + aC3*aS1*aT1**2*tauT1**2*tauC2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC2)**2*(tauT1 - tauNonCO2)*(tauT1 - tauS1)) + aC3*aS1*aT1**2*tauT1**2*tauC2*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)**2*(tauT1 - tauS1)) - aC3*aS1*aT1**2*tauT1*t*tauC2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)) - aC3*aS1*aT1**2*tauT1*tauC2**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC2))/((tauT1 - tauC2)**2*(tauT1 - tauNonCO2)*(tauC2 - tauS1)) - aC3*aS1*aT1**2*tauT1*tauC2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)**2*(tauNonCO2 - tauS1)) - aC3*aS1*aT1**2*tauT1*tauC2*(-tauT1*tauS1 + (tauT1*(t + tauS1) - t*tauS1)*np.exp(t*(-1/tauS1 + 1/tauT1)))*np.exp(-t/tauT1)/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)**2) - aC3*aS1*aT1**2*tauC2**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauC2 - tauNonCO2)*(tauC2 - tauS1)) + aC3*aS1*aT1**2*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS1)) - aC3*aS1*aT1*tauT1**2*aT2*tauT2*tauC2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)*(tauT2 - tauC2)) - aC3*aS1*aT1*tauT1**2*aT2*tauT2*tauC2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauC2)*(tauT1 - tauS1)*(tauT2 - tauNonCO2)) - aC3*aS1*aT1*tauT1**2*aT2*tauC2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)*(-tauT2 + tauC2)) - aC3*aS1*aT1*tauT1**2*aT2*tauC2*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)*(-tauT2 + tauNonCO2)) + aC3*aS1*aT1*tauT1*aT2*tauT2**2*tauC2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauC2)*(tauT2 - tauS1)) + aC3*aS1*aT1*tauT1*aT2*tauT2**2*tauC2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) + aC3*aS1*aT1*tauT1*aT2*tauC2**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(-tauT2 + tauC2)*(tauC2 - tauS1)) + aC3*aS1*aT1*tauT1*aT2*tauC2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(-tauT2 + tauNonCO2)*(tauNonCO2 - tauS1)) - aC3*aS1*aT1*aT2*tauT2**2*tauC2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((-tauT1 + tauC2)*(tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) - aC3*aS1*aT1*aT2*tauT2**2*tauC2*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) + aC3*aS1*aT1*aT2*tauT2*tauC2**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC2))/((-tauT1 + tauC2)*(tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauC2 - tauS1)) + aC3*aS1*aT1*aT2*tauT2*tauC2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC3*aS1*aT1*aT2*tauC2**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC2))/((tauT1 - tauC2)*(-tauT2 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauC2 - tauS1)) + aC3*aS1*aT1*aT2*tauC2**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC2)*(tauC2 - tauNonCO2)*(tauC2 - tauS1)) - aC3*aS1*aT1*aT2*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauC2)*(-tauT2 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS1)) - aC3*aS1*aT1*aT2*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC3*aS1*aT2**2*tauT2**2*tauC2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauC2)**2*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) + + term5 = aC3*aS1*aT2**2*tauT2**2*tauC2*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)**2*(tauT2 - tauS1)) - aC3*aS1*aT2**2*tauT2*t*tauC2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) - aC3*aS1*aT2**2*tauT2*tauC2**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC2))/((tauT2 - tauC2)**2*(tauT2 - tauNonCO2)*(tauC2 - tauS1)) - aC3*aS1*aT2**2*tauT2*tauC2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)**2*(tauNonCO2 - tauS1)) - aC3*aS1*aT2**2*tauT2*tauC2*(-tauT2*tauS1 + (tauT2*(t + tauS1) - t*tauS1)*np.exp(t*(-1/tauS1 + 1/tauT2)))*np.exp(-t/tauT2)/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)**2) - aC3*aS1*aT2**2*tauC2**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauC2 - tauNonCO2)*(tauC2 - tauS1)) + aC3*aS1*aT2**2*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC3*aS2*aT1**2*tauT1**2*tauC2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC2)**2*(tauT1 - tauNonCO2)*(tauT1 - tauS2)) + aC3*aS2*aT1**2*tauT1**2*tauC2*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)**2*(tauT1 - tauS2)) - aC3*aS2*aT1**2*tauT1*t*tauC2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)) - aC3*aS2*aT1**2*tauT1*tauC2**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC2))/((tauT1 - tauC2)**2*(tauT1 - tauNonCO2)*(tauC2 - tauS2)) - aC3*aS2*aT1**2*tauT1*tauC2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)**2*(tauNonCO2 - tauS2)) - aC3*aS2*aT1**2*tauT1*tauC2*(-tauT1*tauS2 + (tauT1*(t + tauS2) - t*tauS2)*np.exp(t*(-1/tauS2 + 1/tauT1)))*np.exp(-t/tauT1)/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)**2) - aC3*aS2*aT1**2*tauC2**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauC2 - tauNonCO2)*(tauC2 - tauS2)) + aC3*aS2*aT1**2*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS2)) - aC3*aS2*aT1*tauT1**2*aT2*tauT2*tauC2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)*(tauT2 - tauC2)) - aC3*aS2*aT1*tauT1**2*aT2*tauT2*tauC2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauC2)*(tauT1 - tauS2)*(tauT2 - tauNonCO2)) - aC3*aS2*aT1*tauT1**2*aT2*tauC2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)*(-tauT2 + tauC2)) - aC3*aS2*aT1*tauT1**2*aT2*tauC2*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)*(-tauT2 + tauNonCO2)) + aC3*aS2*aT1*tauT1*aT2*tauT2**2*tauC2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauC2)*(tauT2 - tauS2)) + aC3*aS2*aT1*tauT1*aT2*tauT2**2*tauC2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) + aC3*aS2*aT1*tauT1*aT2*tauC2**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(-tauT2 + tauC2)*(tauC2 - tauS2)) + aC3*aS2*aT1*tauT1*aT2*tauC2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(-tauT2 + tauNonCO2)*(tauNonCO2 - tauS2)) - aC3*aS2*aT1*aT2*tauT2**2*tauC2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((-tauT1 + tauC2)*(tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) - aC3*aS2*aT1*aT2*tauT2**2*tauC2*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) + aC3*aS2*aT1*aT2*tauT2*tauC2**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC2))/((-tauT1 + tauC2)*(tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauC2 - tauS2)) + aC3*aS2*aT1*aT2*tauT2*tauC2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC3*aS2*aT1*aT2*tauC2**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC2))/((tauT1 - tauC2)*(-tauT2 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauC2 - tauS2)) + aC3*aS2*aT1*aT2*tauC2**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC2)*(tauC2 - tauNonCO2)*(tauC2 - tauS2)) - aC3*aS2*aT1*aT2*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauC2)*(-tauT2 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS2)) - aC3*aS2*aT1*aT2*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC3*aS2*aT2**2*tauT2**2*tauC2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauC2)**2*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) + aC3*aS2*aT2**2*tauT2**2*tauC2*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)**2*(tauT2 - tauS2)) - aC3*aS2*aT2**2*tauT2*t*tauC2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) - aC3*aS2*aT2**2*tauT2*tauC2**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC2))/((tauT2 - tauC2)**2*(tauT2 - tauNonCO2)*(tauC2 - tauS2)) - aC3*aS2*aT2**2*tauT2*tauC2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)**2*(tauNonCO2 - tauS2)) - aC3*aS2*aT2**2*tauT2*tauC2*(-tauT2*tauS2 + (tauT2*(t + tauS2) - t*tauS2)*np.exp(t*(-1/tauS2 + 1/tauT2)))*np.exp(-t/tauT2)/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)**2) - aC3*aS2*aT2**2*tauC2**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauC2 - tauNonCO2)*(tauC2 - tauS2)) + aC3*aS2*aT2**2*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC3*aS3*aT1**2*tauT1**2*tauC2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC2)**2*(tauT1 - tauNonCO2)*(tauT1 - tauS3)) + aC3*aS3*aT1**2*tauT1**2*tauC2*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)**2*(tauT1 - tauS3)) - aC3*aS3*aT1**2*tauT1*t*tauC2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)) - aC3*aS3*aT1**2*tauT1*tauC2**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC2))/((tauT1 - tauC2)**2*(tauT1 - tauNonCO2)*(tauC2 - tauS3)) - aC3*aS3*aT1**2*tauT1*tauC2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)**2*(tauNonCO2 - tauS3)) - aC3*aS3*aT1**2*tauT1*tauC2*(-tauT1*tauS3 + (tauT1*(t + tauS3) - t*tauS3)*np.exp(t*(-1/tauS3 + 1/tauT1)))*np.exp(-t/tauT1)/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)**2) - aC3*aS3*aT1**2*tauC2**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauC2 - tauNonCO2)*(tauC2 - tauS3)) + aC3*aS3*aT1**2*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS3)) - aC3*aS3*aT1*tauT1**2*aT2*tauT2*tauC2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)*(tauT2 - tauC2)) - aC3*aS3*aT1*tauT1**2*aT2*tauT2*tauC2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauC2)*(tauT1 - tauS3)*(tauT2 - tauNonCO2)) - aC3*aS3*aT1*tauT1**2*aT2*tauC2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)*(-tauT2 + tauC2)) - aC3*aS3*aT1*tauT1**2*aT2*tauC2*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)*(-tauT2 + tauNonCO2)) + aC3*aS3*aT1*tauT1*aT2*tauT2**2*tauC2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauC2)*(tauT2 - tauS3)) + aC3*aS3*aT1*tauT1*aT2*tauT2**2*tauC2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) + aC3*aS3*aT1*tauT1*aT2*tauC2**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(-tauT2 + tauC2)*(tauC2 - tauS3)) + aC3*aS3*aT1*tauT1*aT2*tauC2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(-tauT2 + tauNonCO2)*(tauNonCO2 - tauS3)) - aC3*aS3*aT1*aT2*tauT2**2*tauC2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((-tauT1 + tauC2)*(tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) - aC3*aS3*aT1*aT2*tauT2**2*tauC2*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) + aC3*aS3*aT1*aT2*tauT2*tauC2**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC2))/((-tauT1 + tauC2)*(tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauC2 - tauS3)) + aC3*aS3*aT1*aT2*tauT2*tauC2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauNonCO2 - tauS3)) + aC3*aS3*aT1*aT2*tauC2**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC2))/((tauT1 - tauC2)*(-tauT2 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauC2 - tauS3)) + aC3*aS3*aT1*aT2*tauC2**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC2)*(tauC2 - tauNonCO2)*(tauC2 - tauS3)) - aC3*aS3*aT1*aT2*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauC2)*(-tauT2 + tauNonCO2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS3)) - aC3*aS3*aT1*aT2*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS3)) + aC3*aS3*aT2**2*tauT2**2*tauC2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauC2)**2*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) + aC3*aS3*aT2**2*tauT2**2*tauC2*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)**2*(tauT2 - tauS3)) - aC3*aS3*aT2**2*tauT2*t*tauC2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) - aC3*aS3*aT2**2*tauT2*tauC2**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC2))/((tauT2 - tauC2)**2*(tauT2 - tauNonCO2)*(tauC2 - tauS3)) - aC3*aS3*aT2**2*tauT2*tauC2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)**2*(tauNonCO2 - tauS3)) - aC3*aS3*aT2**2*tauT2*tauC2*(-tauT2*tauS3 + (tauT2*(t + tauS3) - t*tauS3)*np.exp(t*(-1/tauS3 + 1/tauT2)))*np.exp(-t/tauT2)/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)**2) - aC3*aS3*aT2**2*tauC2**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauC2 - tauNonCO2)*(tauC2 - tauS3)) + aC3*aS3*aT2**2*tauC2**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauC2 - tauNonCO2)*(tauNonCO2 - tauS3)) + aC3*aT1**2*tauT1*tauC2**2*np.exp(-t/tauC2)/((tauT1 - tauC2)**2*(tauT1 - tauNonCO2)) - aC3*aT1**2*tauT1*tauC2**2*np.exp(-t/tauT1)/((tauT1 - tauC2)**2*(tauT1 - tauNonCO2)) + aC3*aT1**2*tauT1*tauC2*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT1 - tauC2)*(tauT1 - tauNonCO2)**2) - aC3*aT1**2*tauT1*tauC2*tauNonCO2*np.exp(-t/tauT1)/((tauT1 - tauC2)*(tauT1 - tauNonCO2)**2) + aC3*aT1**2*t*tauC2*np.exp(-t/tauT1)/((tauT1 - tauC2)*(tauT1 - tauNonCO2)) - aC3*aT1**2*tauC2**2*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauC2 - tauNonCO2)) + aC3*aT1**2*tauC2**2*tauNonCO2*np.exp(-t/tauC2)/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauC2 - tauNonCO2)) - aC3*aT1*tauT1*aT2*tauT2*tauC2*np.exp(-t/tauT2)/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauC2)) + aC3*aT1*tauT1*aT2*tauT2*tauC2*np.exp(-t/tauT1)/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauC2)) - aC3*aT1*tauT1*aT2*tauT2*tauC2*np.exp(-t/tauT2)/((tauT1 - tauT2)*(tauT1 - tauC2)*(tauT2 - tauNonCO2)) + aC3*aT1*tauT1*aT2*tauT2*tauC2*np.exp(-t/tauT1)/((tauT1 - tauT2)*(tauT1 - tauC2)*(tauT2 - tauNonCO2)) + aC3*aT1*tauT1*aT2*tauC2**2*np.exp(-t/tauC2)/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauT2 - tauC2)) + aC3*aT1*tauT1*aT2*tauC2**2*np.exp(-t/tauT1)/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(-tauT2 + tauC2)) + aC3*aT1*tauT1*aT2*tauC2*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(tauT2 - tauNonCO2)) + aC3*aT1*tauT1*aT2*tauC2*tauNonCO2*np.exp(-t/tauT1)/((tauT1 - tauC2)*(tauT1 - tauNonCO2)*(-tauT2 + tauNonCO2)) + aC3*aT1*aT2*tauT2*tauC2**2*np.exp(-t/tauC2)/((tauT1 - tauC2)*(tauT2 - tauC2)*(tauT2 - tauNonCO2)) + aC3*aT1*aT2*tauT2*tauC2**2*np.exp(-t/tauT2)/((-tauT1 + tauC2)*(tauT2 - tauC2)*(tauT2 - tauNonCO2)) + aC3*aT1*aT2*tauT2*tauC2*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT1 - tauNonCO2)*(tauT2 - tauC2)*(tauT2 - tauNonCO2)) + aC3*aT1*aT2*tauT2*tauC2*tauNonCO2*np.exp(-t/tauT2)/((-tauT1 + tauNonCO2)*(tauT2 - tauC2)*(tauT2 - tauNonCO2)) + aC3*aT1*aT2*tauC2**2*tauNonCO2*np.exp(-t/tauC2)/((-tauT1 + tauNonCO2)*(-tauT2 + tauC2)*(tauC2 - tauNonCO2)) + aC3*aT1*aT2*tauC2**2*tauNonCO2*np.exp(-t/tauNonCO2)/((-tauT1 + tauNonCO2)*(-tauT2 + tauC2)*(-tauC2 + tauNonCO2)) + aC3*aT1*aT2*tauC2**2*tauNonCO2*np.exp(-t/tauC2)/((-tauT1 + tauC2)*(-tauT2 + tauNonCO2)*(tauC2 - tauNonCO2)) + aC3*aT1*aT2*tauC2**2*tauNonCO2*np.exp(-t/tauNonCO2)/((-tauT1 + tauC2)*(-tauT2 + tauNonCO2)*(-tauC2 + tauNonCO2)) + aC3*aT2**2*tauT2*tauC2**2*np.exp(-t/tauC2)/((tauT2 - tauC2)**2*(tauT2 - tauNonCO2)) - aC3*aT2**2*tauT2*tauC2**2*np.exp(-t/tauT2)/((tauT2 - tauC2)**2*(tauT2 - tauNonCO2)) + aC3*aT2**2*tauT2*tauC2*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT2 - tauC2)*(tauT2 - tauNonCO2)**2) - aC3*aT2**2*tauT2*tauC2*tauNonCO2*np.exp(-t/tauT2)/((tauT2 - tauC2)*(tauT2 - tauNonCO2)**2) + aC3*aT2**2*t*tauC2*np.exp(-t/tauT2)/((tauT2 - tauC2)*(tauT2 - tauNonCO2)) - aC3*aT2**2*tauC2**2*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauC2 - tauNonCO2)) + aC3*aT2**2*tauC2**2*tauNonCO2*np.exp(-t/tauC2)/((tauT2 - tauC2)*(tauT2 - tauNonCO2)*(tauC2 - tauNonCO2)) + aC4*aS1*aT1**2*tauT1**2*tauC3**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC3)**2*(tauT1 - tauNonCO2)*(tauT1 - tauS1)) + aC4*aS1*aT1**2*tauT1**2*tauC3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)**2*(tauT1 - tauS1)) - aC4*aS1*aT1**2*tauT1*t*tauC3*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)) - aC4*aS1*aT1**2*tauT1*tauC3**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC3))/((tauT1 - tauC3)**2*(tauT1 - tauNonCO2)*(tauC3 - tauS1)) - aC4*aS1*aT1**2*tauT1*tauC3*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)**2*(tauNonCO2 - tauS1)) - aC4*aS1*aT1**2*tauT1*tauC3*(-tauT1*tauS1 + (tauT1*(t + tauS1) - t*tauS1)*np.exp(t*(-1/tauS1 + 1/tauT1)))*np.exp(-t/tauT1)/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)**2) - aC4*aS1*aT1**2*tauC3**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC3))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauC3 - tauNonCO2)*(tauC3 - tauS1)) + aC4*aS1*aT1**2*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS1)) - aC4*aS1*aT1*tauT1**2*aT2*tauT2*tauC3*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)*(tauT2 - tauC3)) - aC4*aS1*aT1*tauT1**2*aT2*tauT2*tauC3*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauC3)*(tauT1 - tauS1)*(tauT2 - tauNonCO2)) - aC4*aS1*aT1*tauT1**2*aT2*tauC3**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)*(-tauT2 + tauC3)) - aC4*aS1*aT1*tauT1**2*aT2*tauC3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauT1))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauT1 - tauS1)*(-tauT2 + tauNonCO2)) + aC4*aS1*aT1*tauT1*aT2*tauT2**2*tauC3*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauC3)*(tauT2 - tauS1)) + aC4*aS1*aT1*tauT1*aT2*tauT2**2*tauC3*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) + aC4*aS1*aT1*tauT1*aT2*tauC3**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC3))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(-tauT2 + tauC3)*(tauC3 - tauS1)) + aC4*aS1*aT1*tauT1*aT2*tauC3*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(-tauT2 + tauNonCO2)*(tauNonCO2 - tauS1)) - aC4*aS1*aT1*aT2*tauT2**2*tauC3**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((-tauT1 + tauC3)*(tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) - aC4*aS1*aT1*aT2*tauT2**2*tauC3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) + aC4*aS1*aT1*aT2*tauT2*tauC3**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC3))/((-tauT1 + tauC3)*(tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauC3 - tauS1)) + aC4*aS1*aT1*aT2*tauT2*tauC3*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC4*aS1*aT1*aT2*tauC3**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC3))/((tauT1 - tauC3)*(-tauT2 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauC3 - tauS1)) + aC4*aS1*aT1*aT2*tauC3**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC3))/((-tauT1 + tauNonCO2)*(tauT2 - tauC3)*(tauC3 - tauNonCO2)*(tauC3 - tauS1)) - aC4*aS1*aT1*aT2*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT1 - tauC3)*(-tauT2 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS1)) - aC4*aS1*aT1*aT2*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC3)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC4*aS1*aT2**2*tauT2**2*tauC3**2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauC3)**2*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) + aC4*aS1*aT2**2*tauT2**2*tauC3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)**2*(tauT2 - tauS1)) - aC4*aS1*aT2**2*tauT2*t*tauC3*(-np.exp(-t/tauS1) + np.exp(-t/tauT2))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)) - aC4*aS1*aT2**2*tauT2*tauC3**3*(-np.exp(-t/tauS1) + np.exp(-t/tauC3))/((tauT2 - tauC3)**2*(tauT2 - tauNonCO2)*(tauC3 - tauS1)) - aC4*aS1*aT2**2*tauT2*tauC3*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)**2*(tauNonCO2 - tauS1)) - aC4*aS1*aT2**2*tauT2*tauC3*(-tauT2*tauS1 + (tauT2*(t + tauS1) - t*tauS1)*np.exp(t*(-1/tauS1 + 1/tauT2)))*np.exp(-t/tauT2)/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS1)**2) - aC4*aS1*aT2**2*tauC3**3*tauNonCO2*(-np.exp(-t/tauS1) + np.exp(-t/tauC3))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauC3 - tauNonCO2)*(tauC3 - tauS1)) + aC4*aS1*aT2**2*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS1) + np.exp(-t/tauNonCO2))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS1)) + aC4*aS2*aT1**2*tauT1**2*tauC3**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC3)**2*(tauT1 - tauNonCO2)*(tauT1 - tauS2)) + aC4*aS2*aT1**2*tauT1**2*tauC3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)**2*(tauT1 - tauS2)) - aC4*aS2*aT1**2*tauT1*t*tauC3*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)) - aC4*aS2*aT1**2*tauT1*tauC3**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC3))/((tauT1 - tauC3)**2*(tauT1 - tauNonCO2)*(tauC3 - tauS2)) - aC4*aS2*aT1**2*tauT1*tauC3*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)**2*(tauNonCO2 - tauS2)) - aC4*aS2*aT1**2*tauT1*tauC3*(-tauT1*tauS2 + (tauT1*(t + tauS2) - t*tauS2)*np.exp(t*(-1/tauS2 + 1/tauT1)))*np.exp(-t/tauT1)/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)**2) - aC4*aS2*aT1**2*tauC3**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC3))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauC3 - tauNonCO2)*(tauC3 - tauS2)) + aC4*aS2*aT1**2*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS2)) - aC4*aS2*aT1*tauT1**2*aT2*tauT2*tauC3*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)*(tauT2 - tauC3)) - aC4*aS2*aT1*tauT1**2*aT2*tauT2*tauC3*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauC3)*(tauT1 - tauS2)*(tauT2 - tauNonCO2)) - aC4*aS2*aT1*tauT1**2*aT2*tauC3**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)*(-tauT2 + tauC3)) - aC4*aS2*aT1*tauT1**2*aT2*tauC3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauT1))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauT1 - tauS2)*(-tauT2 + tauNonCO2)) + aC4*aS2*aT1*tauT1*aT2*tauT2**2*tauC3*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauC3)*(tauT2 - tauS2)) + aC4*aS2*aT1*tauT1*aT2*tauT2**2*tauC3*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) + aC4*aS2*aT1*tauT1*aT2*tauC3**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC3))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(-tauT2 + tauC3)*(tauC3 - tauS2)) + aC4*aS2*aT1*tauT1*aT2*tauC3*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(-tauT2 + tauNonCO2)*(tauNonCO2 - tauS2)) - aC4*aS2*aT1*aT2*tauT2**2*tauC3**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((-tauT1 + tauC3)*(tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) - aC4*aS2*aT1*aT2*tauT2**2*tauC3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) + aC4*aS2*aT1*aT2*tauT2*tauC3**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC3))/((-tauT1 + tauC3)*(tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauC3 - tauS2)) + aC4*aS2*aT1*aT2*tauT2*tauC3*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC4*aS2*aT1*aT2*tauC3**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC3))/((tauT1 - tauC3)*(-tauT2 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauC3 - tauS2)) + aC4*aS2*aT1*aT2*tauC3**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC3))/((-tauT1 + tauNonCO2)*(tauT2 - tauC3)*(tauC3 - tauNonCO2)*(tauC3 - tauS2)) - aC4*aS2*aT1*aT2*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT1 - tauC3)*(-tauT2 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS2)) - aC4*aS2*aT1*aT2*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC3)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC4*aS2*aT2**2*tauT2**2*tauC3**2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauC3)**2*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) + aC4*aS2*aT2**2*tauT2**2*tauC3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)**2*(tauT2 - tauS2)) - aC4*aS2*aT2**2*tauT2*t*tauC3*(-np.exp(-t/tauS2) + np.exp(-t/tauT2))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)) - aC4*aS2*aT2**2*tauT2*tauC3**3*(-np.exp(-t/tauS2) + np.exp(-t/tauC3))/((tauT2 - tauC3)**2*(tauT2 - tauNonCO2)*(tauC3 - tauS2)) - aC4*aS2*aT2**2*tauT2*tauC3*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)**2*(tauNonCO2 - tauS2)) - aC4*aS2*aT2**2*tauT2*tauC3*(-tauT2*tauS2 + (tauT2*(t + tauS2) - t*tauS2)*np.exp(t*(-1/tauS2 + 1/tauT2)))*np.exp(-t/tauT2)/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS2)**2) - aC4*aS2*aT2**2*tauC3**3*tauNonCO2*(-np.exp(-t/tauS2) + np.exp(-t/tauC3))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauC3 - tauNonCO2)*(tauC3 - tauS2)) + aC4*aS2*aT2**2*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS2) + np.exp(-t/tauNonCO2))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS2)) + aC4*aS3*aT1**2*tauT1**2*tauC3**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC3)**2*(tauT1 - tauNonCO2)*(tauT1 - tauS3)) + aC4*aS3*aT1**2*tauT1**2*tauC3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)**2*(tauT1 - tauS3)) - aC4*aS3*aT1**2*tauT1*t*tauC3*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)) - aC4*aS3*aT1**2*tauT1*tauC3**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC3))/((tauT1 - tauC3)**2*(tauT1 - tauNonCO2)*(tauC3 - tauS3)) - aC4*aS3*aT1**2*tauT1*tauC3*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)**2*(tauNonCO2 - tauS3)) - aC4*aS3*aT1**2*tauT1*tauC3*(-tauT1*tauS3 + (tauT1*(t + tauS3) - t*tauS3)*np.exp(t*(-1/tauS3 + 1/tauT1)))*np.exp(-t/tauT1)/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)**2) - aC4*aS3*aT1**2*tauC3**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC3))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauC3 - tauNonCO2)*(tauC3 - tauS3)) + aC4*aS3*aT1**2*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS3)) - aC4*aS3*aT1*tauT1**2*aT2*tauT2*tauC3*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)*(tauT2 - tauC3)) - aC4*aS3*aT1*tauT1**2*aT2*tauT2*tauC3*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauT2)*(tauT1 - tauC3)*(tauT1 - tauS3)*(tauT2 - tauNonCO2)) - aC4*aS3*aT1*tauT1**2*aT2*tauC3**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)*(-tauT2 + tauC3)) - aC4*aS3*aT1*tauT1**2*aT2*tauC3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauT1))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauT1 - tauS3)*(-tauT2 + tauNonCO2)) + aC4*aS3*aT1*tauT1*aT2*tauT2**2*tauC3*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauC3)*(tauT2 - tauS3)) + aC4*aS3*aT1*tauT1*aT2*tauT2**2*tauC3*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT1 - tauT2)*(tauT1 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) + aC4*aS3*aT1*tauT1*aT2*tauC3**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC3))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(-tauT2 + tauC3)*(tauC3 - tauS3)) + aC4*aS3*aT1*tauT1*aT2*tauC3*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(-tauT2 + tauNonCO2)*(tauNonCO2 - tauS3)) - aC4*aS3*aT1*aT2*tauT2**2*tauC3**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((-tauT1 + tauC3)*(tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) - aC4*aS3*aT1*aT2*tauT2**2*tauC3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) + aC4*aS3*aT1*aT2*tauT2*tauC3**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC3))/((-tauT1 + tauC3)*(tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauC3 - tauS3)) + aC4*aS3*aT1*aT2*tauT2*tauC3*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauNonCO2 - tauS3)) + aC4*aS3*aT1*aT2*tauC3**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC3))/((tauT1 - tauC3)*(-tauT2 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauC3 - tauS3)) + aC4*aS3*aT1*aT2*tauC3**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC3))/((-tauT1 + tauNonCO2)*(tauT2 - tauC3)*(tauC3 - tauNonCO2)*(tauC3 - tauS3)) - aC4*aS3*aT1*aT2*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT1 - tauC3)*(-tauT2 + tauNonCO2)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS3)) - aC4*aS3*aT1*aT2*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((-tauT1 + tauNonCO2)*(tauT2 - tauC3)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS3)) + aC4*aS3*aT2**2*tauT2**2*tauC3**2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauC3)**2*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) + aC4*aS3*aT2**2*tauT2**2*tauC3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)**2*(tauT2 - tauS3)) - aC4*aS3*aT2**2*tauT2*t*tauC3*(-np.exp(-t/tauS3) + np.exp(-t/tauT2))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)) - aC4*aS3*aT2**2*tauT2*tauC3**3*(-np.exp(-t/tauS3) + np.exp(-t/tauC3))/((tauT2 - tauC3)**2*(tauT2 - tauNonCO2)*(tauC3 - tauS3)) - aC4*aS3*aT2**2*tauT2*tauC3*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)**2*(tauNonCO2 - tauS3)) - aC4*aS3*aT2**2*tauT2*tauC3*(-tauT2*tauS3 + (tauT2*(t + tauS3) - t*tauS3)*np.exp(t*(-1/tauS3 + 1/tauT2)))*np.exp(-t/tauT2)/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauT2 - tauS3)**2) - aC4*aS3*aT2**2*tauC3**3*tauNonCO2*(-np.exp(-t/tauS3) + np.exp(-t/tauC3))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauC3 - tauNonCO2)*(tauC3 - tauS3)) + aC4*aS3*aT2**2*tauC3**2*tauNonCO2**2*(-np.exp(-t/tauS3) + np.exp(-t/tauNonCO2))/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauC3 - tauNonCO2)*(tauNonCO2 - tauS3)) + aC4*aT1**2*tauT1*tauC3**2*np.exp(-t/tauC3)/((tauT1 - tauC3)**2*(tauT1 - tauNonCO2)) - aC4*aT1**2*tauT1*tauC3**2*np.exp(-t/tauT1)/((tauT1 - tauC3)**2*(tauT1 - tauNonCO2)) + aC4*aT1**2*tauT1*tauC3*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT1 - tauC3)*(tauT1 - tauNonCO2)**2) - aC4*aT1**2*tauT1*tauC3*tauNonCO2*np.exp(-t/tauT1)/((tauT1 - tauC3)*(tauT1 - tauNonCO2)**2) + aC4*aT1**2*t*tauC3*np.exp(-t/tauT1)/((tauT1 - tauC3)*(tauT1 - tauNonCO2)) - aC4*aT1**2*tauC3**2*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauC3 - tauNonCO2)) + aC4*aT1**2*tauC3**2*tauNonCO2*np.exp(-t/tauC3)/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauC3 - tauNonCO2)) - aC4*aT1*tauT1*aT2*tauT2*tauC3*np.exp(-t/tauT2)/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauC3)) + aC4*aT1*tauT1*aT2*tauT2*tauC3*np.exp(-t/tauT1)/((tauT1 - tauT2)*(tauT1 - tauNonCO2)*(tauT2 - tauC3)) - aC4*aT1*tauT1*aT2*tauT2*tauC3*np.exp(-t/tauT2)/((tauT1 - tauT2)*(tauT1 - tauC3)*(tauT2 - tauNonCO2)) + aC4*aT1*tauT1*aT2*tauT2*tauC3*np.exp(-t/tauT1)/((tauT1 - tauT2)*(tauT1 - tauC3)*(tauT2 - tauNonCO2)) + aC4*aT1*tauT1*aT2*tauC3**2*np.exp(-t/tauC3)/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauT2 - tauC3)) + aC4*aT1*tauT1*aT2*tauC3**2*np.exp(-t/tauT1)/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(-tauT2 + tauC3)) + aC4*aT1*tauT1*aT2*tauC3*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(tauT2 - tauNonCO2)) + aC4*aT1*tauT1*aT2*tauC3*tauNonCO2*np.exp(-t/tauT1)/((tauT1 - tauC3)*(tauT1 - tauNonCO2)*(-tauT2 + tauNonCO2)) + aC4*aT1*aT2*tauT2*tauC3**2*np.exp(-t/tauC3)/((tauT1 - tauC3)*(tauT2 - tauC3)*(tauT2 - tauNonCO2)) + aC4*aT1*aT2*tauT2*tauC3**2*np.exp(-t/tauT2)/((-tauT1 + tauC3)*(tauT2 - tauC3)*(tauT2 - tauNonCO2)) + aC4*aT1*aT2*tauT2*tauC3*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT1 - tauNonCO2)*(tauT2 - tauC3)*(tauT2 - tauNonCO2)) + aC4*aT1*aT2*tauT2*tauC3*tauNonCO2*np.exp(-t/tauT2)/((-tauT1 + tauNonCO2)*(tauT2 - tauC3)*(tauT2 - tauNonCO2)) + aC4*aT1*aT2*tauC3**2*tauNonCO2*np.exp(-t/tauC3)/((-tauT1 + tauNonCO2)*(-tauT2 + tauC3)*(tauC3 - tauNonCO2)) + aC4*aT1*aT2*tauC3**2*tauNonCO2*np.exp(-t/tauNonCO2)/((-tauT1 + tauNonCO2)*(-tauT2 + tauC3)*(-tauC3 + tauNonCO2)) + aC4*aT1*aT2*tauC3**2*tauNonCO2*np.exp(-t/tauC3)/((-tauT1 + tauC3)*(-tauT2 + tauNonCO2)*(tauC3 - tauNonCO2)) + aC4*aT1*aT2*tauC3**2*tauNonCO2*np.exp(-t/tauNonCO2)/((-tauT1 + tauC3)*(-tauT2 + tauNonCO2)*(-tauC3 + tauNonCO2)) + aC4*aT2**2*tauT2*tauC3**2*np.exp(-t/tauC3)/((tauT2 - tauC3)**2*(tauT2 - tauNonCO2)) - aC4*aT2**2*tauT2*tauC3**2*np.exp(-t/tauT2)/((tauT2 - tauC3)**2*(tauT2 - tauNonCO2)) + aC4*aT2**2*tauT2*tauC3*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT2 - tauC3)*(tauT2 - tauNonCO2)**2) - aC4*aT2**2*tauT2*tauC3*tauNonCO2*np.exp(-t/tauT2)/((tauT2 - tauC3)*(tauT2 - tauNonCO2)**2) + aC4*aT2**2*t*tauC3*np.exp(-t/tauT2)/((tauT2 - tauC3)*(tauT2 - tauNonCO2)) - aC4*aT2**2*tauC3**2*tauNonCO2*np.exp(-t/tauNonCO2)/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauC3 - tauNonCO2)) + aC4*aT2**2*tauC3**2*tauNonCO2*np.exp(-t/tauC3)/((tauT2 - tauC3)*(tauT2 - tauNonCO2)*(tauC3 - tauNonCO2)) + (aC1*aS1*aT2**2*tauNonCO2 - aC1*aS1*aT2**2*tauNonCO2*np.exp(-t/tauS1))/(tauT2 - tauNonCO2) + (aC1*aS2*aT2**2*tauNonCO2 - aC1*aS2*aT2**2*tauNonCO2*np.exp(-t/tauS2))/(tauT2 - tauNonCO2) + (aC1*aS3*aT2**2*tauNonCO2 - aC1*aS3*aT2**2*tauNonCO2*np.exp(-t/tauS3))/(tauT2 - tauNonCO2) + (aC1*aS1*aT1**2*tauNonCO2 - aC1*aS1*aT1**2*tauNonCO2*np.exp(-t/tauS1))/(tauT1 - tauNonCO2) + (aC1*aS2*aT1**2*tauNonCO2 - aC1*aS2*aT1**2*tauNonCO2*np.exp(-t/tauS2))/(tauT1 - tauNonCO2) + (aC1*aS3*aT1**2*tauNonCO2 - aC1*aS3*aT1**2*tauNonCO2*np.exp(-t/tauS3))/(tauT1 - tauNonCO2) + + value = term1 + term2 + term3 + term4 + term5 + return (MCO2/MC)*1E12 * AANonCO2 * AACO2 * gamma * kPulseT**2 * tauNonCO2 * value + diff --git a/Code/modules/OrganiseCurves.py b/Code/modules/OrganiseCurves.py new file mode 100644 index 0000000..8e9cc0e --- /dev/null +++ b/Code/modules/OrganiseCurves.py @@ -0,0 +1,31 @@ +# *-* coding: utf-8 *-* + + +# - - - - - - - - - - - - - - - - - - +import numpy as np +# - - - - - - - - - - - - - - - - - - + +# - - - - - - - - - - - - - - - - - - +from .Metrics import * +# - - - - - - - - - - - - - - - - - - + + + +######################################################################## +# HOW TO EVALUATE A CURVE USING INDICATORS +#------------------------------------------------------------ +# --- +# Myfunction in indicators name (Myfunction is not a string, it is directly the function name) +# +# Based on localtime +# using numpy to create the pulse on a given timeline +def doSolutioncurve( Myfunction, GasDATA,TdrDATA, timeline, pulsetime, gas, mass, gasorigin ): + localtime = timeline - pulsetime + solutioncurve = np.piecewise( localtime, [localtime < 0, localtime >= 0], [ lambda x:0. , lambda x:Myfunction(GasDATA,TdrDATA,x,gas,mass,gasorigin) ] ) # if t<0 then => "O", else => f(localtime) + return solutioncurve +######################################################################## + + + + + diff --git a/Code/modules/Uncertainty.py b/Code/modules/Uncertainty.py new file mode 100644 index 0000000..e388097 --- /dev/null +++ b/Code/modules/Uncertainty.py @@ -0,0 +1,160 @@ +# *-* coding: utf-8 *-* + +# - - - - - - - - - - - - - - - - - - +import math +import numpy as np +import sys +# - - - - - - - - - - - - - - - - - - +from random import random, normalvariate, randint +# - - - - - - - - - - - - - - - - - - + +# - - - - - - - - - - - - - - - - - - +from .Database import * +# - - - - - - - - - - - - - - - - - - + + + +#========================================================================================== +def GasDATAlib_to_GasDATA_values(): + GasDATA={} + + for ges in GasDATAlib.keys(): + GasDATA[ges]={} + for variable in GasDATAlib[ges].keys(): + Ggvar = GasDATAlib[ges][variable] + if variable!='coeffIRF': + GasDATA[ges][variable] = Ggvar['value'] + else: + GgvarVs = Ggvar['values'] + for IRFvar in GgvarVs.keys(): + GasDATA[ges][IRFvar] = GgvarVs[IRFvar] + return GasDATA + +def TdrDATAlib_to_TdrDATA_values(): + TdrDATA={} + for variable in IRFT_DataLib.keys(): + Tvar = IRFT_DataLib[variable] + if variable!='coeffTDR': + TdrDATA[variable] = Tvar['value'] + else: + TvarVs = Tvar['values'] + for var in TvarVs.keys(): + TdrDATA[var] = TvarVs[var] + return TdrDATA +#========================================================================================== + + + + + + +#========================================================================================== +# -- uniform : +def uniformDraw(X, Delta): + return (X-Delta) + 2.*Delta*random() + +# -- normal : normalvariate(X, S) + +# -- normalcorrelated : +# mu : mean values +# L : LLt Covariant matrix Cholesky decomposition +def normalcorrelatedDraw(mu,L): + draw = np.empty(len(mu)) + for i in range(len(mu)): + draw[i] = normalvariate(0, 1) # Normal draw + Y = L.dot(draw) # Correlation + return mu + Y.transpose() # Add mean values. Return an array +#========================================================================================== + + + + +#========================================================================================== +def GESlibtoDATA_draw_values(whattodraw): + GasDATA={} + for ges in GasDATAlib.keys(): + GasDATA[ges]={} + for variable in GasDATAlib[ges].keys(): + if variable in whattodraw[ges].keys(): + GGV = GasDATAlib[ges][variable] + if whattodraw[ges][variable]: + distrib = GGV['distrib'] + if variable!='coeffIRF': + mean = GGV['value'] + if distrib == 'uniform': + delta = GGV['delta'] + drawValue = uniformDraw(mean, delta) # DRAW + elif distrib == 'normal': + sigma = GGV['sigma'] + drawValue = normalvariate(mean, sigma) # DRAW + GasDATA[ges][variable] = drawValue + elif variable=='coeffIRF' : + GGVV = GGV['values'] + + # - Distribution cases : normal / manual + distribIRF = GGV['distrib'] + + if distribIRF =="normal": + for var in GGVV.keys(): + mean = GGVV[var] + # - if concerned by random or not (e.g. CH4 and N2O only tau1 is random) + if var in GGV['sigmadic'].keys(): + sigma = GGV['sigmadic'][var] + GasDATA[ges][var] = normalvariate(mean, sigma) # DRAW + else: + GasDATA[ges][var] = GGVV[var] + elif distribIRF =="manual": + #coeffIRF + GGVM = GGV['models'] + nbmodels = len(GGVM) # Number of recorded models in database + randi = str(randint(1,nbmodels)) # DRAW + ChosenModel = GGVM[randi] + + # + for var in ChosenModel.keys(): + GasDATA[ges][var] = ChosenModel[var] + + else: + # seen as constant + if variable!='coeffIRF': + GasDATA[ges][variable] = GasDATAlib[ges][variable]['value'] + else: + GGVV = GGV['values'] + for var in GGVV.keys(): + GasDATA[ges][var] = GGVV[var] + + else: + # seen as constant + GasDATA[ges][variable] = GasDATAlib[ges][variable]['value'] + + return GasDATA + + +def TdrDATAlib_to_TdrDATA_draw_values(): + TdrDATA={} + for variable in IRFT_DataLib.keys(): + Tvar = IRFT_DataLib[variable] + if variable!='coeffTDR': + distrib = Tvar['distrib'] + mean = Tvar['value'] + if distrib =='normal': + sigma = Tvar['sigma'] + rval = normalvariate(mean, sigma) # DRAW + elif distrib =='uniform': + delta = Tvar['delta'] + rval = uniformDraw(mean, delta) # DRAW + TdrDATA[variable] = rval + else: + TvarM = Tvar['models'] + nbmodels = len(TvarM) # Number of recorded models in database + randi = str(randint(1,nbmodels)) # DRAW + ChosenModel = TvarM[randi] + # + for var in ChosenModel.keys(): + TdrDATA[var] = ChosenModel[var] + + return TdrDATA + + + + diff --git a/Code/modules/Utils.py b/Code/modules/Utils.py new file mode 100644 index 0000000..610b297 --- /dev/null +++ b/Code/modules/Utils.py @@ -0,0 +1,55 @@ +# *-* coding: utf-8 *-* + + +# - - - - - - - - - - - - - - - - - - +import os +import matplotlib.pyplot as plt +import numpy as np +# - - - - - - - - - - - - - - - - - - + + + + + +#------------------------------------------------------------ +# --- +def dF_CF(mean_material, sigma, std_material): + print("dF_20 =", mean_material[20], "+/-", sigma*std_material[20]) + print("dF_100 =", mean_material[100], "+/-", sigma*std_material[100]) + print("dF_500 =", mean_material[500], "+/-", sigma*std_material[500], "\n") + + +# --- +def dT_CF(sample, mean_material, sigma, std_material): + for itime in range(sample): + if mean_material[itime] == max(mean_material): + t_max = itime + incer_up = max(mean_material+sigma*std_material) - max(mean_material) + print("dT peak =", max(mean_material), "+/-", incer_up) + print("dTpeak timing = ", t_max, "years") + print("dT_long-term =", mean_material[500+t_max], "+/-", sigma*std_material[500+t_max]) + + for itime in range(sample): + if mean_material[itime] == min(mean_material): + if itime == 0: + print ("no dT negative") + break + else: + t_min = itime + incer_down= min(mean_material-sigma*std_material) - min(mean_material) + print ("dT negative =", min(mean_material), "+/-", incer_down) + print("dT negative timing = ", t_min, "years") + + + + + + + + + + + + + + diff --git a/Code/script-01-AGWP-1kg_CO2_1kgCH4_1kg_N2O.py b/Code/script-01-AGWP-1kg_CO2_1kgCH4_1kg_N2O.py new file mode 100644 index 0000000..13eac1a --- /dev/null +++ b/Code/script-01-AGWP-1kg_CO2_1kgCH4_1kg_N2O.py @@ -0,0 +1,199 @@ +#!/bin/env python3 +# *-* coding: utf-8 *-* +# USAGE : python3 script.py +# +# Work in progress version, not yet a user friendly version. +# +# - - - - - - - - - - - - - - - - - - +import os +import matplotlib.pyplot as plt +import numpy as np +# - - - - - - - - - - - - - - - - - - + +# - - - - - - - - - - - - - - - - - - +from modules.Database import * +from modules.Metrics import * +# - - - - - - - - - - - - - - - - - - +from modules.OrganiseCurves import * +from modules.Utils import * +# - - - - - - - - - - - - - - - - - - +from modules.Uncertainty import * +# - - - - - - - - - - - - - - - - - - + + +################################################################################### +# - - - - - - - - - - - - - - - - - - - - +# USER CHOICE +# Time line +tmin = 0. # USER CHOICE +tmax = 1000. # USER CHOICE + + +# - - - - - - - - - - - - - - - - - - - - +# USER CHOICE +# +# ImpulseRF : "kg" +# RadiativeForcing : "W/m^2" +# AGWP : "W/m^2*yr/kg" +# AGTP : "K/kg" + +indicator = AGWP # USER CHOICE + + + + + + + +# ------- Monte Carlo ----- +# False : nominal value are used +# True : random value are computed using information in Database +# USER CHOICEs +whattodraw={} +whattodraw['CO2'] = { + 'MolarMass' : False , + 'A_RadFor' : True , + 'coeffIRF' : True +} +whattodraw['CH4'] = { + 'MolarMass' : False , + 'A_RadFor' : True , + 'alphaCO2' : True , + 'coeffIRF' : True + +} +whattodraw['N2O'] = { + 'MolarMass' : False , + 'A_RadFor' : True , + 'coeffIRF' : True +} + +whattodraw['OH'] = { + 'coeffIRF' : True +} + +whattodraw['C'] = { + 'MolarMass' : False +} + + + + +# ------- ONE SHOT ----- +# GasDATA and TdrDATA are filled with constant values +GasDATA = GasDATAlib_to_GasDATA_values() +TdrDATA = TdrDATAlib_to_TdrDATA_values() + + + + + +#======================================================================= +# Do not modify +sample=int((tmax-tmin)+1) # Every year +timeline = np.linspace(tmin,tmax,sample) # [ 0. 1. 2. ... 998. 999. 1000.] + + +#======================================================================= +NBDRAW = 50 # USER CHOICE (Higher value (e.g. 5000) -> ensuer statistical convergence of mean and dispersion) + +# Stock initialisation +StoreCO2=np.empty([NBDRAW,sample]) # data in line +StoreCH4=np.empty([NBDRAW,sample]) # data in line +StoreN2O=np.empty([NBDRAW,sample]) # data in line + + + +# En dur pour test : idéalement il faut passer par le catalogue +for i in range(NBDRAW): + # Draw + GasDATA = GESlibtoDATA_draw_values(whattodraw) # COMMENT IF CONSTANT / UNCOMMENT IF RANDOM AND ADD GasDATA = GasDATAlib_to_GasDATA_values() BEFORE LOOP + TdrDATA = TdrDATAlib_to_TdrDATA_draw_values() # COMMENT IF CONSTANT / UNCOMMENT IF RANDOM AND ADD TdrDATA = TdrDATAlib_to_TdrDATA_values() BEFORE LOOP + + + # Compute and store + # doSolutioncurve( indicator, GasDATA,TdrDATA, timeline, PULSE_TIME, 'GHG', GHG_MASS, GHG_origin) + StoreCO2[i] = doSolutioncurve( indicator, GasDATA,TdrDATA, timeline, 0., 'CO2', 1. ,'') + StoreCH4[i] = doSolutioncurve( indicator, GasDATA,TdrDATA, timeline, 0., 'CH4', 1. ,'') + StoreN2O[i] = doSolutioncurve( indicator, GasDATA,TdrDATA, timeline, 0., 'N2O', 1. ,'') + +# Ici on a toute les coubres + + + + + + + +#======================================================================= +# ANALYSIS +# 3 - At each time do a stats on xmean and sigma +meanCO2 = np.empty(sample) +stdCO2 = np.empty(sample) + +meanCH4 = np.empty(sample) +stdCH4 = np.empty(sample) + +meanN2O = np.empty(sample) +stdN2O = np.empty(sample) + +for itime in range(sample): + meanCO2[itime] = np.mean(StoreCO2[:,itime]) + stdCO2[itime] = np.std(StoreCO2[:,itime]) + + meanCH4[itime] = np.mean(StoreCH4[:,itime]) + stdCH4[itime] = np.std(StoreCH4[:,itime]) + + meanN2O[itime] = np.mean(StoreN2O[:,itime]) + stdN2O[itime] = np.std(StoreN2O[:,itime]) + + + + + + + +#======================================================================= +# VISUALISATION +# 4 - Create Mean plot, -/+ (1,2?) sigma plots +# --- +plt.clf() +alpha = 0.25 # Transparence : 1 opaque / 0 rien + +plt.figure(figsize=(10,6)) # carré ou rectangle... +plt.yscale("log") # Y en log ou pas + +# --- STEP BY STEP +fuseau_sigma = 1 + +plt.plot(timeline, meanCO2,'-' , label="mean $CO_2$", color="grey",zorder=2) +plt.fill_between(timeline, meanCO2-fuseau_sigma*stdCO2, meanCO2+fuseau_sigma*stdCO2, alpha=alpha, label="$\\sigma_{CO_2}$", color="grey",zorder=1) + +plt.plot(timeline, meanCH4,'-' , label="mean $CH_4$", color="blue",zorder=2) +plt.fill_between(timeline, meanCH4-fuseau_sigma*stdCH4, meanCH4+fuseau_sigma*stdCH4, alpha=alpha, label="$\\sigma_{CH_4}$", color="blue",zorder=1) + +plt.plot(timeline, meanN2O,'-' , label="mean $N_2O$", color="orange",zorder=2) +plt.fill_between(timeline, meanN2O-fuseau_sigma*stdN2O, meanN2O+fuseau_sigma*stdN2O, alpha=alpha, label="$\\sigma_{N_2O}$", color="orange",zorder=1) + + +# --- +plt.xlabel("time (year)") +plt.ylabel("AGWP (W.yr.m$^{-2}$.kg$^{-1}$)") + +plt.title("a)", loc='left') + + +# --- LEGEND +plt.legend(bbox_to_anchor=(0.5, 0.1), loc="lower center", ncol=3, prop={'size': 12}) + +# Plot the Data +#plt.show() +plt.savefig("FIGURE_01_111_AGWP.pdf", bbox_inches='tight') + + + + +#======================================================================= +#4B - print information by VLAD +print("CO2") +dF_CF(meanCO2, 1, stdCO2) diff --git a/Code/script-02-AGTP-1kg_CO2_1kgCH4_1kg_N2O.py b/Code/script-02-AGTP-1kg_CO2_1kgCH4_1kg_N2O.py new file mode 100644 index 0000000..a234bd4 --- /dev/null +++ b/Code/script-02-AGTP-1kg_CO2_1kgCH4_1kg_N2O.py @@ -0,0 +1,207 @@ +#!/bin/env python3 +# *-* coding: utf-8 *-* +# USAGE : python3 script.py +# +# Work in progress version, not yet a user friendly version. +# +# - - - - - - - - - - - - - - - - - - +import os +import matplotlib.pyplot as plt +import numpy as np +# - - - - - - - - - - - - - - - - - - + +# - - - - - - - - - - - - - - - - - - +from modules.Database import * +from modules.Metrics import * +# - - - - - - - - - - - - - - - - - - +from modules.OrganiseCurves import * +from modules.Utils import * +# - - - - - - - - - - - - - - - - - - +from modules.Uncertainty import * +# - - - - - - - - - - - - - - - - - - + + + +################################################################################### +# - - - - - - - - - - - - - - - - - - - - +# USER CHOICE +# Time line +tmin = 0. # USER CHOICE +tmax = 1000. # USER CHOICE + + +# - - - - - - - - - - - - - - - - - - - - +# USER CHOICE +# +# ImpulseRF : "kg" +# RadiativeForcing : "W/m^2" +# AGWP : "W/m^2*yr/kg" +# AGTP : "K/kg" + +indicator = AGTP + + + +# ------- Monte Carlo ----- +# False : nominal value are used +# True : random value are computed using information in Database +# USER CHOICEs +whattodraw={} +whattodraw['CO2'] = { + 'MolarMass' : False , + 'A_RadFor' : True , + 'coeffIRF' : True +} +whattodraw['CH4'] = { + 'MolarMass' : False , + 'A_RadFor' : True , + 'alphaCO2' : True , + 'coeffIRF' : True + +} +whattodraw['N2O'] = { + 'MolarMass' : False , + 'A_RadFor' : True , + 'coeffIRF' : True +} + +whattodraw['OH'] = { + 'coeffIRF' : True +} + +whattodraw['C'] = { + 'MolarMass' : False +} + + + + +# ------- ONE SHOT ----- +# GasDATA and TdrDATA are filled with values +GasDATA = GasDATAlib_to_GasDATA_values() +TdrDATA = TdrDATAlib_to_TdrDATA_values() + + + + + +#======================================================================= +# Do not modify +sample=int((tmax-tmin)+1) # Every year +timeline = np.linspace(tmin,tmax,sample) # [ 0. 1. 2. ... 998. 999. 1000.] + + + +#======================================================================= +NBDRAW = 50 # USER CHOICE (Higher value (e.g. 5000) -> ensuer statistical convergence of mean and dispersion) + +# Stock initialisation +StoreCO2=np.empty([NBDRAW,sample]) # data in line +StoreCH4=np.empty([NBDRAW,sample]) # data in line +StoreN2O=np.empty([NBDRAW,sample]) # data in line + + + +# En dur pour test : idéalement il faut passer par le catalogue +for i in range(NBDRAW): + # Draw + GasDATA = GESlibtoDATA_draw_values(whattodraw) # COMMENT IF CONSTANT / UNCOMMENT IF RANDOM AND ADD GasDATA = GasDATAlib_to_GasDATA_values() BEFORE LOOP + TdrDATA = TdrDATAlib_to_TdrDATA_draw_values() # COMMENT IF CONSTANT / UNCOMMENT IF RANDOM AND ADD TdrDATA = TdrDATAlib_to_TdrDATA_values() BEFORE LOOP + + + # Compute and store + # doSolutioncurve( indicator, GasDATA,TdrDATA, timeline, PULSE_TIME, 'GHG', GHG_MASS) + StoreCO2[i] = doSolutioncurve( indicator, GasDATA,TdrDATA, timeline, 0., 'CO2', 1. ,'') + StoreCH4[i] = doSolutioncurve( indicator, GasDATA,TdrDATA, timeline, 0., 'CH4', 1. ,'') + StoreN2O[i] = doSolutioncurve( indicator, GasDATA,TdrDATA, timeline, 0., 'N2O', 1. ,'') + +# Ici on a toute les coubres + +#======================================================================= +# ANALYSIS +# 3 - At each time do a stats on xmean and sigma +meanCO2 = np.empty(sample) +stdCO2 = np.empty(sample) + +meanCH4 = np.empty(sample) +stdCH4 = np.empty(sample) + +meanN2O = np.empty(sample) +stdN2O = np.empty(sample) + +for itime in range(sample): + meanCO2[itime] = np.mean(StoreCO2[:,itime]) + stdCO2[itime] = np.std(StoreCO2[:,itime]) + + meanCH4[itime] = np.mean(StoreCH4[:,itime]) + stdCH4[itime] = np.std(StoreCH4[:,itime]) + + meanN2O[itime] = np.mean(StoreN2O[:,itime]) + stdN2O[itime] = np.std(StoreN2O[:,itime]) + + + +#======================================================================= +# VISUALISATION +# 4 - Create Mean plot, -/+ (1,2?) sigma plots +# --- +plt.clf() +alpha = 0.25 # Transparence : 1 opaque / 0 rien + +plt.figure(figsize=(10,6)) # carré ou rectangle... +plt.yscale("log") # Y en log ou pas + + +# --- STEP BY STEP +fuseau_sigma = 1 + +plt.plot(timeline, meanCO2,'-' , label="mean $CO_2$", color="grey",zorder=2) +plt.fill_between(timeline, meanCO2-fuseau_sigma*stdCO2, meanCO2+fuseau_sigma*stdCO2, alpha=alpha, label="$\\sigma_{CO_2}$", color="grey",zorder=1) + +plt.plot(timeline, meanCH4,'-' , label="mean $CH_4$", color="blue",zorder=2) +plt.fill_between(timeline, meanCH4-fuseau_sigma*stdCH4, meanCH4+fuseau_sigma*stdCH4, alpha=alpha, label="$\\sigma_{CH_4}$", color="blue",zorder=1) + +plt.plot(timeline, meanN2O,'-' , label="mean $N_2O$", color="orange",zorder=2) +plt.fill_between(timeline, meanN2O-fuseau_sigma*stdN2O, meanN2O+fuseau_sigma*stdN2O, alpha=alpha, label="$\\sigma_{N_2O}$", color="orange",zorder=1) + + +# --- +plt.xlabel("time (year)") +plt.ylabel("AGTP (K.kg$^{-1}$)") + +plt.title("b)", loc='left') + + +# --- LEGEND +plt.legend(loc='upper right', fancybox=True, ncol = 3, prop={'size': 12}) + + +# --- GRID +#plt.grid() +#plt.grid(axis="y") + +# Plot the Data +#plt.show() +plt.savefig("FIGURE_01_111_AGTP.pdf", bbox_inches='tight') # __logscale +#------------------------------- + + + + + + + + +#======================================================================= +#4B - print information by VLAD +print ("\n", "CO2") +dT_CF(sample, meanCO2, 1, stdCO2) + +print ("\n", "CH4") +dT_CF(sample, meanCH4, 1, stdCH4) + +print ("\n", "N2O") +dT_CF(sample, meanN2O, 1, stdN2O) + +#------------------------------- +