00001 #include "cddefines.h"
00002 #include "mole.h"
00003 #include "mole_co_priv.h"
00004 #include "hmi.h"
00005 #include "conv.h"
00006 #include "grainvar.h"
00007
00008 #ifdef _MSC_VER
00009 # pragma warning( disable : 4100 )
00010 #endif
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 struct t_coreactions coreactions;
00037
00038 STATIC void newreact(const char label[],
00039 double (*fun)(struct COmole_rate_s *rate), double a, double b, double c);
00040 STATIC double hmrate(struct COmole_rate_s *rate);
00041 STATIC double constrate(struct COmole_rate_s *rate);
00042 STATIC double th85rate(struct COmole_rate_s *rate);
00043 STATIC double crnurate(struct COmole_rate_s *rate);
00044 STATIC double co_lnu_c_o_lnu(struct COmole_rate_s *rate);
00045 STATIC double ele_ion_ladder(struct COmole_rate_s *rate);
00046 STATIC double vib_evap(struct COmole_rate_s *rate);
00047 STATIC double th85rate_co(struct COmole_rate_s *rate);
00048 STATIC double grn_abs(struct COmole_rate_s *rate);
00049 STATIC double oh_c2h2_co_ch3(struct COmole_rate_s *rate);
00050 STATIC double h_hnc_hcn_h(struct COmole_rate_s *rate);
00051
00052 static bool lgReactInitialized = false;
00053
00054 void CO_create_react( void )
00055 {
00056
00057
00058
00059
00060
00061 if( lgReactInitialized )
00062 return;
00063
00064 lgReactInitialized = true;
00065
00066 long int i;
00067
00068
00069
00070 DEBUG_ENTRY("CO_create_react()");
00071
00072 coreactions.n = 0;
00073
00074 newreact("N+,(e-)=>N",ele_ion_ladder,1.,0.,0.);
00075 newreact("S+,(e-)=>S",ele_ion_ladder,1.,0.,0.);
00076 newreact("Cl+,(e-)=>Cl",ele_ion_ladder,1.,0.,0.);
00077 newreact("C+,(e-)=>C",ele_ion_ladder,1.,0.,0.);
00078 newreact("O+,(e-)=>O",ele_ion_ladder,1.,0.,0.);
00079 newreact("Si+,(e-)=>Si",ele_ion_ladder,1.,0.,0.);
00080 newreact("C,PHOTON=>C+,e-",ele_ion_ladder,1.,0.,0.);
00081 newreact("O,PHOTON=>O+,e-",ele_ion_ladder,1.,0.,0.);
00082 newreact("Si,PHOTON=>Si+,e-",ele_ion_ladder,1.,0.,0.);
00083 newreact("Cl,PHOTON=>Cl+,e-",ele_ion_ladder,1.,0.,0.);
00084 newreact("N,PHOTON=>N+,e-",ele_ion_ladder,1.,0.,0.);
00085 newreact("S,PHOTON=>S+,e-",ele_ion_ladder,1.,0.,0.);
00086
00087
00088
00089
00090 newreact("S+,Mg=>S,Mg+",hmrate,2.8e-10,0.,0.);
00091 newreact("S+,Fe=>S,Fe+",hmrate,1.8e-10,0.,0.);
00092 newreact("Si+,Mg=>Si,Mg+",hmrate,2.9e-10,0.,0.);
00093 newreact("Si+,Fe=>Si,Fe+",hmrate,1.9e-10,0.,0.);
00094 newreact("C+,Mg=>C,Mg+",hmrate,1.1e-9,0.,0.);
00095 newreact("C+,Fe=>C,Fe+",hmrate,2.6e-9,0.,0.);
00096 if(co.lgUMISTrates)
00097 newreact("CO,lnu=>C,O,lnu",co_lnu_c_o_lnu,1.,0.,0.);
00098 newreact("PHOTON,CO=>C,O",th85rate_co,2.0e-10,3.2,0.);
00099 if(!co.lgUMISTrates)
00100 newreact("C,CRPHOT=>C+,e-",crnurate,2*510,0.,0.);
00101 if( gv.lgDustOn() && mole.lgGrain_mole_deplete )
00102 {
00103
00104 newreact("COgrn=>CO,grn",vib_evap,1.,1210.,0.);
00105 newreact("COgrn,CRPHOT=>CO,grn",crnurate,196./2.17,0.,0.);
00106 newreact("CO,grn=>COgrn",grn_abs,1.,0.,0.);
00107 newreact("H2Ogrn=>H2O,grn",vib_evap,1.,1860.,0.);
00108 newreact("H2Ogrn,CRPHOT=>H2O,grn",crnurate,0.028/2.17,0.,0.);
00109 newreact("H2O,grn=>H2Ogrn",grn_abs,1.,0.,0.);
00110 newreact("OHgrn=>OH,grn",vib_evap,1.,1260.,0.);
00111 newreact("OHgrn,CRPHOT=>OH,grn",crnurate,126./2.17,0.,0.);
00112 newreact("OH,grn=>OHgrn",grn_abs,1.,0.,0.);
00113 }
00114 newreact("H,CO+=>CO,H+",hmrate,7.5e-10,0,0);
00115 newreact("H-,HCO+=>CO,H2",hmrate,0.00000023,-0.5,0);
00116 newreact("H2+,CO=>HCO+,H",hmrate,2.16e-9,0,0);
00117 newreact("H2+,CO=>CO+,H2",hmrate,6.4e-10,0,0);
00118 newreact("H3+,CO=>HCO+,H2",hmrate,1.7e-9,0,0);
00119 newreact("He+,CO=>O+,C,He",hmrate,0.00000000000000014,-0.5,0);
00120 newreact("He+,CO=>O,C+,He",hmrate,1.6e-9,0,0);
00121 newreact("CRPHOT,CO=>C,O",crnurate,2. * 10,0.,0.);
00122 newreact("CRP,CO=>CO+,e-",hmrate,0.000000000000000039,0.,0.);
00123 newreact("C,CO=>C2,O",hmrate,2.94e-11,0.5,58025);
00124 newreact("O,C2=>CO,C",hmrate,5.e-11,0.5,0);
00125 newreact("C2,O2=>CO,CO",hmrate,1.83e-12,0,0);
00126 newreact("C2,O2+=>CO+,CO",hmrate,4.1e-10,0,0);
00127 newreact("C2,CO+=>CO,C2+",hmrate,8.4e-10,0,0);
00128 newreact("C2+,O2=>CO+,CO",hmrate,8.e-10,0,0);
00129 newreact("C,CO+=>CO,C+",hmrate,1.1e-10,0,0);
00130 newreact("C,HCO+=>CO,CH+",hmrate,1.1e-9,0,0);
00131 newreact("C,O=>CO,PHOTON",hmrate,2.1E-19,0,0);
00132 newreact("C,O2=>CO,O",hmrate,3.3e-11,0,0);
00133 newreact("C,OH=>CO,H",hmrate,1.1e-10,0.5,0);
00134 newreact("C,SiO+=>Si+,CO",hmrate,1.0e-9,0,0);
00135
00136
00137 if(co.lgProtElim)
00138 {
00139 if(!co.lgUMISTrates)
00140 newreact("C+,OH=>CO,H+",hmrate,7.7e-10,0.,0.);
00141 else
00142 newreact("C+,OH=>CO,H+",hmrate,2.7e-9,-0.3508,0);
00143 }
00144 if(!co.lgUMISTrates)
00145 newreact("C+,OH=>CO+,H",hmrate,7.7e-10,0.,0.);
00146 else
00147 newreact("C+,OH=>CO+,H",hmrate,2.7e-9,-0.3508,0);
00148 newreact("C+,SiO=>Si+,CO",hmrate,5.4e-10,0,0);
00149 newreact("C+,O2=>CO,O+",hmrate,6.2e-10,0,0);
00150 newreact("O,CH2=>CO,H,H",hmrate,1.33e-10,0,0);
00151 newreact("O,CH2=>CO,H2",hmrate,8.e-11,0,0);
00152 newreact("O,CO+=>CO,O+",hmrate,1.4e-10,0,0);
00153 newreact("O+,CO=>CO+,O",hmrate,4.9e-12,0.5,4580);
00154 newreact("CH,CO+=>CO,CH+",hmrate,3.2e-10,0,0);
00155 newreact("CH,HCO+=>CO,CH2+",hmrate,6.3e-10,0,0);
00156 newreact("CH,O2=>CO,OH",hmrate,2.6e-11,0,0);
00157 newreact("CH2,CO+=>CO,CH2+",hmrate,4.3e-10,0,0);
00158 newreact("CH2,HCO+=>CO,CH3+",hmrate,8.6e-10,0,0);
00159 newreact("CH2,O2=>CO,H2O",hmrate,2.48e-10,-3.3,1443);
00160 newreact("CO+,O2=>O2+,CO",hmrate,1.2e-10,0,0);
00161 newreact("H2O,CO+=>CO,H2O+",hmrate,1.72e-9,0,0);
00162 newreact("H2O,HCO+=>CO,H3O+",hmrate,2.5e-9,0,0);
00163 newreact("H2O+,CO=>HCO+,OH",hmrate,5.0e-10,0,0);
00164 newreact("HCO+,SiH=>SiH2+,CO",hmrate,8.7e-10,0,0);
00165 newreact("HCO+,SiO=>SiOH+,CO",hmrate,7.9e-10,0,0);
00166 newreact("OH,CO+=>CO,OH+",hmrate,3.1e-10,0,0);
00167 newreact("OH,HCO+=>CO,H2O+",hmrate,6.2e-10,0,0);
00168 newreact("OH+,CO=>HCO+,O",hmrate,1.05e-9,0,0);
00169 newreact("CO+,CH4=>CO,CH4+",hmrate,7.93e-10,0,0);
00170 newreact("CO,CH4+=>HCO+,CH3",hmrate,1.4e-9,0,0);
00171 newreact("CO,CH5+=>HCO+,CH4",hmrate,1.0e-9,0,0);
00172 newreact("C,NO=>CO,N",hmrate,4.65e-11,0,0);
00173 newreact("C,OCN=>CO,CN",hmrate,4.0e-11,0.5,0);
00174 newreact("C,SO=>S,CO",hmrate,7.2e-11,0,0);
00175 newreact("O,CN=>CO,N",hmrate,4.36e-11,0.46,364);
00176 newreact("O,HCN=>CO,NH",hmrate,0.00000000000073,1.14,3742);
00177 newreact("O,OCN=>NO,CO",hmrate,9.43e-11,-0.09,100);
00178 newreact("O,CS=>S,CO",hmrate,2.48e-10,-0.65,783);
00179 newreact("O,OCS=>SO,CO",hmrate,1.6e-11,0,2150);
00180 newreact("OH,HCN=>CO,NH2",hmrate,1.07e-13,0,5892);
00181 newreact("CN,NO=>N2,CO",hmrate,1.79e-10,0,4040);
00182 newreact("CN,O2=>NO,CO",hmrate,0.00000000000053,0,0);
00183 newreact("CO,HS=>OCS,H",hmrate,0.0000000000000595,1.12,8330);
00184 newreact("H+,OCS=>HS+,CO",hmrate,2.1e-9,0,0);
00185 newreact("He+,OCS=>S+,CO,He",hmrate,7.6e-10,0,0);
00186 newreact("C+,SO=>S+,CO",hmrate,2.6e-10,0,0);
00187 newreact("C+,OCS=>CS+,CO",hmrate,1.6e-9,0,0);
00188 newreact("CH+,OCS=>HCS+,CO",hmrate,1.05e-9,0,0);
00189 newreact("N+,CO=>NO+,C",hmrate,1.45e-10,0,0);
00190 newreact("N+,OCS=>S+,CO,N",hmrate,3.08e-10,0,0);
00191 newreact("NH+,CO=>HCO+,N",hmrate,4.41e-10,0,0);
00192 newreact("NH+,CO=>OCN+,H",hmrate,5.39e-10,0,0);
00193 newreact("NH,HCO+=>CO,NH2+",hmrate,6.4e-10,0,0);
00194 newreact("NH2,HCO+=>CO,NH3+",hmrate,8.9e-10,0,0);
00195 newreact("NH3,HCO+=>CO,NH4+",hmrate,2.2e-9,0,0);
00196 newreact("CN+,O2=>NO+,CO",hmrate,8.6e-11,0,0);
00197 newreact("HCN+,CO=>HCO+,CN",hmrate,1.4e-10,0,0);
00198 newreact("CO,HNO+=>NO,HCO+",hmrate,1.0e-10,0,0);
00199 newreact("N2+,OCS=>S+,N2,CO",hmrate,1.04e-9,0,0);
00200 newreact("HCO+,S=>HS+,CO",hmrate,3.3e-10,0,0);
00201 newreact("HCO+,CS=>HCS+,CO",hmrate,1.2e-9,0,0);
00202 newreact("NH,CO+=>CO,NH+",hmrate,3.2e-10,0,0);
00203 newreact("NH2,CO+=>CO,NH2+",hmrate,4.5e-10,0,0);
00204 newreact("NH3,CO+=>CO,NH3+",hmrate,2.02e-9,0,0);
00205 newreact("CN+,CO=>CO+,CN",hmrate,6.3e-10,0,0);
00206 newreact("HCN,CO+=>CO,HCN+",hmrate,3.4e-9,0,0);
00207 newreact("CO,N2+=>N2,CO+",hmrate,7.4e-11,0,0);
00208 newreact("CO+,NO=>NO+,CO",hmrate,3.3e-10,0,0);
00209 newreact("OCN+,e-=>CO,N",hmrate,0.0000003,-0.5,0);
00210 newreact("OCS+,e-=>S,CO",hmrate,0.00000015,-0.5,0);
00211 newreact("CO,S=>OCS,PHOTON",hmrate,1.6e-17,-1.5,0);
00212 newreact("OCS,PHOTON=>S,CO",th85rate,3.7e-9,0.,0.);
00213 newreact("OCS,CRP=>S,CO",crnurate,5360 * 2,0.,0.);
00214 newreact("N+,CO=>CO+,N",hmrate,8.25e-10,0,0);
00215 newreact("CO+,S=>S+,CO",hmrate,1.1e-9,0,0);
00216 newreact("O,CCl=>Cl,CO",hmrate,0.0000000000996,0,0);
00217 newreact("CO,H2Cl+=>HCl,HCO+",hmrate,0.00000000078,0,0);
00218 newreact("HNC,HCO+=>HCNH+,CO",hmrate,0.0000000031,0,0);
00219 newreact("HCN,HCO+=>HCNH+,CO",hmrate,0.0000000031,0,0);
00220 newreact("O,C2H=>CO,CH",hmrate,0.000000000017,0,0);
00221 newreact("C2H,CO+=>CO,C2H+",hmrate,0.00000000039,0,0);
00222 newreact("C2,HCO+=>CO,C2H+",hmrate,0.00000000083,0,0);
00223 newreact("O2,C3=>CO,C2,O",hmrate,0.000000000001,0,0);
00224 newreact("O,C3=>CO,C2",hmrate,0.00000000005,0.5,0);
00225 newreact("C2H,HCO+=>CO,C2H2+",hmrate,0.00000000078,0,0);
00226 newreact("O,C3H=>CO,C2H",hmrate,0.0000000001,0,250);
00227 newreact("O,C2H2=>CO,CH2",hmrate,0.00000000000839,1.03,1197);
00228 newreact("OH,C2H2=>CO,CH3",oh_c2h2_co_ch3,6.51E-18,4.,-1006);
00229 newreact("HCO+,C3=>C3H+,CO",hmrate,0.000000002,0,0);
00230 newreact("H2O,C3H+=>CO,C2H3+",hmrate,0.00000000018,0,0);
00231 newreact("C2H2,HCO+=>CO,C2H3+",hmrate,0.0000000014,0,0);
00232 newreact("e-,CH+=>C,H",hmrate,0.00000015,-0.42,0);
00233 newreact("e-,CH2+=>C,H,H",hmrate,0.000000403,-0.6,0);
00234 newreact("e-,CH3+=>CH,H,H",hmrate,0.000000056,-0.5,0);
00235 newreact("e-,CH3+=>CH3,PHOTON",hmrate,1.1e-10,-0.5,0);
00236
00237 newreact("e-,H2O+=>OH,H",hmrate,0.0000000792,-0.5,0);
00238 newreact("e-,H2O+=>O,H,H",hmrate,0.000000245,-0.5,0);
00239 newreact("e-,H2O+=>O,H2",hmrate,0.000000036,-0.5,0);
00240 newreact("e-,H3O+=>H2O,H",hmrate,0.000000108,-0.5,0);
00241 newreact("e-,H3O+=>OH,H,H",hmrate,0.000000258,-0.5,0);
00242 newreact("e-,H3O+=>OH,H2",hmrate,0.0000000645,-0.5,0);
00243 newreact("e-,H3O+=>O,H2,H",hmrate,5.59e-9,-0.5,0);
00244 newreact("e-,O2+=>O,O",hmrate,0.000000195,-0.7,0);
00245 newreact("e-,OH+=>O,H",hmrate,0.0000000375,-0.5,0);
00246 newreact("e-,SiH2+=>SiH,H",hmrate,0.00000015,-0.5,0);
00247 newreact("e-,SiH2+=>Si,H,H",hmrate,0.0000002,-0.5,0);
00248 newreact("e-,SiH2+=>Si,H2",hmrate,0.00000015,-0.5,0);
00249 newreact("e-,SiO+=>Si,O",hmrate,0.0000002,-0.5,0);
00250 newreact("e-,SiOH+=>SiO,H",hmrate,0.00000015,-0.5,0);
00251 newreact("e-,SiOH+=>Si,OH",hmrate,0.00000015,-0.5,0);
00252 newreact("e-,CH5+=>CH3,H2",hmrate,0.00000055,-0.3,0);
00253 newreact("e-,CH5+=>CH4,H",hmrate,0.00000055,-0.3,0);
00254 newreact("e-,CH4+=>CH3,H",hmrate,0.000000175,-0.5,0);
00255 newreact("e-,CH4+=>CH2,H,H",hmrate,0.000000175,-0.5,0);
00256 newreact("C2+,e-=>C,C",hmrate,0.0000003,-0.5,0);
00257 newreact("NH+,e-=>N,H",hmrate,0.000000043,-0.5,0);
00258 newreact("NH2+,e-=>N,H,H",hmrate,0.000000198,-0.5,0);
00259 newreact("NH2+,e-=>NH,H",hmrate,0.000000102,-0.5,0);
00260 newreact("NH3+,e-=>NH,H,H",hmrate,0.000000155,-0.5,0);
00261 newreact("NH3+,e-=>NH2,H",hmrate,0.000000155,-0.5,0);
00262 newreact("NH4+,e-=>NH2,H,H",hmrate,0.000000286,-0.5,0);
00263 newreact("NH4+,e-=>NH2,H2",hmrate,0.000000137,-0.5,0);
00264 newreact("NH4+,e-=>NH3,H",hmrate,0.000000938,-0.5,0);
00265 newreact("CN+,e-=>N,C",hmrate,0.00000018,-0.5,0);
00266 newreact("HCN+,e-=>CN,H",hmrate,0.0000002,-0.5,0);
00267 newreact("N2+,e-=>N,N",hmrate,0.000000036,-0.42,0);
00268 newreact("NO+,e-=>O,N",hmrate,0.00000043,-0.37,0);
00269 newreact("HNO+,e-=>NO,H",hmrate,0.0000003,-0.5,0);
00270 newreact("HS+,e-=>S,H",hmrate,0.0000002,-0.5,0);
00271 newreact("SiN+,e-=>Si,N",hmrate,0.0000002,-0.5,0);
00272 newreact("CS+,e-=>S,C",hmrate,0.0000002,-0.5,0);
00273 newreact("HCS+,e-=>CS,H",hmrate,0.00000005,-0.75,0);
00274 newreact("NO2+,e-=>NO,O",hmrate,0.0000003,-0.5,0);
00275 newreact("NS+,e-=>S,N",hmrate,0.0000002,-0.5,0);
00276 newreact("SO+,e-=>S,O",hmrate,0.0000002,-0.5,0);
00277 newreact("OCS+,e-=>CS,O",hmrate,0.00000015,-0.5,0);
00278 newreact("S2+,e-=>S,S",hmrate,0.0000002,-0.5,0);
00279 newreact("HCl+,e-=>Cl,H",hmrate,0.0000003,-0.5,0);
00280 newreact("H2Cl+,e-=>Cl,H,H",hmrate,0.00000027,-0.5,0);
00281 newreact("H2Cl+,e-=>HCl,H",hmrate,0.00000003,-0.5,0);
00282 newreact("CCl+,e-=>Cl,C",hmrate,0.0000003,-0.5,0);
00283 newreact("H2CCl+,e-=>CCl,H,H",hmrate,0.0000003,-0.5,0);
00284 newreact("ClO+,e-=>Cl,O",hmrate,0.0000002,-0.5,0);
00285 newreact("HCNH+,e-=>HCN,H",hmrate,0.00000009,-0.5,0);
00286 newreact("HCNH+,e-=>CN,H,H",hmrate,0.00000018,-0.5,0);
00287 newreact("HCNH+,e-=>HNC,H",hmrate,0.00000009,-0.5,0);
00288 newreact("C2H+,e-=>CH,C",hmrate,0.000000135,-0.5,0);
00289 newreact("C2H+,e-=>C2,H",hmrate,0.000000116,-0.76,0);
00290 newreact("C3+,e-=>C2,C",hmrate,0.0000003,-0.5,0);
00291 newreact("C2H2+,e-=>C2,H,H",hmrate,0.00000009,-0.5,0);
00292 newreact("C2H2+,e-=>CH,CH",hmrate,0.00000009,-0.5,0);
00293 newreact("C2H2+,e-=>C2H,H",hmrate,0.00000029,-0.5,0);
00294 newreact("C3H+,e-=>C2H,C",hmrate,0.00000015,-0.5,0);
00295 newreact("C3H+,e-=>C3,H",hmrate,0.00000015,-0.5,0);
00296 newreact("C2H3+,e-=>C2H2,H",hmrate,0.00000045,-0.5,0);
00297
00298
00299
00300 newreact("N2H+,e-=>N2,H",hmrate,0.36e-7,-0.51,0);
00301 newreact("N2H+,e-=>NH,N",hmrate,0.64e-7,-0.51,0);
00302 newreact("NH,PHOTON=>NH+,e-",th85rate,1.0e-11,0.,0.);
00303 newreact("NH,PHOTON=>N,H",th85rate,5.0e-10,0.,0.);
00304 newreact("NH2,PHOTON=>NH,H",th85rate,3.9e-10,0.,0.);
00305 newreact("NH2,PHOTON=>NH2+,e-",th85rate,1.73e-10,0.,0.);
00306 newreact("NH3,PHOTON=>NH3+,e-",th85rate,1.8e-10,0.,0.);
00307 newreact("NH3,PHOTON=>NH,H2",th85rate,3.3e-10,0.,0.);
00308 newreact("NH3,PHOTON=>NH2,H",th85rate,1.1e-9,0.,0.);
00309 newreact("CN,PHOTON=>N,C",th85rate,1.1e-9,0.,0.);
00310 newreact("HCN,PHOTON=>CN,H",th85rate,1.3e-9,0.,0.);
00311 newreact("N2,PHOTON=>N,N",th85rate,2.3e-10,0.,0.);
00312 newreact("NO,PHOTON=>O,N",th85rate,4.3e-10,0.,0.);
00313 newreact("NO,PHOTON=>NO+,e-",th85rate,2.6e-10,0.,0.);
00314 newreact("HNO,PHOTON=>NO,H",th85rate,1.7e-10,0.,0.);
00315 newreact("HS,PHOTON=>S,H",th85rate,9.7e-10,0.,0.);
00316 newreact("HS+,PHOTON=>S+,H",th85rate,3.e-10,0.,0.);
00317 newreact("OCN,PHOTON=>CN,O",th85rate,1.0e-11,0.,0.);
00318 newreact("CS,PHOTON=>S,C",th85rate,9.7e-10,0.,0.);
00319 newreact("CS+,PHOTON=>S+,C",th85rate,2.0e-10,0.,0.);
00320 newreact("CS,PHOTON=>CS+,e-",th85rate,2.0e-10,0.,0.);
00321 newreact("NO2,PHOTON=>NO,O",th85rate,1.2e-9,0.,0.);
00322 newreact("NS,PHOTON=>S,N",th85rate,1.0e-11,0.,0.);
00323 newreact("SO,PHOTON=>S,O",th85rate,3.7e-9,0.,0.);
00324 newreact("SO,PHOTON=>SO+,e-",th85rate,6.e-10,0.,0.);
00325 newreact("OCS,PHOTON=>OCS+,e-",th85rate,4.2e-10,0.,0.);
00326 newreact("NH,CRP=>NH+,e-",crnurate,500 * 2,0.,0.);
00327 newreact("NH,CRP=>N,H",crnurate,500 * 2,0.,0.);
00328 newreact("NH2,CRP=>NH,H",crnurate,81 * 2,0.,0.);
00329 newreact("NH2,CRP=>NH2+,e-",crnurate,610 * 2,0.,0.);
00330 newreact("NH3,CRP=>NH3+,e-",crnurate,543 * 2,0.,0.);
00331 newreact("NH3,CRP=>NH,H2",crnurate,541 * 2,0.,0.);
00332 newreact("NH3,CRP=>NH2,H",crnurate,1325 * 2,0.,0.);
00333 newreact("CN,CRP=>N,C",crnurate,10580 * 2,0.,0.);
00334 newreact("HCN,CRP=>CN,H",crnurate,3114 * 2,0.,0.);
00335 newreact("N2,CRP=>N,N",crnurate,50 * 2,0.,0.);
00336 newreact("NO,CRP=>O,N",crnurate,427 * 2,0.,0.);
00337 newreact("NO,CRP=>NO+,e-",crnurate,430 * 2,0.,0.);
00338 newreact("HNO,CRP=>NO,H",crnurate,1000 * 2,0.,0.);
00339 newreact("HS,CRP=>S,H",crnurate,500 * 2,0.,0.);
00340 newreact("OCN,CRP=>CN,O",crnurate,1500 * 2,0.,0.);
00341 newreact("CS,CRP=>S,C",crnurate,500 * 2,0.,0.);
00342 newreact("CS,CRP=>CS+,e-",crnurate,500 * 2,0.,0.);
00343 newreact("NO2,CRP=>NO,O",crnurate,1500 * 2,0.,0.);
00344 newreact("NS,CRP=>S,N",crnurate,500 * 2,0.,0.);
00345 newreact("SO,CRP=>S,O",crnurate,500 * 2,0.,0.);
00346 newreact("SO,CRP=>SO+,e-",crnurate,500 * 2,0.,0.);
00347 newreact("OCS,CRP=>OCS+,e-",crnurate,1444 * 2,0.,0.);
00348 newreact("PHOTON,CH=>CH+,e-",th85rate,7.6e-10,2.8,0.);
00349 newreact("PHOTON,CH=>C,H",th85rate,8.6e-10,1.2,0.);
00350 newreact("PHOTON,CH+=>C+,H",th85rate,2.5e-10,2.5,0.);
00351 newreact("PHOTON,CH2=>CH2+,e-",th85rate,1.0e-9,2.3,0.);
00352 newreact("PHOTON,CH2=>CH,H",th85rate,7.2e-10,1.7,0.);
00353 newreact("PHOTON,CH2+=>CH+,H",th85rate,1.7e-9,1.7,0.);
00354 newreact("PHOTON,CH3+=>CH2+,H",th85rate,1.0e-9,1.7,0.);
00355 newreact("PHOTON,CH3+=>CH+,H2",th85rate,1.0e-9,1.7,0.);
00356 newreact("PHOTON,H2O=>H2O+,e-",th85rate,3.3e-11,3.9,0.);
00357 newreact("PHOTON,H2O=>OH,H",th85rate,5.9e-10,1.7,0.);
00358 newreact("PHOTON,O2=>O2+,e-",th85rate,5.6e-11,3.7,0.);
00359 newreact("PHOTON,O2=>O,O",th85rate,6.9e-10,1.8,0.);
00360 newreact("PHOTON,OH=>OH+,e-",th85rate,1.6e-12,3.1,0.);
00361 newreact("PHOTON,OH=>O,H",th85rate,3.5e-10,1.7,0.);
00362 newreact("PHOTON,OH+=>O,H+",th85rate,1.e-12,1.8,0.);
00363 newreact("PHOTON,SiH=>Si,H",th85rate,2.8e-9,1.1,0.);
00364 newreact("PHOTON,SiO=>Si,O",th85rate,1.0e-10,2.3,0.);
00365 newreact("HNC,PHOTON=>CN,H",th85rate,1.5e-9,0.,0.);
00366 newreact("HNC,CRPHOT=>CN,H",crnurate,2*2986,0.,0.);
00367 newreact("HCl,PHOTON=>Cl,H",th85rate,0.00000000011,0.,0.);
00368 newreact("CCl,PHOTON=>Cl,C",th85rate,0.0000000001,0.,0.);
00369 newreact("ClO,PHOTON=>Cl,O",th85rate,0.0000000001,0.,0.);
00370 newreact("HCl,CRPHOT=>Cl,H",crnurate,2*610,0.,0.);
00371 newreact("CCl,CRPHOT=>Cl,C",crnurate,2*500,0.,0.);
00372 newreact("ClO,CRPHOT=>Cl,O",crnurate,2*500,0.,0.);
00373 newreact("cr,CH=>C,H",crnurate,2. * 756,0.,0.);
00374 newreact("cr,CH+=>C+,H",crnurate,2. * 183,0.,0.);
00375 newreact("cr,H2O=>OH,H",crnurate,2. * 979,0.,0.);
00376 newreact("cr,O2=>O2+,e-",crnurate,2. *88,0.,0.);
00377 newreact("cr,O2=>O,O",crnurate,2. *730,0.,0.);
00378 newreact("cr,OH=>O,H",crnurate,2. *522,0.,0.);
00379 newreact("cr,SiH=>Si,H",crnurate,2. *500,0.,0.);
00380 newreact("cr,SiO=>Si,O",crnurate,2. *500,0.,0.);
00381 newreact("PHOTON,CH3=>CH3+,e-",th85rate,1.0e-10,2.1,0.);
00382 newreact("PHOTON,CH3=>CH2,H",th85rate,2.5e-10,1.9,0.);
00383 newreact("PHOTON,CH3=>CH,H2",th85rate,2.5e-10,1.9,0.);
00384 newreact("CRPHOT,CH3=>CH3+,e-",crnurate,2.*500,0.,0.);
00385 newreact("CRPHOT,CH3=>CH2,H",crnurate,2.*500,0.,0.);
00386 newreact("CRPHOT,CH3=>CH,H2",crnurate,2.*500,0.,0.);
00387 newreact("PHOTON,CH4=>CH3,H",th85rate,2.2e-10,2.2,0.);
00388 newreact("PHOTON,CH4=>CH2,H2",th85rate,9.8e-10,2.2,0.);
00389 newreact("PHOTON,CH4=>CH,H2,H",th85rate,2.2e-10,2.2,0.);
00390 newreact("CRPHOT,CH4=>CH2,H2",crnurate,2.*2272,0.,0.);
00391 newreact("C2,PHOTON=>C,C",th85rate,4.7e-11,0.,0.);
00392 newreact("C2,PHOTON=>C2+,e-",th85rate,1e-10,0.,0.);
00393 newreact("C2,cr=>C,C",crnurate,2. *500,0.,0.);
00394 newreact("C2+,PHOTON=>C+,C",th85rate,1.0e-11,0.,0.);
00395 newreact("C2H,CRPHOT=>C2,H",crnurate,2*5000,0.,0.);
00396 newreact("C2H,PHOTON=>C2,H",th85rate,0.00000000051,0.,0.);
00397 newreact("C2H,PHOTON=>C2H+,e-",th85rate,0.00000000001,0.,0.);
00398 newreact("C2H,CRPHOT=>C2H+,e-",crnurate,2*5000,0.,0.);
00399 newreact("C3,PHOTON=>C2,C",th85rate,0.0000000038,0.,0.);
00400 newreact("C3,CRPHOT=>C2,C",crnurate,2*1119,0.,0.);
00401 newreact("C2H2,CRPHOT=>C2H2+,e-",crnurate,2*1309,0.,0.);
00402 newreact("C2H2,CRPHOT=>C2H,H",crnurate,2*5155,0.,0.);
00403 newreact("C3H,CRPHOT=>C3,H",crnurate,2*5000,0.,0.);
00404 newreact("C2H2,PHOTON=>C2H2+,e-",th85rate,0.00000000046,0.,0.);
00405 newreact("C2H2,PHOTON=>C2H,H",th85rate,0.0000000073,0.,0.);
00406 newreact("C3H,PHOTON=>C3,H",th85rate,0.000000001,0.,0.);
00407 newreact("H,CH=>C,H,H",hmrate,6.0e-9,0,40200);
00408 newreact("H,OH=>O,H,H",hmrate,6.0e-9,0,50900);
00409 newreact("H,H2O=>OH,H,H",hmrate,5.8e-9,0,52900);
00410 if(!co.lgFederman)
00411 {
00412 newreact("O,CH=>CO,H",hmrate,6.6e-11,0.,0.);
00413 newreact("e-,CH2+=>CH,H",hmrate,0.00000016,-0.6,0);
00414 newreact("e-,CH2+=>C,H2",hmrate,0.0000000768,-0.6,0);
00415 newreact("e-,CH3+=>C,H2,H",hmrate,0.000000105,-0.5,0);
00416 newreact("e-,CH3+=>CH2,H",hmrate,0.00000014,-0.5,0);
00417 newreact("e-,CH3+=>CH,H2",hmrate,0.000000049,-0.5,0);
00418 newreact("e-,CO+=>C,O",hmrate,0.0000002,-0.48,0);
00419 newreact("H,CH=>C,H2",hmrate,2.7e-11,0.38,2200);
00420 newreact("H2,CO+=>HCO+,H",hmrate,1.8e-9,0.,0.);
00421 newreact("H2,CH2+=>CH3+,H",hmrate,1.6e-9,0.,0.);
00422 newreact("H2,C+=>CH2+,PHOTON",hmrate,0.0000000000000004,-0.2,0);
00423 newreact("N,C2=>CN,C",hmrate,5.e-11,0.5,0);
00424 newreact("C+,CH=>C2+,H",hmrate,27e-9,-0.50,0);
00425 newreact("C+,CH=>CH+,C",hmrate,3.8e-10,0.,0.);
00426 newreact("O,CH3+=>HCO+,H2",hmrate,4.0e-10,0.,0.);
00427 newreact("CH,N=>CN,H",hmrate,1.66e-10,-0.09,0);
00428 newreact("C+,NH=>CN+,H",hmrate,7.8e-10,0.,0.);
00429 }
00430 else
00431 {
00432 newreact("O,CH=>CO,H",hmrate,9.5e-11,0.5,0);
00433 newreact("e-,CH2+=>CH,H",hmrate,1.25e-7,-0.5,0);
00434 newreact("e-,CH2+=>C,H2",hmrate,1.25e-7,-0.5,0);
00435 newreact("e-,CH3+=>C,H2,H",hmrate,3.5e-8,-0.5,0);
00436 newreact("e-,CH3+=>CH2,H",hmrate,7.0e-8,-0.5,0);
00437 newreact("e-,CH3+=>CH,H2",hmrate,2.45e-7,-0.5,0);
00438 newreact("e-,CO+=>C,O",hmrate,1.0e-7,-0.46,0);
00439 newreact("H,CH=>C,H2",hmrate,5.0e-11,0.5,2200);
00440 newreact("H2,CO+=>HCO+,H",hmrate,1.4e-9,0.,0.);
00441 newreact("H2,CH2+=>CH3+,H",hmrate,1.2e-9,0.,0.);
00442 newreact("H2,C+=>CH2+,PHOTON",hmrate,1.0e-16,0.,0.);
00443 newreact("N,C2=>CN,C",hmrate,1.7e-11,0.5,0);
00444 newreact("C+,CH=>C2+,H",hmrate,5.4e-10,0.,0.);
00445 newreact("C+,CH=>CH+,C",hmrate,1.5e-9,0.,0.);
00446 newreact("O,CH3+=>HCO+,H2",hmrate,4.4e-10,0.,0.);
00447 newreact("CH,N=>CN,H",hmrate,2e-11,0.5,0);
00448 newreact("C+,NH=>CN+,H",hmrate,5.0e-10,0.,0.);
00449 }
00450
00451 newreact("e-,HCO+=>CO,H",hmrate,2.4e-7,-0.69,0);
00452 newreact("H,CH+=>C+,H2",hmrate,7.5e-10,0,0);
00453 newreact("H,CH2=>CH,H2",hmrate,6.64e-11,0,370);
00454 newreact("H,CH3+=>CH2+,H2",hmrate,7.0e-10,0,10560);
00455 newreact("H,OH=>O,H2",hmrate,0.0000000000000699,2.8,1950);
00456 newreact("H,H2O=>OH,H2",hmrate,1.59e-11,1.2,9610);
00457 newreact("H,O2=>OH,O",hmrate,2.61e-10,0,8156);
00458 newreact("H,O2=>O,O,H",hmrate,6.0e-9,0,52300);
00459 newreact("H,C=>CH,PHOTON",hmrate,1.e-17,0,0);
00460 newreact("H,C+=>CH+,PHOTON",hmrate,1.7e-17,0,0);
00461 newreact("H,OH=>H2O,PHOTON",hmrate,5.26E-18,-5.22,90);
00462 newreact("H,O=>OH,PHOTON",hmrate,9.9E-19,-0.38,0);
00463 newreact("H-,CH=>CH2,e-",hmrate,1.0e-10,0,0);
00464 newreact("H-,C=>CH,e-",hmrate,1.0e-9,0,0);
00465 newreact("H-,OH=>H2O,e-",hmrate,1.0e-10,0,0);
00466 newreact("H-,O=>OH,e-",hmrate,1.0e-9,0,0);
00467 newreact("H-,H3O+=>H2O,H2",hmrate,0.00000023,-0.5,0);
00468 newreact("H-,H3O+=>OH,H2,H",hmrate,0.00000023,-0.5,0);
00469 newreact("H+,CH=>CH+,H",hmrate,1.9e-9,0,0);
00470 newreact("H+,CH2=>CH2+,H",hmrate,1.4e-9,0,0);
00471 newreact("H+,H2O=>H2O+,H",hmrate,6.9e-9,0,0);
00472 newreact("H+,O2=>O2+,H",hmrate,2.0e-9,0,0);
00473 newreact("H+,OH=>OH+,H",hmrate,2.1e-9,0,0);
00474 newreact("H+,SiO=>SiO+,H",hmrate,3.3e-9,0,0);
00475 newreact("H+,CH2=>CH+,H2",hmrate,1.4e-9,0,0);
00476 newreact("H+,SiH=>Si+,H2",hmrate,1.7e-9,0,0);
00477 newreact("H2,C=>CH,H",hmrate,6.64e-10,0,11700);
00478 newreact("H2,C+=>CH+,H",hmrate,1.0e-10,0,4640);
00479 newreact("H2,CH=>CH2,H",hmrate,5.46e-10,0,1943);
00480 newreact("H2,CH+=>CH2+,H",hmrate,1.2e-9,0,0);
00481 newreact("H2,OH=>H2O,H",hmrate,2.05e-12,1.52,1736);
00482 newreact("H2,OH+=>H2O+,H",hmrate,1.01e-9,0,0);
00483 newreact("H2,H2O+=>H3O+,H",hmrate,6.4e-10,0,0);
00484 newreact("H2,O=>OH,H",hmrate,3.14e-13,2.7,3150);
00485 newreact("H2,O+=>OH+,H",hmrate,1.7e-9,0,0);
00486 newreact("H2,SiO+=>SiOH+,H",hmrate,3.2e-10,0,0);
00487 newreact("H2,CH=>C,H2,H",hmrate,6.0e-9,0,40200);
00488 newreact("H2,OH=>O,H2,H",hmrate,6.0e-9,0,50900);
00489 newreact("H2,H2O=>OH,H2,H",hmrate,5.8e-9,0,52900);
00490 newreact("H2,O2=>O,O,H2",hmrate,6.0e-9,0,52300);
00491 newreact("H2,O2=>OH,OH",hmrate,3.16e-10,0,21890);
00492 newreact("H2,C=>CH2,PHOTON",hmrate,1.e-17,0,0);
00493 newreact("H2,Si+=>SiH2+,PHOTON",hmrate,0.000000000000000003,0,0);
00494 newreact("H2+,C=>CH+,H",hmrate,2.4e-9,0,0);
00495 newreact("H2+,CH=>CH2+,H",hmrate,7.1e-10,0,0);
00496 newreact("H2+,CH2=>CH3+,H",hmrate,1.0e-9,0,0);
00497 newreact("H2+,OH=>H2O+,H",hmrate,7.6e-10,0,0);
00498 newreact("H2+,H2O=>H3O+,H",hmrate,3.4e-9,0,0);
00499 newreact("H2+,O=>OH+,H",hmrate,1.5e-9,0,0);
00500 newreact("H2+,CH=>CH+,H2",hmrate,7.1e-10,0,0);
00501 newreact("H2+,CH2=>CH2+,H2",hmrate,1.0e-9,0,0);
00502 newreact("H2,S=>HS,H",hmrate,1.76e-13,2.88,6126);
00503 newreact("H2+,H2O=>H2O+,H2",hmrate,3.9e-9,0,0);
00504 newreact("H2+,O2=>O2+,H2",hmrate,8.e-10,0,0);
00505 newreact("H2+,OH=>OH+,H2",hmrate,7.6e-10,0,0);
00506 newreact("H3+,C=>CH+,H2",hmrate,2.0e-9,0,0);
00507 newreact("H3+,CH=>CH2+,H2",hmrate,1.2e-9,0,0);
00508 newreact("H3+,CH2=>CH3+,H2",hmrate,1.7e-9,0,0);
00509 newreact("H3+,OH=>H2O+,H2",hmrate,1.3e-9,0,0);
00510 newreact("H3+,H2O=>H3O+,H2",hmrate,5.9e-9,0,0);
00511 newreact("H3+,O=>OH+,H2",hmrate,8.e-10,0,0);
00512 newreact("H3+,SiH=>SiH2+,H2",hmrate,2.0e-9,0,0);
00513 newreact("H3+,SiO=>SiOH+,H2",hmrate,2.0e-9,0,0);
00514 newreact("He+,CH=>CH+,He",hmrate,5.0e-10,0,0);
00515 newreact("He+,H2O=>H2O+,He",hmrate,6.05e-11,0,0);
00516 newreact("He+,O2=>O2+,He",hmrate,3.3e-11,0,0);
00517 newreact("He+,CH=>C+,H,He",hmrate,1.1e-9,0,0);
00518 newreact("He+,CH2=>CH+,H,He",hmrate,7.5e-10,0,0);
00519 newreact("He+,OH=>O+,H,He",hmrate,1.1e-9,0,0);
00520 newreact("He+,H2O=>OH+,H,He",hmrate,2.86e-10,0,0);
00521 newreact("He+,SiH=>Si+,H,He",hmrate,1.8e-9,0,0);
00522 newreact("He+,H2O=>OH,H+,He",hmrate,2.04e-10,0,0);
00523 newreact("He+,CH2=>C+,H2,He",hmrate,7.5e-10,0,0);
00524 newreact("He+,O2=>O+,O,He",hmrate,1.0e-9,0,0);
00525 newreact("He+,SiO=>Si+,O,He",hmrate,8.6e-10,0,0);
00526 newreact("He+,SiO=>Si,O+,He",hmrate,8.6e-10,0,0);
00527 newreact("He+,Si=>Si+,He",hmrate,0.0000000033,0,0);
00528 newreact("H,CH3=>CH2,H2",hmrate,1.0e-10,0,7600);
00529 newreact("H,CH4+=>CH3+,H2",hmrate,1.0e-11,0,0);
00530 newreact("H,CH5+=>CH4+,H2",hmrate,2.0e-11,0,0);
00531 newreact("H2,CH2=>CH3,H",hmrate,5.18e-11,0.17,6400);
00532 newreact("H2,CH=>CH3,PHOTON",hmrate,5.09E-18,-0.71,11.6);
00533 newreact("H2,CH3=>CH4,H",hmrate,0.0000000000000686,2.74,4740);
00534 newreact("H2,CH4+=>CH5+,H",hmrate,3.3e-11,0,0);
00535 newreact("H2,CH3+=>CH5+,PHOTON",hmrate,0.000000000000013,-1,0);
00536 newreact("H2+,CH4=>CH3+,H2,H",hmrate,2.3e-9,0,0);
00537 newreact("H2+,CH4=>CH4+,H2",hmrate,1.4e-9,0,0);
00538 newreact("H2+,CH4=>CH5+,H",hmrate,1.14e-10,0,0);
00539 newreact("H3+,CH3=>CH4+,H2",hmrate,2.1e-9,0,0);
00540 newreact("H3+,CH4=>CH5+,H2",hmrate,2.4e-9,0,0);
00541 newreact("He+,CH3=>CH+,He,H2",hmrate,1.8e-9,0,0);
00542 newreact("He+,CH4=>CH+,He,H2,H",hmrate,2.4e-10,0,0);
00543 newreact("He+,CH4=>CH2+,He,H2",hmrate,9.5e-10,0,0);
00544 newreact("He+,CH4=>CH3,He,H+",hmrate,4.8e-10,0,0);
00545 newreact("He+,CH4=>CH3+,He,H",hmrate,8.5e-11,0,0);
00546 newreact("He+,CH4=>CH4+,He",hmrate,5.1e-11,0,0);
00547 newreact("H-,CH2=>CH3,e-",hmrate,1.0e-9,0,0);
00548 newreact("H-,CH3=>CH4,e-",hmrate,1.0e-9,0,0);
00549 newreact("H+,CH3=>CH3+,H",hmrate,3.4e-9,0,0);
00550 newreact("H+,CH4=>CH3+,H2",hmrate,2.3e-9,0,0);
00551 newreact("H+,CH4=>CH4+,H",hmrate,1.5e-9,0,0);
00552 newreact("He+,C2=>C+,C,He",hmrate,1.6e-9,0,0);
00553 if(hmi.lgLeiden_Keep_ipMH2s)
00554 {
00555 newreact("H2*,CH=>C,H2,H",hmrate,6.0e-9,0.,0.);
00556 newreact("H2*,OH=>O,H2,H",hmrate,6.0e-9,0.,0.);
00557 newreact("H2*,H2O=>OH,H2,H",hmrate,5.8e-9,0.,0.);
00558 newreact("H2*,O2=>O,O,H2",hmrate,6.0e-9,0.,0.);
00559 newreact("H2*,CH2=>CH3,H",hmrate,5.18e-11,0.17,0);
00560 newreact("H2*,CH=>CH3,PHOTON",hmrate,5.09E-18,-0.71,0);
00561 newreact("H2*,CH3=>CH4,H",hmrate,0.0000000000000686,2.74,0);
00562 newreact("H2*,CH=>CH2,H",hmrate,5.46e-10,0, 0. );
00563 newreact("H2*,O=>OH,H",hmrate,3.14e-13,2.7, 0. );
00564 newreact("H2*,OH=>H2O,H",hmrate,2.05e-12,1.52, 0. );
00565 newreact("H2*,O2=>OH,OH",hmrate,3.16e-10,0, 0. );
00566 newreact("H2*,C=>CH,H",hmrate,6.64e-10,0, 0. );
00567 newreact("H2*,C+=>CH+,H",hmrate,1.0e-10,0, 0. );
00568 newreact("H2*,O+=>OH+,H",hmrate,1.7e-9,0.,0.);
00569 }
00570 newreact("H2,N=>NH,H",hmrate,1.69e-9,0,18095);
00571 newreact("H2,NH=>NH2,H",hmrate,5.96e-11,0,7782);
00572 newreact("H2,NH2=>NH3,H",hmrate,2.05e-15,3.89,1400);
00573 newreact("H2,CN=>HCN,H",hmrate,0.000000000000404,2.87,820);
00574 newreact("H+,HNO=>NO+,H2",hmrate,4.e-9,0,0);
00575 newreact("H+,HS=>S+,H2",hmrate,1.6e-9,0,0);
00576 newreact("H,HS+=>S+,H2",hmrate,1.1e-10,0,0);
00577 newreact("H2+,N=>NH+,H",hmrate,1.9e-9,0,0);
00578 newreact("H2,N+=>NH+,H",hmrate,1.0e-9,0,85);
00579 newreact("H2,NH+=>N,H3+",hmrate,2.25e-10,0,0);
00580 newreact("H2+,NH=>NH2+,H",hmrate,7.6e-10,0,0);
00581 newreact("H2,NH+=>NH2+,H",hmrate,1.28e-9,0,0);
00582 newreact("H2,NH2+=>NH3+,H",hmrate,2.7e-10,0,0);
00583 newreact("H2,NH3+=>NH4+,H",hmrate,0.0000000000002,0,0);
00584 newreact("H2+,CN=>HCN+,H",hmrate,1.2e-9,0,0);
00585 newreact("H2,CN+=>HCN+,H",hmrate,1.0e-9,0,0);
00586 newreact("H2+,NO=>HNO+,H",hmrate,1.1e-9,0,0);
00587 newreact("H2,S+=>HS+,H",hmrate,1.1e-10,0,9860);
00588 newreact("H2,CS+=>HCS+,H",hmrate,4.5e-10,0,0);
00589 newreact("H2,NO2+=>NO+,H2O",hmrate,1.5e-10,0,0);
00590 newreact("H3+,NH=>NH2+,H2",hmrate,1.3e-9,0,0);
00591 newreact("H3+,NH2=>NH3+,H2",hmrate,1.8e-9,0,0);
00592 newreact("H3+,NH3=>NH4+,H2",hmrate,2.7e-9,0,0);
00593 newreact("H3+,CN=>HCN+,H2",hmrate,2.0e-9,0,0);
00594 newreact("H3+,NO=>HNO+,H2",hmrate,1.1e-9,0,0);
00595 newreact("H3+,S=>HS+,H2",hmrate,2.6e-9,0,0);
00596 newreact("H3+,CS=>HCS+,H2",hmrate,2.9e-9,0,0);
00597 newreact("H3+,NO2=>NO+,OH,H2",hmrate,7.0e-10,0,0);
00598 newreact("He+,NH=>N+,He,H",hmrate,1.1e-9,0,0);
00599 newreact("He+,NH2=>N+,He,H2",hmrate,8.e-10,0,0);
00600 newreact("He+,NH2=>NH+,He,H",hmrate,8.e-10,0,0);
00601 newreact("He+,NH3=>NH+,He,H2",hmrate,1.76e-10,0,0);
00602 newreact("He+,NH3=>NH2+,He,H",hmrate,1.76e-9,0,0);
00603 newreact("He+,CN=>N,C+,He",hmrate,8.8e-10,0,0);
00604 newreact("He+,CN=>N+,C,He",hmrate,8.8e-10,0,0);
00605 newreact("He+,HCN=>N,CH+,He",hmrate,6.51e-10,0,0);
00606 newreact("He+,HCN=>N+,CH,He",hmrate,2.17e-10,0,0);
00607 newreact("He+,HCN=>N,C+,He,H",hmrate,7.75e-10,0,0);
00608 newreact("He+,HCN=>CN+,He,H",hmrate,1.46e-9,0,0);
00609 newreact("He+,N2=>N+,N,He",hmrate,9.6e-10,0,0);
00610 newreact("He+,NO=>O+,N,He",hmrate,2.0e-10,0,0);
00611 newreact("He+,NO=>O,N+,He",hmrate,1.4e-9,0,0);
00612 newreact("He+,HNO=>NO+,He,H",hmrate,1.0e-9,0,0);
00613 newreact("He+,HNO=>NO,He,H+",hmrate,1.0e-9,0,0);
00614 newreact("He+,HS=>S+,He,H",hmrate,1.7e-9,0,0);
00615 newreact("He+,OCN=>CN,O+,He",hmrate,3.0e-9,0,0);
00616 newreact("He+,OCN=>CN+,O,He",hmrate,3.0e-9,0,0);
00617 newreact("He+,SiN=>Si+,N,He",hmrate,2.0e-9,0,0);
00618 newreact("He+,N2O=>N2,O+,He",hmrate,2.76e-10,0,0);
00619 newreact("He+,N2O=>N2+,O,He",hmrate,1.24e-9,0,0);
00620 newreact("He+,N2O=>NO,N+,He",hmrate,3.e-10,0,0);
00621 newreact("He+,N2O=>NO+,N,He",hmrate,4.83e-10,0,0);
00622 newreact("He+,CS=>S+,C,He",hmrate,1.3e-9,0,0);
00623 newreact("He+,CS=>S,C+,He",hmrate,1.3e-9,0,0);
00624 newreact("He+,NS=>S,N+,He",hmrate,1.2e-9,0,0);
00625 newreact("He+,NS=>S+,N,He",hmrate,1.2e-9,0,0);
00626 newreact("He+,SO=>S,O+,He",hmrate,8.3e-10,0,0);
00627 newreact("He+,SO=>S+,O,He",hmrate,8.3e-10,0,0);
00628 newreact("He+,OCS=>S,CO+,He",hmrate,7.6e-10,0,0);
00629 newreact("He+,OCS=>CS+,O,He",hmrate,7.6e-10,0,0);
00630 newreact("He+,OCS=>CS,O+,He",hmrate,7.6e-10,0,0);
00631 newreact("He+,S2=>S+,S,He",hmrate,2.0e-9,0,0);
00632 newreact("H+,NH=>NH+,H",hmrate,2.1e-9,0,0);
00633 newreact("H+,NH2=>NH2+,H",hmrate,2.9e-9,0,0);
00634 newreact("H+,NH3=>NH3+,H",hmrate,1.1e-9,0,0);
00635 newreact("H,CN+=>CN,H+",hmrate,1.9e-10,0,0);
00636 newreact("H+,HCN=>HCN+,H",hmrate,0.0000000105,-0.13,0);
00637 newreact("H,HCN+=>HCN,H+",hmrate,3.7e-11,0,0);
00638 newreact("H,N2+=>N2,H+",hmrate,1.2e-10,0,0);
00639 newreact("H+,NO=>NO+,H",hmrate,2.9e-9,0,0);
00640 newreact("H+,HS=>HS+,H",hmrate,1.6e-9,0,0);
00641 newreact("H+,SiN=>SiN+,H",hmrate,3.0e-9,0,0);
00642 newreact("H+,CS=>CS+,H",hmrate,4.9e-9,0,0);
00643 newreact("H+,NS=>NS+,H",hmrate,4.7e-9,0,0);
00644 newreact("H+,SO=>SO+,H",hmrate,3.2e-9,0,0);
00645 newreact("H+,OCS=>OCS+,H",hmrate,2.1e-9,0,0);
00646 newreact("H+,S2=>S2+,H",hmrate,3.0e-9,0,0);
00647 newreact("H2+,NH=>NH+,H2",hmrate,7.6e-10,0,0);
00648 newreact("H2+,NH2=>NH2+,H2",hmrate,2.1e-9,0,0);
00649 newreact("H2+,NH3=>NH3+,H2",hmrate,5.7e-9,0,0);
00650 newreact("H2+,CN=>CN+,H2",hmrate,1.2e-9,0,0);
00651 newreact("H2+,HCN=>HCN+,H2",hmrate,2.7e-9,0,0);
00652 newreact("H2+,NO=>NO+,H2",hmrate,1.1e-9,0,0);
00653 newreact("He+,NH3=>NH3+,He",hmrate,2.64e-10,0,0);
00654 newreact("He+,N2=>N2+,He",hmrate,6.4e-10,0,0);
00655 newreact("H-,N=>NH,e-",hmrate,1.0e-9,0,0);
00656 newreact("H-,NH=>NH2,e-",hmrate,1.0e-10,0,0);
00657 newreact("H-,NH2=>NH3,e-",hmrate,1.0e-9,0,0);
00658 newreact("H-,CN=>HCN,e-",hmrate,1.0e-10,0,0);
00659 newreact("H-,NH4+=>NH3,H2",hmrate,0.00000023,-0.5,0);
00660 newreact("H-,N+=>N,H",hmrate,0.00000023,-0.5,0);
00661 newreact("H2,Cl+=>HCl+,H",hmrate,0.000000001,0,0);
00662 newreact("H2,HCl+=>H2Cl+,H",hmrate,0.0000000013,0,0);
00663 newreact("H3+,Cl=>HCl+,H2",hmrate,0.000000001,0,0);
00664 newreact("H3+,HCl=>H2Cl+,H2",hmrate,0.0000000038,0,0);
00665 newreact("He+,HCl=>Cl+,He,H",hmrate,0.0000000033,0,0);
00666 newreact("He+,CCl=>Cl,C+,He",hmrate,0.0000000033,0,0);
00667 newreact("He+,ClO=>Cl+,O,He",hmrate,0.000000001,0,0);
00668 newreact("H+,HCl=>HCl+,H",hmrate,0.0000000033,1,0);
00669 newreact("H3+,HNC=>HCNH+,H2",hmrate,0.0000000081,0,0);
00670 newreact("He+,HNC=>NH+,C,He",hmrate,0.0000000005,0,0);
00671 newreact("He+,HNC=>N,C+,He,H",hmrate,0.0000000005,0,0);
00672 newreact("He+,HNC=>CN+,He,H",hmrate,0.0000000005,0,0);
00673 newreact("H+,HNC=>HCN,H+",hmrate,0.000000001,0,0);
00674 newreact("H,HNC=>HCN,H",h_hnc_hcn_h,0.000000000000136,4.48,0);
00675 newreact("H2,HCN+=>HCNH+,H",hmrate,0.0000000009,0,0);
00676 newreact("H3+,HCN=>HCNH+,H2",hmrate,0.0000000081,0,0);
00677 newreact("H,C2=>CH,C",hmrate,4.67e-10,0.5,30450);
00678 newreact("H+,C2=>C2+,H",hmrate,3.1e-9,0,0);
00679 newreact("H2+,C2=>C2+,H2",hmrate,1.1e-9,0,0);
00680 newreact("He+,C2=>C2+,He",hmrate,5.0e-10,0,0);
00681 newreact("He+,C2H=>C2+,He,H",hmrate,0.000000001,0,0);
00682 newreact("He+,C2H=>CH+,C,He",hmrate,0.0000000015,0,0);
00683 newreact("He+,C2H=>CH,C+,He",hmrate,0.0000000015,0,0);
00684 newreact("H-,C2=>C2H,e-",hmrate,0.00000000235,0,0);
00685 newreact("H+,C2H=>C2+,H2",hmrate,0.0000000014,0,0);
00686 newreact("H+,C2H=>C2H+,H",hmrate,0.0000000014,0,0);
00687 newreact("H2+,C2=>C2H+,H",hmrate,0.0000000015,0,0);
00688 newreact("H2+,C2H=>C2H+,H2",hmrate,0.0000000014,0,0);
00689 newreact("H3+,C2=>C2H+,H2",hmrate,0.000000002,0,0);
00690 newreact("H2,C2+=>C2H+,H",hmrate,0.000000000254,0,0);
00691 newreact("H+,C3=>C3+,H",hmrate,0.00000000485,0,0);
00692 newreact("He+,C3=>C2,C+,He",hmrate,0.00000000094,0,0);
00693 newreact("He+,C2H2=>C2H+,He,H",hmrate,0.000000001,0,0);
00694 newreact("He+,C3H=>C3+,He,H",hmrate,0.000000002,0,0);
00695 newreact("He+,C2H2=>C2+,He,H2",hmrate,0.000000002,0,0);
00696 newreact("He+,C2H2=>CH+,CH,He",hmrate,0.0000000075,0,0);
00697 newreact("H-,C2H=>C2H2,e-",hmrate,0.000000000294,0,0);
00698 newreact("H+,C2H2=>C2H2+,H",hmrate,0.00000000086,0,0);
00699 newreact("H+,C2H2=>C2H+,H2",hmrate,0.00000000077,0,0);
00700 newreact("H+,C3H=>C3H+,H",hmrate,0.00000000057,0,0);
00701 newreact("H+,C3H=>C3+,H2",hmrate,0.0000000024,0,0);
00702 newreact("H2+,C2H=>C2H2+,H",hmrate,0.000000003,0,0);
00703 newreact("H2+,C2H2=>C2H2+,H2",hmrate,0.0000000014,0,0);
00704 newreact("H3+,C2H=>C2H2+,H2",hmrate,0.000000002,0,0);
00705 newreact("H3+,C3=>C3H+,H2",hmrate,0.0000000015,0,0);
00706 newreact("H2,C2H+=>C2H2+,H",hmrate,0.000000001,0,0);
00707 newreact("H2,C3+=>C3H+,H",hmrate,0.0000000022,0,0);
00708 newreact("He+,C2H2=>C2H2+,He",hmrate,0.000000001,0,0);
00709 newreact("H,C2H3+=>C2H2+,H2",hmrate,0.0000000000000003,-1,0);
00710 newreact("H2+,C2H2=>C2H3+,H",hmrate,0.0000000014,0,0);
00711 newreact("H3+,C2H2=>C2H3+,H2",hmrate,0.000000001,0,0);
00712 newreact("N2,H3+=>N2H+,H2",hmrate,1.8e-9,0.,0.);
00713 newreact("NH2+,NH2=>NH3+,NH",hmrate,1.0e-9,0,0);
00714 newreact("NH2,OH+=>NH3+,O",hmrate,5.0e-10,0,0);
00715 newreact("NH2+,OH=>H2O+,NH",hmrate,7.1e-10,0,0);
00716 newreact("NH2+,NH3=>NH4+,NH",hmrate,1.61e-9,0,0);
00717 newreact("NH2,NH3+=>NH4+,NH",hmrate,1.0e-11,0,0);
00718 newreact("NH2,CH5+=>NH3+,CH4",hmrate,9.9e-10,0,0);
00719 newreact("NH2+,H2O=>NH3+,OH",hmrate,1.0e-10,0,0);
00720 newreact("NH2+,H2O=>H3O+,NH",hmrate,2.76e-9,0,0);
00721 newreact("NH2,H2O+=>NH3+,OH",hmrate,4.9e-10,0,0);
00722 newreact("NH2+,H2O=>NH4+,O",hmrate,1.45e-10,0,0);
00723 newreact("NH2,H3O+=>H2O,NH3+",hmrate,9.7e-10,0,0);
00724 newreact("NH2,HCN+=>CN,NH3+",hmrate,9.0e-10,0,0);
00725 newreact("NH2,CO+=>HCO+,NH",hmrate,4.5e-10,0,0);
00726 newreact("NH2,HNO+=>NO,NH3+",hmrate,8.8e-10,0,0);
00727 newreact("NH2+,O2=>HNO+,OH",hmrate,2.1e-11,0,0);
00728 newreact("NH2+,S=>HS+,NH",hmrate,4.4e-10,0,0);
00729 newreact("CH4+,NH3=>NH4+,CH3",hmrate,1.15e-9,0,0);
00730 newreact("CH4,NH3+=>NH4+,CH3",hmrate,4.8e-10,0,0);
00731 newreact("CH4,N2+=>N2,CH2+,H2",hmrate,7.e-11,0,0);
00732 newreact("CH4,N2+=>N2,CH3+,H",hmrate,9.3e-10,0,0);
00733 newreact("CH4,HNO+=>NO,CH5+",hmrate,1.0e-10,0,0);
00734 newreact("CH4,S+=>HCS+,H2,H",hmrate,2.0e-11,0,0);
00735 newreact("CH4,CS+=>HCS+,CH3",hmrate,5.0e-10,0,0);
00736 newreact("OH+,NH3=>NH4+,O",hmrate,1.2e-9,0,0);
00737 newreact("OH,NH3+=>NH4+,O",hmrate,7.0e-10,0,0);
00738 newreact("OH+,CN=>HCN+,O",hmrate,1.0e-9,0,0);
00739 newreact("OH,HCN+=>CN,H2O+",hmrate,6.3e-10,0,0);
00740 newreact("OH+,NO=>HNO+,O",hmrate,6.11e-10,0,0);
00741 newreact("OH,HNO+=>NO,H2O+",hmrate,6.2e-10,0,0);
00742 newreact("OH+,S=>HS+,O",hmrate,4.3e-10,0,0);
00743 newreact("OH+,S=>SO+,H",hmrate,4.3e-10,0,0);
00744 newreact("OH,S+=>SO+,H",hmrate,6.1e-10,0,0);
00745 newreact("NH3+,NH3=>NH4+,NH2",hmrate,2.2e-9,0,0);
00746 newreact("NH3,CH5+=>NH4+,CH4",hmrate,2.5e-9,0,0);
00747 newreact("NH3+,H2O=>NH4+,OH",hmrate,1.1e-10,0,0);
00748 newreact("NH3,H2O+=>NH4+,OH",hmrate,9.45e-10,0,0);
00749 newreact("NH3,H3O+=>NH4+,H2O",hmrate,2.2e-9,0,0);
00750 newreact("NH3,CO+=>HCO+,NH2",hmrate,4.12e-11,0,0);
00751 newreact("NH3,HNO+=>NO,NH4+",hmrate,1.1e-9,0,0);
00752 newreact("NH3,HS+=>S,NH4+",hmrate,9.75e-10,0,0);
00753 newreact("NH3,HCS+=>CS,NH4+",hmrate,2.0e-9,0,0);
00754 newreact("CH5+,S=>HS+,CH4",hmrate,1.3e-9,0,0);
00755 newreact("H2O,CN+=>HCN+,OH",hmrate,1.6e-9,0,0);
00756 newreact("H2O,CN+=>HCO+,NH",hmrate,1.6e-10,0,0);
00757 newreact("H2O,HCN+=>CN,H3O+",hmrate,1.8e-9,0,0);
00758 newreact("H2O,HNO+=>NO,H3O+",hmrate,2.3e-9,0,0);
00759 newreact("H2O+,S=>HS+,OH",hmrate,4.3e-10,0,0);
00760 newreact("H2O,HS+=>S,H3O+",hmrate,7.8e-10,0,0);
00761 newreact("H3O+,CS=>HCS+,H2O",hmrate,1.0e-9,0,0);
00762 newreact("CN+,NO=>OCN+,N",hmrate,1.9e-10,0,0);
00763 newreact("CN,HNO+=>NO,HCN+",hmrate,8.7e-10,0,0);
00764 newreact("CN+,O2=>OCN+,O",hmrate,8.6e-11,0,0);
00765 newreact("HCN+,S=>HS+,CN",hmrate,5.7e-10,0,0);
00766 newreact("HNO+,S=>HS+,NO",hmrate,1.1e-9,0,0);
00767 newreact("O2,S+=>SO+,O",hmrate,1.5e-11,0,0);
00768 newreact("O2+,S=>SO+,O",hmrate,5.4e-10,0,0);
00769 newreact("O2,CS+=>OCS+,O",hmrate,1.3e-10,0,0);
00770 newreact("S,SiO+=>SO,Si+",hmrate,1.0e-9,0,0);
00771 newreact("C+,NH3=>NH3+,C",hmrate,5.06e-10,0,0);
00772 newreact("C,CN+=>CN,C+",hmrate,1.1e-10,0,0);
00773 newreact("C,N2+=>N2,C+",hmrate,1.1e-10,0,0);
00774 newreact("C+,NO=>NO+,C",hmrate,5.2e-10,0,0);
00775 newreact("C+,SiN=>SiN+,C",hmrate,1.0e-9,0,0);
00776 newreact("C,CS+=>CS,C+",hmrate,1.6e-9,0,0);
00777 newreact("C+,NS=>NS+,C",hmrate,7.6e-10,0,0);
00778 newreact("C+,SO=>SO+,C",hmrate,2.6e-10,0,0);
00779 newreact("C+,OCS=>OCS+,C",hmrate,4.0e-10,0,0);
00780 newreact("CH,NH2+=>NH2,CH+",hmrate,3.5e-10,0,0);
00781 newreact("CH+,NH3=>NH3+,CH",hmrate,4.59e-10,0,0);
00782 newreact("CH,CN+=>CN,CH+",hmrate,6.4e-10,0,0);
00783 newreact("CH,N2+=>N2,CH+",hmrate,6.3e-10,0,0);
00784 newreact("CH+,NO=>NO+,CH",hmrate,7.6e-10,0,0);
00785 newreact("N+,NH=>NH+,N",hmrate,3.7e-10,0,0);
00786 newreact("N+,NH2=>NH2+,N",hmrate,1.0e-9,0,0);
00787 newreact("N+,NH3=>NH3+,N",hmrate,1.97e-9,0,0);
00788 newreact("N+,CN=>CN+,N",hmrate,1.1e-9,0,0);
00789 newreact("N+,HCN=>HCN+,N",hmrate,1.2e-9,0,0);
00790 newreact("N,N2+=>N2,N+",hmrate,1.0e-11,0,0);
00791 newreact("N+,NO=>NO+,N",hmrate,4.51e-10,0,0);
00792 newreact("N+,OCS=>OCS+,N",hmrate,1.02e-9,0,0);
00793 newreact("CH2,NH2+=>NH2,CH2+",hmrate,4.9e-10,0,0);
00794 newreact("CH2,CN+=>CN,CH2+",hmrate,8.8e-10,0,0);
00795 newreact("CH2,N2+=>N2,CH2+",hmrate,8.7e-10,0,0);
00796 newreact("CH2+,NO=>NO+,CH2",hmrate,4.2e-10,0,0);
00797 newreact("NH,O+=>O,NH+",hmrate,3.6e-10,0,0);
00798 newreact("NH,OH+=>OH,NH+",hmrate,3.6e-10,0,0);
00799 newreact("NH+,NH3=>NH3+,NH",hmrate,1.8e-9,0,0);
00800 newreact("NH+,H2O=>H2O+,NH",hmrate,1.05e-9,0,0);
00801 newreact("NH,CN+=>CN,NH+",hmrate,6.5e-10,0,0);
00802 newreact("NH,N2+=>N2,NH+",hmrate,6.5e-10,0,0);
00803 newreact("NH+,NO=>NO+,NH",hmrate,7.12e-10,0,0);
00804 newreact("NH+,O2=>O2+,NH",hmrate,4.51e-10,0,0);
00805 newreact("NH+,S=>S+,NH",hmrate,6.9e-10,0,0);
00806 newreact("CH3+,NO=>NO+,CH3",hmrate,1.0e-9,0,0);
00807 newreact("O+,NH2=>NH2+,O",hmrate,1.0e-9,0,0);
00808 newreact("O+,NH3=>NH3+,O",hmrate,1.2e-9,0,0);
00809 newreact("O,CN+=>CN,O+",hmrate,6.5e-11,0,0);
00810 newreact("O,HCN+=>HCN,O+",hmrate,6.5e-11,0,0);
00811 newreact("O,N2+=>N2,O+",hmrate,1.0e-11,0,0);
00812 newreact("O+,NO=>NO+,O",hmrate,1.7e-12,0,0);
00813 newreact("O+,OCS=>OCS+,O",hmrate,6.5e-10,0,0);
00814 newreact("NH2,OH+=>OH,NH2+",hmrate,5.0e-10,0,0);
00815 newreact("NH2+,NH3=>NH3+,NH2",hmrate,6.9e-10,0,0);
00816 newreact("NH2,H2O+=>H2O,NH2+",hmrate,4.9e-10,0,0);
00817 newreact("NH2,CN+=>CN,NH2+",hmrate,9.1e-10,0,0);
00818 newreact("NH2,N2+=>N2,NH2+",hmrate,8.9e-10,0,0);
00819 newreact("NH2+,NO=>NO+,NH2",hmrate,7.0e-10,0,0);
00820 newreact("NH2,O2+=>O2,NH2+",hmrate,8.7e-10,0,0);
00821 newreact("NH2+,S=>S+,NH2",hmrate,4.4e-10,0,0);
00822 newreact("CH4+,NH3=>NH3+,CH4",hmrate,1.65e-9,0,0);
00823 newreact("CH4+,OCS=>OCS+,CH4",hmrate,4.2e-10,0,0);
00824 newreact("OH+,NH3=>NH3+,OH",hmrate,1.2e-9,0,0);
00825 newreact("OH,CN+=>CN,OH+",hmrate,6.4e-10,0,0);
00826 newreact("OH,N2+=>N2,OH+",hmrate,6.3e-10,0,0);
00827 newreact("OH+,NO=>NO+,OH",hmrate,3.59e-10,0,0);
00828 newreact("NH3,H2O+=>H2O,NH3+",hmrate,2.21e-9,0,0);
00829 newreact("NH3,HCN+=>HCN,NH3+",hmrate,1.68e-9,0,0);
00830 newreact("NH3,N2+=>N2,NH3+",hmrate,1.9e-9,0,0);
00831 newreact("NH3+,Si=>Si+,NH3",hmrate,1.9e-9,0,0);
00832 newreact("NH3+,NO=>NO+,NH3",hmrate,7.2e-10,0,0);
00833 newreact("NH3,O2+=>O2,NH3+",hmrate,2.0e-9,0,0);
00834 newreact("NH3,S+=>S,NH3+",hmrate,1.44e-9,0,0);
00835 newreact("NH3,HS+=>HS,NH3+",hmrate,5.25e-10,0,0);
00836 newreact("NH3,SO+=>SO,NH3+",hmrate,1.3e-9,0,0);
00837 newreact("H2O,HCN+=>HCN,H2O+",hmrate,1.8e-9,0,0);
00838 newreact("H2O,N2+=>N2,H2O+",hmrate,2.3e-9,0,0);
00839 newreact("H2O+,NO=>NO+,H2O",hmrate,2.7e-10,0,0);
00840 newreact("CN+,HCN=>HCN+,CN",hmrate,1.79e-9,0,0);
00841 newreact("CN,N2+=>N2,CN+",hmrate,1.0e-10,0,0);
00842 newreact("CN+,NO=>NO+,CN",hmrate,5.7e-10,0,0);
00843 newreact("CN+,O2=>O2+,CN",hmrate,2.58e-10,0,0);
00844 newreact("CN+,S=>S+,CN",hmrate,1.1e-9,0,0);
00845 newreact("HCN,N2+=>N2,HCN+",hmrate,3.9e-10,0,0);
00846 newreact("HCN+,NO=>NO+,HCN",hmrate,8.1e-10,0,0);
00847 newreact("HCN+,O2=>O2+,HCN",hmrate,3.2e-10,0,0);
00848 newreact("HCN+,S=>S+,HCN",hmrate,5.7e-10,0,0);
00849 newreact("N2+,NO=>NO+,N2",hmrate,4.4e-10,0,0);
00850 newreact("N2+,O2=>O2+,N2",hmrate,5.e-11,0,0);
00851 newreact("N2+,S=>S+,N2",hmrate,1.1e-9,0,0);
00852 newreact("Si,NO+=>NO,Si+",hmrate,1.6e-9,0,0);
00853 newreact("Si,HS+=>HS,Si+",hmrate,1.4e-9,0,0);
00854 newreact("Si,CS+=>CS,Si+",hmrate,1.5e-10,0,0);
00855 newreact("NO,HNO+=>HNO,NO+",hmrate,7.0e-10,0,0);
00856 newreact("NO,O2+=>O2,NO+",hmrate,4.5e-10,0,0);
00857 newreact("NO,S+=>S,NO+",hmrate,3.7e-10,0,0);
00858 newreact("NO,HS+=>HS,NO+",hmrate,4.5e-10,0,0);
00859 newreact("NO,SiO+=>SiO,NO+",hmrate,7.2e-10,0,0);
00860 newreact("NO,S2+=>S2,NO+",hmrate,5.1e-10,0,0);
00861 newreact("O2+,NO2=>NO2+,O2",hmrate,6.6e-10,0,0);
00862 newreact("S,HS+=>HS,S+",hmrate,9.7e-10,0,0);
00863 newreact("C,N=>CN,PHOTON",hmrate,1.e-17,0,0);
00864 newreact("C,S=>CS,PHOTON",hmrate,4.36E-19,0.22,0);
00865 newreact("C+,S=>CS+,PHOTON",hmrate,3.07E-19,0.15,0);
00866 newreact("N+,N=>N2+,PHOTON",hmrate,3.71E-18,0.24,26.1);
00867 newreact("CH,N+=>N,CH+",hmrate,3.6e-10,0,0);
00868 newreact("CH+,S=>S+,CH",hmrate,4.7e-10,0,0);
00869 newreact("N+,CH2=>CH2+,N",hmrate,1.0e-9,0,0);
00870 newreact("N+,CH4=>CH4+,N",hmrate,2.8e-11,0,0);
00871 newreact("N+,OH=>OH+,N",hmrate,3.7e-10,0,0);
00872 newreact("N+,H2O=>H2O+,N",hmrate,2.8e-9,0,0);
00873 newreact("N+,O2=>O2+,N",hmrate,3.11e-10,0,0);
00874 newreact("OH+,S=>S+,OH",hmrate,4.3e-10,0,0);
00875 newreact("H2O+,S=>S+,H2O",hmrate,4.3e-10,0,0);
00876 newreact("Si,S+=>S,Si+",hmrate,1.6e-9,0,0);
00877 newreact("O2+,S=>S+,O2",hmrate,5.4e-10,0,0);
00878 newreact("O,CCl=>ClO,C",hmrate,0.000000000138,0,16050);
00879 newreact("O,ClO=>Cl,O2",hmrate,0.000000000038,0,0);
00880 newreact("C+,HCl=>CCl+,H",hmrate,0.0000000011,0,0);
00881 newreact("CH3+,HCl=>H2CCl+,H2",hmrate,0.0000000013,0,0);
00882 newreact("H2O,H2Cl+=>HCl,H3O+",hmrate,0.000000002,0,0);
00883 newreact("C+,CCl=>CCl+,C",hmrate,0.000000001,0,0);
00884 newreact("C+,ClO=>ClO+,C",hmrate,0.000000001,0,0);
00885 newreact("O2,Cl+=>Cl,O2+",hmrate,0.00000000046,0,0);
00886 newreact("C,NH2=>HNC,H",hmrate,0.0000000000326,-0.1,-9);
00887 newreact("N,CH2=>HNC,H",hmrate,0.0000000000789,0.17,0);
00888 newreact("CH+,HNC=>HCNH+,C",hmrate,0.0000000018,0,0);
00889 newreact("CH,HCNH+=>HNC,CH2+",hmrate,0.000000000315,0,0);
00890 newreact("CH2,HCNH+=>HNC,CH3+",hmrate,0.000000000435,0,0);
00891 newreact("NH+,HNC=>HCNH+,N",hmrate,0.0000000018,0,0);
00892 newreact("NH2+,HNC=>HCNH+,NH",hmrate,0.0000000012,0,0);
00893 newreact("NH2,HCNH+=>HNC,NH3+",hmrate,0.000000000445,0,0);
00894 newreact("OH+,HNC=>HCNH+,O",hmrate,0.0000000012,0,0);
00895 newreact("NH3,HCNH+=>HNC,NH4+",hmrate,0.0000000011,0,0);
00896 newreact("CH5+,HNC=>HCNH+,CH4",hmrate,0.0000000012,0,0);
00897 newreact("H2O+,HNC=>HCNH+,OH",hmrate,0.0000000011,0,0);
00898 newreact("H3O+,HNC=>HCNH+,H2O",hmrate,0.000000004,0,0);
00899 newreact("HCN+,HNC=>HCNH+,CN",hmrate,0.000000001,0,0);
00900 newreact("HNC,HNO+=>NO,HCNH+",hmrate,0.00000000099,0,0);
00901 newreact("HNC,HS+=>S,HCNH+",hmrate,0.00000000086,0,0);
00902 newreact("CH+,HCN=>HCNH+,C",hmrate,0.0000000018,0,0);
00903 newreact("CH,HCNH+=>HCN,CH2+",hmrate,0.000000000315,0,0);
00904 newreact("N+,CH4=>HCNH+,H,H",hmrate,0.00000000038,0,0);
00905 newreact("CH2,HCNH+=>HCN,CH3+",hmrate,0.000000000435,0,0);
00906 newreact("NH,CH3+=>HCNH+,H2",hmrate,0.00000000074,0,0);
00907 newreact("NH+,HCN=>HCNH+,N",hmrate,0.0000000018,0,0);
00908 newreact("NH2+,HCN=>HCNH+,NH",hmrate,0.0000000012,0,0);
00909 newreact("NH2,HCNH+=>HCN,NH3+",hmrate,0.000000000445,0,0);
00910 newreact("CH4,HCN+=>HCNH+,CH3",hmrate,0.00000000104,0,0);
00911 newreact("OH+,HCN=>HCNH+,O",hmrate,0.0000000012,0,0);
00912 newreact("NH3,HCN+=>HCNH+,NH2",hmrate,0.00000000084,0,0);
00913 newreact("NH3,HCNH+=>HCN,NH4+",hmrate,0.0000000011,0,0);
00914 newreact("CH5+,HCN=>HCNH+,CH4",hmrate,0.0000000012,0,0);
00915 newreact("H2O+,HCN=>HCNH+,OH",hmrate,0.0000000011,0,0);
00916 newreact("H3O+,HCN=>HCNH+,H2O",hmrate,0.000000004,0,0);
00917 newreact("HCN+,HCN=>HCNH+,CN",hmrate,0.0000000016,0,0);
00918 newreact("HCN,HNO+=>NO,HCNH+",hmrate,0.00000000099,0,0);
00919 newreact("HCN,HS+=>S,HCNH+",hmrate,0.00000000086,0,0);
00920 newreact("C,CH2=>C2H,H",hmrate,0.00000000005,0.5,0);
00921 newreact("O+,C2H=>CO+,CH",hmrate,0.00000000046,0,0);
00922 newreact("C2H,CO+=>HCO+,C2",hmrate,0.00000000039,0,0);
00923 newreact("C,CH2+=>C2H+,H",hmrate,0.0000000012,0,0);
00924 newreact("C,CH3+=>C2H+,H2",hmrate,0.0000000012,0,0);
00925 newreact("C2,HCN+=>CN,C2H+",hmrate,0.00000000084,0,0);
00926 newreact("C2,HNO+=>NO,C2H+",hmrate,0.00000000082,0,0);
00927 newreact("C2H,CN+=>CN,C2H+",hmrate,0.0000000008,0,0);
00928 newreact("C2H,N2+=>N2,C2H+",hmrate,0.00000000079,0,0);
00929 newreact("C2H+,HCN=>HCNH+,C2",hmrate,0.0000000014,0,0);
00930 newreact("C2H+,HNC=>HCNH+,C2",hmrate,0.0000000014,0,0);
00931 newreact("C2H+,NO=>NO+,C2H",hmrate,0.00000000012,0,0);
00932 newreact("C2H+,S=>S+,C2H",hmrate,0.0000000012,0,0);
00933 newreact("CH,C2H+=>C2,CH2+",hmrate,0.00000000032,0,0);
00934 newreact("CH2,C2H+=>C2,CH3+",hmrate,0.00000000044,0,0);
00935 newreact("CH4,C2+=>C2H+,CH3",hmrate,0.000000000238,0,0);
00936 newreact("CH5+,C2=>C2H+,CH4",hmrate,0.00000000095,0,0);
00937 newreact("CH+,CH2=>C2H+,H2",hmrate,0.000000001,0,0);
00938 newreact("C+,CH2=>C2H+,H",hmrate,0.000000000434,-0.5,0);
00939 newreact("C+,CH3=>C2H+,H2",hmrate,0.000000001,0,0);
00940 newreact("H2O,C2+=>C2H+,OH",hmrate,0.00000000044,0,0);
00941 newreact("H2O+,C2=>C2H+,OH",hmrate,0.00000000047,0,0);
00942 newreact("H2O+,C2H=>C2H+,H2O",hmrate,0.00000000044,0,0);
00943 newreact("H3O+,C2=>C2H+,H2O",hmrate,0.00000000092,0,0);
00944 newreact("N,C2H+=>CN,CH+",hmrate,0.00000000009,0,0);
00945 newreact("NH,C2+=>C2H+,N",hmrate,0.00000000033,0,0);
00946 newreact("NH2,C2H+=>C2,NH3+",hmrate,0.00000000046,0,0);
00947 newreact("NH2+,C2=>C2H+,NH",hmrate,0.00000000097,0,0);
00948 newreact("NH3,C2H+=>C2,NH4+",hmrate,0.00000000055,0,0);
00949 newreact("NH+,C2=>C2H+,N",hmrate,0.00000000049,0,0);
00950 newreact("N+,C2H=>C2H+,N",hmrate,0.00000000095,0,0);
00951 newreact("O,C2H+=>HCO+,C",hmrate,0.00000000033,0,0);
00952 newreact("OH+,C2=>C2H+,O",hmrate,0.00000000048,0,0);
00953 newreact("OH+,C2H=>C2H+,OH",hmrate,0.00000000045,0,0);
00954 newreact("O+,C2H=>C2H+,O",hmrate,0.00000000046,0,0);
00955 newreact("C+,C2H=>C3+,H",hmrate,0.000000001,0,0);
00956 newreact("CH+,C2H=>C3+,H2",hmrate,0.00000000098,0,0);
00957 newreact("C2+,C2=>C3+,C",hmrate,0.00000000087,0,0);
00958 newreact("CH+,C2=>C3+,H",hmrate,0.000000001,0,0);
00959 newreact("CH,C2+=>C3+,H",hmrate,0.00000000032,0,0);
00960 newreact("C,C2H+=>C3+,H",hmrate,0.0000000011,0,0);
00961 newreact("C,C2H2=>C3H,H",hmrate,0.0000000002,0,0);
00962 newreact("C,C2H2+=>C3H+,H",hmrate,0.0000000011,0,0);
00963 newreact("C2H,HCN+=>C2H2+,CN",hmrate,0.00000000079,0,0);
00964 newreact("C2H2+,HCN=>HCNH+,C2H",hmrate,0.00000000023,0,0);
00965 newreact("C2H2+,NO=>NO+,C2H2",hmrate,0.00000000012,0,0);
00966 newreact("C2H+,HCN=>C2H2+,CN",hmrate,0.0000000014,0,0);
00967 newreact("CH,C2H+=>C3H+,H",hmrate,0.00000000032,0,0);
00968 newreact("CH,CH3+=>C2H2+,H2",hmrate,0.00000000071,0,0);
00969 newreact("CH2,C2+=>C3H+,H",hmrate,0.00000000045,0,0);
00970 newreact("CH2,CH2=>C2H2,H,H",hmrate,0.00000000018,0,400);
00971 newreact("CH2,CH2=>C2H2,H2",hmrate,0.00000000263,0,6013);
00972 newreact("CH3+,C2=>C3H+,H2",hmrate,0.00000000099,0,0);
00973 newreact("CH4,C2H+=>C2H2+,CH3",hmrate,0.000000000374,0,0);
00974 newreact("CH4,C2+=>C2H2+,CH2",hmrate,0.000000000182,0,0);
00975 newreact("CH4,C2+=>C3H+,H2,H",hmrate,0.000000000196,0,0);
00976 newreact("CH4+,C2H2=>C2H2+,CH4",hmrate,0.00000000113,0,0);
00977 newreact("CH5+,C2H=>C2H2+,CH4",hmrate,0.0000000009,0,0);
00978 newreact("CH+,CH4=>C2H2+,H2,H",hmrate,0.000000000143,0,0);
00979 newreact("C+,C2H2=>C3H+,H",hmrate,0.0000000022,0,0);
00980 newreact("C+,CH3=>C2H2+,H",hmrate,0.0000000013,0,0);
00981 newreact("C+,CH4=>C2H2+,H2",hmrate,0.0000000004,0,0);
00982 newreact("H2O,C2H2+=>C2H,H3O+",hmrate,0.00000000022,0,0);
00983 newreact("H2O,C3H+=>HCO+,C2H2",hmrate,0.00000000027,0,0);
00984 newreact("H2O+,C2H=>C2H2+,OH",hmrate,0.00000000044,0,0);
00985 newreact("H2O+,C2H2=>C2H2+,H2O",hmrate,0.0000000019,0,0);
00986 newreact("H3O+,C3=>C3H+,H2O",hmrate,0.000000002,0,0);
00987 newreact("N,C2H2+=>HCN,CH+",hmrate,0.000000000025,0,0);
00988 newreact("NH2,C2H2+=>C2H,NH3+",hmrate,0.00000000045,0,0);
00989 newreact("NH2+,C2H=>C2H2+,NH",hmrate,0.00000000091,0,0);
00990 newreact("NH3,C2H2+=>C2H,NH4+",hmrate,0.0000000011,0,0);
00991 newreact("NH3,C2H2+=>C2H2,NH3+",hmrate,0.0000000021,0,0);
00992 newreact("NH3,C3H+=>C3,NH4+",hmrate,0.0000000008,0,0);
00993 newreact("NH3,C3H+=>C3H,NH3+",hmrate,0.00000000032,0,0);
00994 newreact("NH3+,C2=>C2H2+,NH",hmrate,0.00000000001,0,0);
00995 newreact("NH+,C2H=>C2H2+,N",hmrate,0.0000000014,0,0);
00996 newreact("NO,C3H+=>C3H,NO+",hmrate,0.00000000013,0,0);
00997 newreact("O,C2H2=>C2H,OH",hmrate,0.0000000053,0,8520);
00998 newreact("O,C2H2+=>HCO+,CH",hmrate,0.000000000085,0,0);
00999 newreact("OH,C2H2=>C2H,H2O",hmrate,0.000000000000105,2.68,6060);
01000 newreact("OH+,C2H=>C2H2+,O",hmrate,0.00000000045,0,0);
01001 newreact("O+,C2H2=>C2H2+,O",hmrate,0.000000000039,0,0);
01002 newreact("C,C2H3+=>C3H+,H2",hmrate,0.000000001,0,0);
01003 newreact("C2H,C2H3+=>C2H2+,C2H2",hmrate,0.00000000033,0,0);
01004 newreact("CH2,CH3+=>C2H3+,H2",hmrate,0.00000000099,0,0);
01005 newreact("CH4,C3H+=>C2H3+,C2H2",hmrate,0.000000000612,0,0);
01006 newreact("CH4,HCN+=>C2H3+,NH2",hmrate,0.00000000026,0,0);
01007 newreact("CH4+,C2H2=>C2H3+,CH3",hmrate,0.00000000125,0,0);
01008 newreact("CH5+,C2H2=>C2H3+,CH4",hmrate,0.0000000016,0,0);
01009 newreact("CH+,CH4=>C2H3+,H2",hmrate,0.00000000109,0,0);
01010 newreact("C+,CH4=>C2H3+,H",hmrate,0.0000000011,0,0);
01011 newreact("H2O,C2H3+=>C2H2,H3O+",hmrate,0.00000000111,0,0);
01012 newreact("HCN,C2H3+=>HCNH+,C2H2",hmrate,0.0000000029,0,0);
01013 newreact("HNC,C2H3+=>HCNH+,C2H2",hmrate,0.0000000029,0,0);
01014 newreact("NH3,C2H3+=>C2H2,NH4+",hmrate,0.0000000025,0,0);
01015 newreact("O,C2H3+=>HCO+,CH2",hmrate,0.0000000001,0,0);
01016 newreact("C,CH=>C2,H",hmrate,6.59e-11,0,0);
01017 newreact("C,CN=>C2,N",hmrate,4.98e-10,0,18116);
01018 newreact("C,CS=>S,C2",hmrate,1.44e-11,0.5,20435);
01019 newreact("C2,S=>CS,C",hmrate,1.73e-11,0.5,0);
01020 newreact("NH+,C2=>HCN+,C",hmrate,4.9e-10,0,0);
01021 newreact("O+,C2=>CO+,C",hmrate,4.8e-10,0,0);
01022 newreact("C+,S=>C,S+",hmrate,1.0e-9,0,0);
01023 newreact("C2,S+=>CS+,C",hmrate,8.1e-10,0,0);
01024 newreact("C,C2+=>C2,C+",hmrate,1.1e-10,0,0);
01025 newreact("CH,C2+=>C2,CH+",hmrate,3.2e-10,0,0);
01026 newreact("N+,C2=>C2+,N",hmrate,1.0e-9,0,0);
01027 newreact("CH2,C2+=>C2,CH2+",hmrate,4.5e-10,0,0);
01028 newreact("O+,C2=>C2+,O",hmrate,4.8e-10,0,0);
01029 newreact("NH2,C2+=>C2,NH2+",hmrate,4.6e-10,0,0);
01030 newreact("OH+,C2=>C2+,OH",hmrate,4.8e-10,0,0);
01031 newreact("OH,C2+=>C2,OH+",hmrate,6.5e-10,0,0);
01032 newreact("H2O+,C2=>C2+,H2O",hmrate,4.7e-10,0,0);
01033 newreact("C2,CN+=>CN,C2+",hmrate,8.5e-10,0,0);
01034 newreact("C2,N2+=>N2,C2+",hmrate,8.4e-10,0,0);
01035 newreact("C2+,NO=>NO+,C2",hmrate,3.4e-10,0,0);
01036 newreact("C2,O2+=>O2,C2+",hmrate,4.1e-10,0,0);
01037 newreact("C2+,S=>S+,C2",hmrate,5.8e-10,0,0);
01038 newreact("C,C=>C2,PHOTON",hmrate,4.36E-18,0.35,161.3);
01039 newreact("C,CH+=>C2+,H",hmrate,1.2e-9,0,0);
01040 newreact("CH+,CH=>C2+,H2",hmrate,7.4e-10,0,0);
01041 newreact("N,C2+=>CN,C+",hmrate,4.0e-11,0,0);
01042 newreact("O,C2+=>CO+,C",hmrate,3.1e-10,0,0);
01043 newreact("C2+,S=>CS+,C",hmrate,5.8e-10,0,0);
01044 newreact("C+,C=>C2+,PHOTON",hmrate,4.01E-18,0.17,101.5);
01045 newreact("C,CH2=>CH,CH",hmrate,2.69e-12,0,23550);
01046 newreact("C,H2O+=>OH,CH+",hmrate,1.1e-9,0,0);
01047 newreact("C,H3O+=>HCO+,H2",hmrate,1.0e-11,0,0);
01048 newreact("C,O2+=>O2,C+",hmrate,5.2e-11,0,0);
01049 newreact("C,O2+=>CO+,O",hmrate,5.2e-11,0,0);
01050 newreact("C,OH=>O,CH",hmrate,2.25e-11,0.5,14800);
01051 newreact("C,OH+=>O,CH+",hmrate,1.2e-9,0,0);
01052 newreact("C+,CH2=>CH2+,C",hmrate,5.2e-10,0,0);
01053 newreact("C+,H2O=>HCO+,H",hmrate,9.0e-10,0,0);
01054 newreact("C+,O=>CO+,PHOTON",hmrate,2.5E-18,0,0);
01055 newreact("C+,O2=>CO+,O",hmrate,3.8e-10,0,0);
01056 newreact("O,CH=>OH,C",hmrate,2.52e-11,0,2381);
01057 newreact("O,CH=>HCO+,e-",hmrate,2.0e-11,0.44,0);
01058 newreact("O,CH+=>CO+,H",hmrate,3.5e-10,0,0);
01059 newreact("O,CH2=>OH,CH",hmrate,4.98e-10,0,6000);
01060 newreact("O,CH2+=>HCO+,H",hmrate,7.5e-10,0,0);
01061 newreact("O,H2O=>OH,OH",hmrate,1.85e-11,0.95,8571);
01062 newreact("O,H2O+=>O2+,H2",hmrate,4.0e-11,0,0);
01063 newreact("O,O=>O2,PHOTON",hmrate,4.9E-20,1.58,0);
01064 newreact("O,OH=>O2,H",hmrate,4.34e-11,-0.5,30);
01065 newreact("O,OH+=>O2+,H",hmrate,7.1e-10,0,0);
01066 newreact("O,Si=>SiO,PHOTON",hmrate,5.52E-18,0.31,0);
01067 newreact("O,Si+=>SiO+,PHOTON",hmrate,1.e-17,0,0);
01068 newreact("O,SiH=>SiO,H",hmrate,4.0e-11,0.5,0);
01069 newreact("O,SiH2+=>SiOH+,H",hmrate,6.3e-10,0,0);
01070 newreact("O,SiO+=>O2,Si+",hmrate,2.0e-10,0,0);
01071 newreact("O+,CH=>O,CH+",hmrate,3.5e-10,0,0);
01072 newreact("O+,CH=>CO+,H",hmrate,3.5e-10,0,0);
01073 newreact("O+,CH2=>O,CH2+",hmrate,9.7e-10,0,0);
01074 newreact("O+,H2O=>H2O+,O",hmrate,3.2e-9,0,0);
01075 newreact("O+,O2=>O2+,O",hmrate,1.9e-11,0,0);
01076 newreact("O+,OH=>O2+,H",hmrate,3.6e-10,0,0);
01077 newreact("O+,OH=>OH+,O",hmrate,3.6e-10,0,0);
01078 newreact("Si,CH+=>Si+,CH",hmrate,2.0e-10,0,0);
01079 newreact("Si,H2O+=>Si+,H2O",hmrate,3.0e-9,0,0);
01080 newreact("Si,OH=>SiO,H",hmrate,2.0e-10,0.5,0);
01081 newreact("Si,O2+=>O2,Si+",hmrate,1.6e-9,0,0);
01082 newreact("Si+,H2O=>SiOH+,H",hmrate,2.3e-10,0,0);
01083 newreact("Si+,OH=>SiO+,H",hmrate,6.3e-10,0,0);
01084 newreact("Si+,O2=>SiO+,O",hmrate,1.e-13,0,0);
01085 newreact("CH,CO+=>HCO+,C",hmrate,3.2e-10,0,0);
01086 newreact("CH,H2O+=>H2O,CH+",hmrate,3.4e-10,0,0);
01087 newreact("CH,H2O+=>OH,CH2+",hmrate,3.4e-10,0,0);
01088 newreact("CH,H3O+=>H2O,CH2+",hmrate,6.8e-10,0,0);
01089 newreact("CH,O2+=>O2,CH+",hmrate,3.1e-10,0,0);
01090 newreact("CH,O2+=>HCO+,O",hmrate,3.1e-10,0,0);
01091 newreact("CH,OH+=>OH,CH+",hmrate,3.5e-10,0,0);
01092 newreact("CH,OH+=>O,CH2+",hmrate,3.5e-10,0,0);
01093 newreact("CH,SiO+=>HCO+,Si",hmrate,5.9e-10,0,0);
01094 newreact("CH+,H2O=>H3O+,C",hmrate,5.8e-10,0,0);
01095 newreact("CH+,H2O=>HCO+,H2",hmrate,2.9e-9,0,0);
01096 newreact("CH+,O2=>HCO+,O",hmrate,9.7e-10,0,0);
01097 newreact("CH+,OH=>CO+,H2",hmrate,7.5e-10,0,0);
01098 newreact("CH+,O2=>CO+,OH",hmrate,1.0e-11,0,0);
01099 newreact("CH2,CO+=>HCO+,CH",hmrate,4.3e-10,0,0);
01100 newreact("CH2,H2O+=>H2O,CH2+",hmrate,4.7e-10,0,0);
01101 newreact("CH2,H2O+=>OH,CH3+",hmrate,4.7e-10,0,0);
01102 newreact("CH2,H3O+=>H2O,CH3+",hmrate,1e-10*9.4,0.,0.);
01103 newreact("CH2,O2+=>O2,CH2+",hmrate,1e-10*4.3,0.,0.);
01104
01105
01106
01107
01108 newreact("CH2,OH=>H2O,CH",hmrate,1.44e-11,0.5,3000);
01109 newreact("CH2,OH+=>OH,CH2+",hmrate,1e-10*4.8,0.,0.);
01110 newreact("CH2,OH+=>O,CH3+",hmrate,1e-10*4.8,0.,0.);
01111 newreact("CH2+,O2=>HCO+,OH",hmrate,1e-10*9.1,0.,0.);
01112 newreact("H2O,CO+=>HCO+,OH",hmrate,1e-10*8.84,0.,0.);
01113 newreact("H2O+,H2O=>H3O+,OH",hmrate,1e-9*2.1,0.,0.);
01114 newreact("H2O+,O2=>O2+,H2O",hmrate,1e-10*4.6,0.,0.);
01115 newreact("H3O+,SiH=>SiH2+,H2O",hmrate,1e-10*9.7,0.,0.);
01116 newreact("H3O+,SiO=>SiOH+,H2O",hmrate,2.0e-9,0.,0.);
01117 newreact("OH,CO+=>HCO+,O",hmrate,3.1e-10,0,0);
01118 newreact("OH,H2O+=>H3O+,O",hmrate,6.9e-10,0,0);
01119 newreact("OH,OH=>H2O,O",hmrate,1.65e-12,1.14,50);
01120 newreact("OH+,H2O=>H3O+,O",hmrate,1.3e-9,0,0);
01121 newreact("OH+,H2O=>H2O+,OH",hmrate,1.59e-9,0,0);
01122 newreact("OH+,O2=>O2+,OH",hmrate,5.9e-10,0,0);
01123 newreact("OH+,OH=>H2O+,O",hmrate,7.0e-10,0,0);
01124 newreact("OH+,SiH=>SiH2+,O",hmrate,1.0e-9,0,0);
01125 newreact("OH+,SiO=>SiOH+,O",hmrate,9.4e-10,0,0);
01126 newreact("C,CH5+=>CH4,CH+",hmrate,1.2e-9,0,0);
01127 newreact("O,CH4=>OH,CH3",hmrate,2.29e-12,2.2,3820);
01128 newreact("O,CH4+=>OH,CH3+",hmrate,1.0e-9,0,0);
01129 newreact("O,CH5+=>H3O+,CH2",hmrate,2.2e-10,0,0);
01130 newreact("O+,CH4=>OH,CH3+",hmrate,1.1e-10,0,0);
01131 newreact("O+,CH4=>CH4+,O",hmrate,8.9e-10,0,0);
01132 newreact("CH4,CH=>CH3,CH2",hmrate,2.28e-11,0.7,3000);
01133 newreact("CH5+,CH=>CH4,CH2+",hmrate,6.9e-10,0,0);
01134 newreact("CH2,CH2=>CH3,CH",hmrate,4.0e-10,0,5000);
01135 newreact("CH4,CH2=>CH3,CH3",hmrate,7.13e-12,0,5050);
01136 newreact("OH,CH2=>O,CH3",hmrate,1.44e-11,0.5,3000);
01137 newreact("CH5+,CH2=>CH4,CH3+",hmrate,9.6e-10,0,0);
01138 newreact("OH,CH3=>CH4,O",hmrate,3.27e-14,2.2,2240);
01139 newreact("OH,CH3=>H2O,CH2",hmrate,1.2e-10,0,1400);
01140 newreact("H2O,CH3=>OH,CH4",hmrate,2.3e-15,3.47,6681);
01141 newreact("CH3,CH3=>CH4,CH2",hmrate,7.13e-12,0,5052);
01142 newreact("OH,CH4=>H2O,CH3",hmrate,3.77e-13,2.42,1162);
01143 newreact("OH+,CH4=>CH5+,O",hmrate,1.95e-10,0,0);
01144 newreact("OH+,CH4=>H3O+,CH2",hmrate,1.31e-9,0,0);
01145 newreact("H2O+,CH4=>H3O+,CH3",hmrate,1.4e-9,0,0);
01146 newreact("CO+,CH4=>HCO+,CH3",hmrate,4.55e-10,0,0);
01147 newreact("CH4,CH4+=>CH5+,CH3",hmrate,1.5e-9,0,0);
01148 newreact("H2O,CH4+=>H3O+,CH3",hmrate,2.6e-9,0,0);
01149 newreact("O2,CH4+=>O2+,CH4",hmrate,4.0e-10,0,0);
01150 newreact("H2O,CH5+=>H3O+,CH4",hmrate,3.7e-9,0,0);
01151 newreact("CH5+,OH=>H2O+,CH4",hmrate,7.0e-10,0,0);
01152 newreact("C,NH=>N,CH",hmrate,1.73e-11,0.5,4000);
01153 newreact("C,NH=>CN,H",hmrate,1.1e-10,0.5,0);
01154 newreact("C,N2=>CN,N",hmrate,8.69e-11,0,22600);
01155 newreact("C,NO=>CN,O",hmrate,4.8e-11,0,0);
01156 newreact("C,HS=>S,CH",hmrate,1.2e-11,0.58,5880);
01157 newreact("C,HS=>CS,H",hmrate,2.0e-11,0,0);
01158 newreact("C,NS=>S,CN",hmrate,2.0e-11,0.5,0);
01159 newreact("C,NS=>CS,N",hmrate,1.73e-11,0.5,4000);
01160 newreact("C,S2=>CS,S",hmrate,1.73e-11,0.5,0);
01161 newreact("CH,N=>NH,C",hmrate,3.03e-11,0.65,1207);
01162 newreact("CH,N2=>HCN,N",hmrate,0.00000000000056,0.88,10128);
01163 newreact("CH,NO=>HCN,O",hmrate,5.59e-9,0,10814);
01164 newreact("CH,NO=>CN,OH",hmrate,2.32E-26,0,0);
01165 newreact("CH,NO=>OCN,H",hmrate,1.13E-25,0,0);
01166 newreact("CH,HNO=>NO,CH2",hmrate,1.73e-11,0.5,0);
01167 newreact("CH,S=>HS,C",hmrate,1.73e-11,0.5,4000);
01168 newreact("CH,S=>CS,H",hmrate,1.1e-12,0,0);
01169 newreact("N,NH=>N2,H",hmrate,4.98e-11,0,0);
01170 newreact("N,CH3=>HCN,H,H",hmrate,3.32e-13,0,0);
01171 newreact("N,CH3=>HCN,H2",hmrate,1.3e-11,0.5,0);
01172 newreact("N,OH=>O,NH",hmrate,1.88e-11,0.1,10700);
01173 newreact("N,OH=>NO,H",hmrate,5.32e-11,-0.25,0);
01174 newreact("N,CN=>N2,C",hmrate,3.e-10,0,0);
01175 newreact("N,SiH=>SiN,H",hmrate,5.e-11,0.5,0);
01176 newreact("N,NO=>N2,O",hmrate,3.75e-11,0,26);
01177 newreact("N,HNO=>NO,NH",hmrate,2.94e-12,0.5,1000);
01178 newreact("N,HNO=>N2O,H",hmrate,1.43e-12,0.5,1500);
01179 newreact("N,O2=>NO,O",hmrate,2.26e-12,0.86,3134);
01180 newreact("N,HS=>NS,H",hmrate,1.73e-11,0.5,0);
01181 newreact("N,HS=>S,NH",hmrate,1.73e-11,0.5,9060);
01182 newreact("N,CS=>S,CN",hmrate,3.8e-11,0.5,1160);
01183 newreact("N,NS=>S,N2",hmrate,1.73e-11,0.5,0);
01184 newreact("N,SO=>NS,O",hmrate,4.68e-11,0.5,8254);
01185 newreact("N,SO=>S,NO",hmrate,1.73e-11,0.5,750);
01186 newreact("N,S2=>NS,S",hmrate,1.73e-11,0.5,4000);
01187 newreact("CH2,CN=>HCN,CH",hmrate,5.3e-12,0,2500);
01188 newreact("CH2,NO=>HCN,OH",hmrate,0.000000000000832,0,1443);
01189 newreact("CH2,HNO=>NO,CH3",hmrate,1.73e-11,0.5,0);
01190 newreact("NH,NH=>N2,H,H",hmrate,1.16e-9,0,0);
01191 newreact("NH,NH=>N2,H2",hmrate,1.7e-11,0,0);
01192 newreact("NH,O=>OH,N",hmrate,1.16e-11,0,0);
01193 newreact("NH,O=>NO,H",hmrate,1.16e-10,0,0);
01194 newreact("NH,OH=>HNO,H",hmrate,3.32e-11,0,0);
01195 newreact("NH,OH=>NH2,O",hmrate,2.93e-12,0.1,5800);
01196 newreact("NH,OH=>H2O,N",hmrate,3.11e-12,1.2,0);
01197 newreact("NH,H2O=>OH,NH2",hmrate,1.83e-12,1.6,14090);
01198 newreact("NH,CN=>HCN,N",hmrate,2.94e-12,0.5,1000);
01199 newreact("NH,NO=>N2O,H",hmrate,1.16e-10,-1.03,420);
01200 newreact("NH,NO=>N2,O,H",hmrate,5.e-11,0,0);
01201 newreact("NH,NO=>N2,OH",hmrate,1.46e-11,-0.58,37);
01202 newreact("NH,S=>HS,N",hmrate,1.73e-11,0.5,4000);
01203 newreact("NH,S=>NS,H",hmrate,1.73e-11,0.5,0);
01204 newreact("NH,NO2=>HNO,NO",hmrate,5.72e-12,0.5,2500);
01205 newreact("NH,NO2=>N2O,OH",hmrate,1.44e-13,0, 1140);
01206 newreact("CH3,NH3=>CH4,NH2",hmrate,0.0000000000000955,0,4890);
01207 newreact("CH3,CN=>HCN,CH2",hmrate,9.21e-12,0.7,1500);
01208 newreact("CH3,HNO=>NO,CH4",hmrate,1.44e-11,0.5,0);
01209 newreact("O,NH2=>OH,NH",hmrate,1.39e-11,0,40);
01210 newreact("O,NH2=>NO,H2",hmrate,8.3e-12,0,0);
01211 newreact("O,NH3=>OH,NH2",hmrate,1.89e-11,0,4003);
01212 newreact("O,CN=>NO,C",hmrate,3.81e-11,0.5,14545);
01213 newreact("O,HCN=>CN,OH",hmrate,6.21e-10,0,12439);
01214 newreact("O,HCN=>OCN,H",hmrate,1.36e-12,1.38,3693);
01215 newreact("O,N2=>NO,N",hmrate,2.51e-10,0,38602);
01216 newreact("O,NO=>O2,N",hmrate,1.18e-11,0,20413);
01217 newreact("O,HNO=>NO,OH",hmrate,6.e-11,0,0);
01218 newreact("O,HNO=>O2,NH",hmrate,2.94e-12,0.5,3500);
01219 newreact("O,HNO=>NO2,H",hmrate,1.44e-12,0.5,0);
01220 newreact("O,HS=>S,OH",hmrate,1.74e-11,0.67,956);
01221 newreact("O,HS=>SO,H",hmrate,2.32e-10,0,0);
01222 newreact("O,OCN=>O2,CN",hmrate,4.02e-10,-1.43,3501);
01223 newreact("O,SiN=>NO,Si",hmrate,2.5e-11,0.5,0);
01224 newreact("O,SiN=>SiO,N",hmrate,5.75e-11,0.1,200);
01225 newreact("O,N2O=>NO,NO",hmrate,1.15e-10,0,13400);
01226 newreact("O,N2O=>O2,N2",hmrate,1.66e-10,0,14100);
01227 newreact("O,CS=>SO,C",hmrate,4.68e-11,0.5,28940);
01228 newreact("O,NS=>S,NO",hmrate,5.e-11,0.5,0);
01229 newreact("O,NS=>SO,N",hmrate,1.73e-11,0.5,4000);
01230 newreact("O,SO=>S,O2",hmrate,0.00000000000066,0,2760);
01231 newreact("O,S2=>SO,S",hmrate,1.73e-11,0.5,0);
01232 newreact("NH2,OH=>NH3,O",hmrate,0.000000000000208,0.76,262);
01233 newreact("NH2,OH=>H2O,NH",hmrate,1.5e-12,0,0);
01234 newreact("NH2,NO=>N2,OH,H",hmrate,1.49e-12,0,0);
01235 newreact("NH2,NO=>N2,H2O",hmrate,4.27e-11,-2.5,331);
01236 newreact("CH4,CN=>HCN,CH3",hmrate,3.14e-12,1.53,504);
01237 newreact("OH,NH3=>H2O,NH2",hmrate,1.47e-13,2.05,7);
01238 newreact("OH,CN=>HCN,O",hmrate,1.0e-11,0,1000);
01239 newreact("OH,CN=>OCN,H",hmrate,7.e-11,0,0);
01240 newreact("OH,HCN=>CN,H2O",hmrate,1.87e-13,1.5,3887);
01241 newreact("OH,NO=>NO2,H",hmrate,5.2e-12,0,15100);
01242 newreact("OH,S=>HS,O",hmrate,6.6e-11,0,0);
01243 newreact("OH,S=>SO,H",hmrate,6.6e-11,0,0);
01244 newreact("OH,N2O=>HNO,NO",hmrate,1.04E-17,4.33,12623);
01245 newreact("OH,CS=>OCS,H",hmrate,0.0000000000000939,1.12,800);
01246 newreact("NH3,CN=>HCN,NH2",hmrate,2.6e-11,-1.1,0);
01247 newreact("CN,NO=>OCN,N",hmrate,1.62e-10,0,21205);
01248 newreact("CN,HNO=>NO,HCN",hmrate,1.5e-11,0.5,0);
01249 newreact("CN,S=>NS,C",hmrate,5.71e-11,0.5,32010);
01250 newreact("CN,S=>CS,N",hmrate,1.73e-11,0.5,0);
01251 newreact("N2,O2=>N2O,O",hmrate,1.0e-10,0,55200);
01252 newreact("NO,NO=>O2,N2",hmrate,2.51e-11,0,30653);
01253 newreact("NO,NO=>N2O,O",hmrate,7.22e-12,0,33155);
01254 newreact("NO,HNO=>N2O,OH",hmrate,1.41e-11,0,14890);
01255 newreact("NO,S=>NS,O",hmrate,2.94e-11,0.5,17465);
01256 newreact("NO,S=>SO,N",hmrate,1.75e-10,0,20200);
01257 newreact("O2,S=>SO,O",hmrate,2.28e-12,0.52,0);
01258 newreact("S,SO=>S2,O",hmrate,1.73e-11,0.5,11500);
01259 newreact("C,NH+=>N,CH+",hmrate,1.6e-9,0,0);
01260 newreact("C+,NH=>CH+,N",hmrate,5e-10,0.,0.);
01261 newreact("C+,NH2=>HCN+,H",hmrate,1.1e-9,0,0);
01262 newreact("C,NH2+=>NH,CH+",hmrate,1.2e-9,0,0);
01263 newreact("C+,NH3=>HCN+,H2",hmrate,7.e-11,0,0);
01264 newreact("C,NH3+=>NH,CH2+",hmrate,1.0e-11,0,0);
01265 newreact("C,HCN+=>CN,CH+",hmrate,1.1e-9,0,0);
01266 newreact("C,HNO+=>NO,CH+",hmrate,1.0e-9,0,0);
01267 newreact("C+,HS=>CS+,H",hmrate,1.1e-9,0,0);
01268 newreact("C,HS+=>CS+,H",hmrate,9.9e-10,0,0);
01269 newreact("C+,OCN=>CO+,CN",hmrate,3.8e-9,0,0);
01270 newreact("C+,NS=>CS+,N",hmrate,7.6e-10,0,0);
01271 newreact("C+,SO=>S,CO+",hmrate,2.6e-10,0,0);
01272 newreact("C+,SO=>CS+,O",hmrate,2.6e-10,0,0);
01273 newreact("CH+,N=>CN+,H",hmrate,1.9e-10,0,0);
01274 newreact("CH,N+=>CN+,H",hmrate,3.6e-10,0,0);
01275 newreact("CH,NH+=>CH2+,N",hmrate,9.9e-10,0,0);
01276 newreact("CH+,NH=>CN+,H2",hmrate,7.6e-10,0,0);
01277 newreact("CH+,NH2=>HCN+,H2",hmrate,1.1e-9,0,0);
01278 newreact("CH,NH2+=>NH,CH2+",hmrate,3.5e-10,0,0);
01279 newreact("CH+,NH3=>NH4+,C",hmrate,4.05e-10,0,0);
01280 newreact("CH,NH3+=>NH4+,C",hmrate,6.9e-10,0,0);
01281 newreact("CH,HCN+=>CN,CH2+",hmrate,6.3e-10,0,0);
01282 newreact("CH,HNO+=>NO,CH2+",hmrate,6.2e-10,0,0);
01283 newreact("CH+,S=>HS+,C",hmrate,4.7e-10,0,0);
01284 newreact("CH+,S=>CS+,H",hmrate,4.7e-10,0,0);
01285 newreact("CH,S+=>CS+,H",hmrate,6.2e-10,0,0);
01286 newreact("CH,HS+=>S,CH2+",hmrate,5.8e-10,0,0);
01287 newreact("N,CH2+=>HCN+,H",hmrate,2.2e-10,0,0);
01288 newreact("N+,NH=>N2+,H",hmrate,3.7e-10,0,0);
01289 newreact("N,NH+=>N2+,H",hmrate,1.3e-9,0,0);
01290 newreact("N+,CH4=>HCN+,H2,H",hmrate,5.6e-11,0,0);
01291 newreact("N,OH+=>NO+,H",hmrate,8.9e-10,0,0);
01292 newreact("N+,NH3=>NH2+,NH",hmrate,2.16e-10,0,0);
01293 newreact("N,H2O+=>HNO+,H",hmrate,1.9e-10,0,0);
01294 newreact("N+,NO=>N2+,O",hmrate,7.9e-11,0,0);
01295 newreact("N+,O2=>NO,O+",hmrate,3.66e-11,0,0);
01296 newreact("N+,O2=>NO+,O",hmrate,2.63e-10,0,0);
01297 newreact("N,O2+=>NO+,O",hmrate,1.8e-10,0,0);
01298 newreact("N,HS+=>NS+,H",hmrate,7.4e-10,0,0);
01299 newreact("N,SiO+=>NO+,Si",hmrate,9.e-11,0,0);
01300 newreact("N,SiO+=>NO,Si+",hmrate,2.1e-10,0,0);
01301 newreact("N,SO+=>NS+,O",hmrate,5.e-11,0,0);
01302 newreact("N+,OCS=>CS+,NO",hmrate,7.e-11,0,0);
01303 newreact("CH2,NH+=>CH3+,N",hmrate,1.4e-9,0,0);
01304 newreact("CH2,NH2+=>CH3+,NH",hmrate,4.9e-10,0,0);
01305 newreact("CH2+,NH3=>NH4+,CH",hmrate,1.26e-9,0,0);
01306 newreact("CH2,NH3+=>NH2,CH3+",hmrate,9.6e-10,0,0);
01307 newreact("CH2,HCN+=>CN,CH3+",hmrate,8.7e-10,0,0);
01308 newreact("CH2,HNO+=>NO,CH3+",hmrate,8.6e-10,0,0);
01309 newreact("CH2+,S=>HCS+,H",hmrate,1.4e-9,0,0);
01310 newreact("CH2,S+=>HCS+,H",hmrate,1.0e-11,0,0);
01311 newreact("NH+,NH=>NH2+,N",hmrate,1.0e-9,0,0);
01312 newreact("NH+,O=>OH+,N",hmrate,1.0e-9,0,0);
01313 newreact("NH,O+=>NO+,H",hmrate,3.6e-10,0,0);
01314 newreact("NH+,NH2=>NH3+,N",hmrate,1.5e-9,0,0);
01315 newreact("NH,NH2+=>NH3+,N",hmrate,7.3e-10,0,0);
01316 newreact("NH+,OH=>H2O+,N",hmrate,1.0e-9,0,0);
01317 newreact("NH,OH+=>NH2+,O",hmrate,3.6e-10,0,0);
01318 newreact("NH+,NH3=>NH4+,N",hmrate,6.e-10,0,0);
01319 newreact("NH,NH3+=>NH4+,N",hmrate,7.1e-10,0,0);
01320 newreact("NH,CH5+=>CH4,NH2+",hmrate,7.1e-10,0,0);
01321 newreact("NH+,H2O=>NH3+,O",hmrate,1.75e-10,0,0);
01322 newreact("NH+,H2O=>H3O+,N",hmrate,1.05e-9,0,0);
01323 newreact("NH+,H2O=>HNO+,H2",hmrate,3.5e-10,0,0);
01324 newreact("NH,H2O+=>H3O+,N",hmrate,7.1e-10,0,0);
01325 newreact("NH+,H2O=>OH,NH2+",hmrate,8.75e-10,0,0);
01326 newreact("NH+,CN=>HCN+,N",hmrate,1.6e-9,0,0);
01327 newreact("NH,HCN+=>CN,NH2+",hmrate,6.5e-10,0,0);
01328 newreact("NH,CO+=>HCO+,N",hmrate,3.2e-10,0,0);
01329 newreact("NH,Si+=>SiN+,H",hmrate,1.0e-9,0,0);
01330 newreact("NH,HNO+=>NO,NH2+",hmrate,6.3e-10,0,0);
01331 newreact("NH,O2+=>HNO+,O",hmrate,3.2e-10,0,0);
01332 newreact("NH+,O2=>NO+,OH",hmrate,2.05e-10,0,0);
01333 newreact("NH,O2+=>NO2+,H",hmrate,3.2e-10,0,0);
01334 newreact("NH+,S=>HS+,N",hmrate,6.9e-10,0,0);
01335 newreact("NH+,S=>NS+,H",hmrate,6.9e-10,0,0);
01336 newreact("NH,S+=>NS+,H",hmrate,6.3e-10,0,0);
01337 newreact("CH3+,NH3=>NH4+,CH2",hmrate,3.4e-10,0,0);
01338 newreact("CH3+,S=>HCS+,H2",hmrate,1.4e-9,0,0);
01339 newreact("O,NH2+=>HNO+,H",hmrate,7.2e-11,0,0);
01340 newreact("O,NH3+=>HNO+,H2",hmrate,1.0e-11,0,0);
01341 newreact("O+,CN=>NO+,C",hmrate,1.0e-9,0,0);
01342 newreact("O+,HCN=>CO+,NH",hmrate,1.2e-9,0,0);
01343 newreact("O+,HCN=>NO+,CH",hmrate,1.2e-9,0,0);
01344 newreact("O+,HCN=>HCO+,N",hmrate,1.2e-9,0,0);
01345 newreact("O+,N2=>NO+,N",hmrate,1.2e-12,0,0);
01346 newreact("O,N2+=>NO+,N",hmrate,1.3e-10,0,0);
01347 newreact("O,HNO+=>NO2+,H",hmrate,1.e-12,0,0);
01348 newreact("O,HS+=>S+,OH",hmrate,2.9e-10,0,0);
01349 newreact("O,HS+=>SO+,H",hmrate,2.9e-10,0,0);
01350 newreact("O,SiN+=>SiO+,N",hmrate,1.0e-9,0,0);
01351 newreact("O+,N2O=>NO+,NO",hmrate,6.3e-10,0,0);
01352 newreact("O,CS+=>S,CO+",hmrate,6.e-11,0,0);
01353 newreact("O,HCS+=>S,HCO+",hmrate,5.e-12,0,0);
01354 newreact("O,HCS+=>OCS+,H",hmrate,5.e-12,0,0);
01355 newreact("O+,NO2=>O2,NO+",hmrate,8.3e-10,0,0);
01356 newreact("O,NS+=>S,NO+",hmrate,6.1e-10,0,0);
01357
01358
01359 coreactions.list = (struct COmole_rate_s **)MALLOC((size_t)coreactions.n*
01360 sizeof(struct COmole_rate_s *));
01361
01362
01363 i = makeplist(mole_priv.reactab,(void **)coreactions.list,
01364 coreactions.n,NULL);
01365 ASSERT (i == coreactions.n);
01366
01367 }
01368 STATIC void newreact(const char label[],
01369 double (*fun)(struct COmole_rate_s *rate), double a, double b, double c)
01370 {
01371 struct COmole_rate_s *rate;
01372 struct molecule *sp;
01373 data_u *p;
01374 int i,j,prod,exists;
01375 char buf[7];
01376
01377 DEBUG_ENTRY("newreact()");
01378
01379 coreactions.n++;
01380 rate = (struct COmole_rate_s *) MALLOC (sizeof(struct COmole_rate_s));
01381 p = addentry(label,0,mole_priv.reactab,&exists);
01382 p->p = (void *) rate;
01383 rate->label = (char *) p->key;
01384 rate->fun = fun;
01385 if(fun == hmrate && b == 0. && c == 0.)
01386 {
01387 rate->fun = constrate;
01388 }
01389 rate->a = a;
01390 rate->b = b;
01391 rate->c = c;
01392 rate->rk = 0.0;
01393
01394 rate->index = coreactions.n-1;
01395
01396 rate->nreactants = rate->nrates = rate->nproducts = rate->photon = 0;
01397 j = prod = 0;
01398 for(i=0;!i || label[i-1]!='\0';i++)
01399 {
01400 if(label[i] == ',' || label[i] == '=' || label[i] == '\0')
01401 {
01402 buf[j] = '\0';
01403 j = 0;
01404 sp = findspecies(buf);
01405 if(sp != &null_mole)
01406 {
01407 if(prod == 0)
01408 {
01409 fixit();
01410 if(sp->active)
01411 {
01412 if(rate->nreactants >= MAXREACTANTS)
01413 {
01414 fprintf(stderr,"Mole_co_etc: Too many reactants in %s, only %d allowed\n",label,MAXREACTANTS);
01415 cdEXIT( EXIT_FAILURE );
01416 }
01417 rate->reactants[rate->nreactants] = sp;
01418 rate->nreactants++;
01419 }
01420 if(rate->nrates >= MAXREACTANTS)
01421 {
01422 fprintf(stderr,"Mole_co_etc: Too many rate species in %s, only %d allowed\n",label,MAXREACTANTS);
01423 cdEXIT( EXIT_FAILURE );
01424 }
01425 rate->rate_species[rate->nrates] = sp;
01426 rate->nrates++;
01427 }
01428 else
01429 {
01430 fixit();
01431 if(sp->active)
01432 {
01433 if(rate->nproducts >= MAXPRODUCTS)
01434 {
01435 fprintf(stderr,"Mole_co_etc: Too many products in %s, only %d allowed\n",label,MAXPRODUCTS);
01436 cdEXIT( EXIT_FAILURE );
01437 }
01438 rate->products[rate->nproducts] = sp;
01439 rate->nproducts++;
01440 }
01441 }
01442 }
01443 else
01444 {
01445 if(0)
01446 fprintf(stderr,"Could not find %s\n",buf);
01447 if(strncmp(buf,"PHOTON",6) == 0) {
01448 if(prod == 0)
01449 rate->photon--;
01450 else
01451 rate->photon++;
01452 }
01453 fixit();
01454 }
01455 if(label[i] == '=')
01456 {
01457 i++;
01458 prod = 1;
01459 }
01460 }
01461 else
01462 {
01463 buf[j] = label[i];
01464 j++;
01465 }
01466 }
01467
01468
01469 if(rate->nrates == 2)
01470 {
01471 rate->reduced_mass = 1./(1./rate->rate_species[0]->mole_mass+1./rate->rate_species[1]->mole_mass);
01472 }
01473 else
01474 {
01475 rate->reduced_mass = 0.;
01476 }
01477 }
01478
01479
01480
01481
01482
01483
01484
01485
01486 #include "phycon.h"
01487 #include "physconst.h"
01488 #include "doppvel.h"
01489
01490 STATIC double noneq_offset(struct COmole_rate_s *rate);
01491
01492 STATIC double hmrate(struct COmole_rate_s *rate)
01493 {
01494 double te;
01495
01496 DEBUG_ENTRY("hmrate()");
01497
01498 te = phycon.te+noneq_offset(rate);
01499
01500 return pow(te/300.,rate->b)*exp(-rate->c/te);
01501 }
01502
01503
01504
01505
01506
01507
01508
01509
01510
01511
01512 STATIC double noneq_offset(struct COmole_rate_s *rate)
01513 {
01514
01515 int nreact, n;
01516 bool lgFact;
01517
01518 DEBUG_ENTRY("noneq_offset()");
01519
01520 lgFact = false;
01521 if(co.lgNonEquilChem)
01522 {
01523 if(co.lgNeutrals)
01524 {
01525 lgFact = true;
01526 }
01527 else
01528 {
01529 nreact = rate->nreactants;
01530 for(n=0;n<nreact;n++)
01531 {
01532 if(rate->reactants[0]->nElec != 0)
01533 {
01534 lgFact = true;
01535 break;
01536 }
01537 }
01538 }
01539 }
01540
01541 if( lgFact )
01542 return 0.333f*POW2(DoppVel.TurbVel)/BOLTZMANN*rate->reduced_mass;
01543 else
01544 return 0.;
01545 }
01546 STATIC double constrate(struct COmole_rate_s *)
01547 {
01548 return 1.;
01549 }
01550
01551
01552
01553
01554
01555
01556
01557
01558
01559
01560
01561
01562 #include "rfield.h"
01563 STATIC double th85rate(struct COmole_rate_s *rate)
01564 {
01565 double rk;
01566
01567 DEBUG_ENTRY("th85rate()");
01568
01569 if(co.lgUMISTrates || rate->b == 0.0)
01570 {
01571 rk = hmi.UV_Cont_rel2_Habing_TH85_depth/1.66;
01572 }
01573 else
01574 {
01575 rk = hmi.UV_Cont_rel2_Habing_TH85_face/1.66*exp(-(rate->b*rfield.extin_mag_V_point));
01576 }
01577
01578 return rk;
01579 }
01580 #include "secondaries.h"
01581
01582
01583
01584
01585
01586
01587
01588
01589
01590
01591
01592
01593
01594 STATIC double crnurate(struct COmole_rate_s *)
01595 {
01596 return 2.17*secondaries.csupra[ipHYDROGEN][0];
01597 }
01598 #include "ionbal.h"
01599 STATIC double co_lnu_c_o_lnu(struct COmole_rate_s *)
01600 {
01601 double val = 0;
01602 int ns, ion;
01603
01604
01605
01606
01607
01608 DEBUG_ENTRY("co_lnu_c_o_lnu()");
01609
01610 for( ns=0; ns<2; ++ns )
01611 {
01612 ion = 0;
01613 val += ionbal.PhotoRate_Shell[ipCARBON][ion][ns][0];
01614 val += ionbal.PhotoRate_Shell[ipOXYGEN][ion][ns][0];
01615 }
01616
01617 return val;
01618 }
01619
01620 STATIC double ele_ion_ladder(struct COmole_rate_s *rate)
01621 {
01622 long int ipElem;
01623
01624 ipElem = rate->reactants[0]->nelem_hevmol;
01625
01626 if(rate->reactants[0]->nElec == 1)
01627 return ionbal.RateRecomTot[ipElem][0]+gv.GrainChTrRate[ipElem][1][0];
01628 else
01629 return ionbal.RateIonizTot(ipElem,0)+gv.GrainChTrRate[ipElem][0][1];
01630 }
01631
01632
01633
01634
01635
01636
01637
01638
01639
01640
01641
01642
01643
01644
01645
01646
01647
01648
01649
01650
01651
01652
01653
01654
01655
01656
01657
01658
01659
01660
01661
01662
01663
01664 STATIC double vib_evap(struct COmole_rate_s *rate)
01665 {
01666 double binding_energy, exponent, vib_freq, number_of_sites ;
01667
01668 DEBUG_ENTRY("vib_evap()");
01669
01670 exponent = 0.0;
01671
01672 binding_energy = rate->b;
01673
01674
01675
01676 if( conv.nTotalIoniz > 1 || iteration > 1 )
01677 {
01678 for( size_t nd=0; nd < gv.bin.size(); nd++ )
01679 {
01680 exponent += exp(-binding_energy/gv.bin[nd]->tedust);
01681 }
01682 }
01683 number_of_sites = 1.5e15;
01684
01685 vib_freq = sqrt(2*number_of_sites*binding_energy/(PI*PI*rate->reactants[0]->mole_mass));
01686
01687
01688
01689
01690
01691
01692
01694
01695
01696
01697
01698 return vib_freq*exponent+sexp( 555.89/phycon.sqrte - 5.55 );
01699 }
01700 STATIC double grn_abs(struct COmole_rate_s *rate)
01701 {
01702 double den_times_area;
01703
01704 DEBUG_ENTRY("grn_abs()");
01705
01706 den_times_area = 0.0;
01707
01708 fixit();
01709
01710
01711
01712
01713
01714
01715
01716
01717
01718 for( size_t nd=0; nd < gv.bin.size(); nd++ )
01719 {
01720
01721 den_times_area += gv.bin[nd]->IntArea/4.*gv.bin[nd]->cnv_H_pCM3;
01722 }
01723
01724 return den_times_area*sqrt(8.*BOLTZMANN*phycon.te/(PI*rate->reactants[0]->mole_mass));
01725 }
01726
01727 #include "rt.h"
01728 STATIC double th85rate_co(struct COmole_rate_s *rate)
01729 {
01730 double esc_co;
01731
01732
01733
01734
01735
01736
01737
01738
01739
01740
01741
01742
01743
01744
01745
01746
01747
01748
01749 esc_co = 4.4e-15 * rate->reactants[0]->hevcol /
01750
01751 ( GetDopplerWidth( rate->reactants[0]->mole_mass/(realnum)ATOMIC_MASS_UNIT )/1e5) /
01752
01753 (1. + phycon.sqrte*0.6019);
01754 return esca0k2(esc_co)*th85rate(rate);
01755 }
01756 STATIC double oh_c2h2_co_ch3(struct COmole_rate_s *rate)
01757 {
01758
01759
01760 if(phycon.te > 500)
01761 {
01762 return hmrate(rate);
01763 }
01764 else
01765 {
01766 return 6.3E-18;
01767 }
01768 }
01769 STATIC double h_hnc_hcn_h(struct COmole_rate_s *rate)
01770 {
01771 if(phycon.te > 100)
01772 {
01773 return hmrate(rate);
01774 }
01775 else
01776 {
01777 return 1e-15;
01778 }
01779 }