/home66/gary/public_html/cloudy/c08_branch/source/mole_co_reactions.cpp

Go to the documentation of this file.
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 )/* unreferenced formal parameter  */
00010 #endif
00011 
00012 /*
00013  * HOWTO:- add a reaction to the new CO network, as at 2006 December 07.
00014  *
00015  * add a line of the form
00016  *   newreact("O,C2=>CO,C",hmrate,SCALE,B,C); / * Data source * /
00017  * to this file for the new reaction.  The first argument is the chemical
00018  * reaction, the second is the function which is used to evaluate the 
00019  * rate coefficients.
00020  *
00021  * SCALE is an overall constant by which the reaction rate is scaled,
00022  * the remaining arguments constants used by this function.
00023  *
00024  *
00025  * If all the species have previously been defined, and the parser in
00026  * mole_co_etc.c can understand the reaction string, then that's it.
00027  * The sources and sinks to other networks will need to be defined, 
00028  * though.
00029  *
00030  */
00031 
00032 /* Nick Abel, 06 Nov 27 states: "In all the crnu reactions, the factor of two is the albedo factor 1/(1-albedo)."
00033          Can this be obtained from the grain physics? */
00034 
00035 /* Structures containing reaction data */
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         /* Should adaptively select reactions rather than list them explicitly here */
00057 
00058         /* prevent memory leaks */
00059         /* \todo        this is a temporary fix for PR14. We should improve the overall design
00060          * of this code to prevent valid pointers being overwritten in a second call to CO_create_react */
00061         if( lgReactInitialized )
00062                 return;
00063 
00064         lgReactInitialized = true;
00065 
00066         long int i;
00067         /* Initialize number of reactions added to list in coreactions of reactions
00068            treated by new methodology, incremented by newreact() */
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         /* >>chng 06 Feb 28 -- NPA.  Charge transfer between S+, Si+, and C+ and Mg/Fe is 
00087          * sometimes important in molecular abundance determinations.  We therefore include them here.  Someday, we may need to 
00088          * include Mg and Fe in the molecular network, but for now include the reaction in the existing heavy element
00089          * network */
00090         newreact("S+,Mg=>S,Mg+",hmrate,2.8e-10,0.,0.); /* TH85   */
00091         newreact("S+,Fe=>S,Fe+",hmrate,1.8e-10,0.,0.); /* TH85   */
00092         newreact("Si+,Mg=>Si,Mg+",hmrate,2.9e-10,0.,0.); /* TH85         */
00093         newreact("Si+,Fe=>Si,Fe+",hmrate,1.9e-10,0.,0.); /* TH85         */
00094         newreact("C+,Mg=>C,Mg+",hmrate,1.1e-9,0.,0.); /* TH85    */
00095         newreact("C+,Fe=>C,Fe+",hmrate,2.6e-9,0.,0.); /* TH85    */
00096         if(co.lgUMISTrates) 
00097                 newreact("CO,lnu=>C,O,lnu",co_lnu_c_o_lnu,1.,0.,0.);/*  Inner shell photoionization???  */
00098         newreact("PHOTON,CO=>C,O",th85rate_co,2.0e-10,3.2,0.);/*  UMIST  */
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                 /* fprintf(stderr,"REA: %d %d\n",gv.lgDustOn, mole.lgGrain_mole_deplete); */
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.);/*   */      /* >>chng 06 mar 05, include missing factor 8/PI in average speed of molecules, PvH */
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); /* UMIST    */
00115         newreact("H-,HCO+=>CO,H2",hmrate,0.00000023,-0.5,0); /* UMIST    */
00116         newreact("H2+,CO=>HCO+,H",hmrate,2.16e-9,0,0); /* UMIST  */
00117         newreact("H2+,CO=>CO+,H2",hmrate,6.4e-10,0,0); /* UMIST  */
00118         newreact("H3+,CO=>HCO+,H2",hmrate,1.7e-9,0,0); /* UMIST  */
00119         newreact("He+,CO=>O+,C,He",hmrate,0.00000000000000014,-0.5,0); /* UMIST  */
00120         newreact("He+,CO=>O,C+,He",hmrate,1.6e-9,0,0); /* UMIST  */
00121         newreact("CRPHOT,CO=>C,O",crnurate,2. * 10,0.,0.); /* UMIST      */
00122         newreact("CRP,CO=>CO+,e-",hmrate,0.000000000000000039,0.,0.); /* UMIST   */
00123         newreact("C,CO=>C2,O",hmrate,2.94e-11,0.5,58025); /* UMIST       */
00124         newreact("O,C2=>CO,C",hmrate,5.e-11,0.5,0); /* UMIST     */
00125         newreact("C2,O2=>CO,CO",hmrate,1.83e-12,0,0); /* UMIST   */
00126         newreact("C2,O2+=>CO+,CO",hmrate,4.1e-10,0,0); /* UMIST  */
00127         newreact("C2,CO+=>CO,C2+",hmrate,8.4e-10,0,0); /* UMIST  */
00128         newreact("C2+,O2=>CO+,CO",hmrate,8.e-10,0,0); /* UMIST   */
00129         newreact("C,CO+=>CO,C+",hmrate,1.1e-10,0,0); /* UMIST    */
00130         newreact("C,HCO+=>CO,CH+",hmrate,1.1e-9,0,0); /* UMIST   */
00131         newreact("C,O=>CO,PHOTON",hmrate,2.1E-19,0,0); /* UMIST  */
00132         newreact("C,O2=>CO,O",hmrate,3.3e-11,0,0); /* UMIST      */
00133         newreact("C,OH=>CO,H",hmrate,1.1e-10,0.5,0); /* UMIST    */
00134         newreact("C,SiO+=>Si+,CO",hmrate,1.0e-9,0,0); /* UMIST   */
00135         /* >>chng 05 aug 17, NA, need to use UMIST rate for PDR comparison, even though the rate is 
00136          * an order of magnitude too small at 50 K */
00137         if(co.lgProtElim)
00138         {
00139                 if(!co.lgUMISTrates)
00140                         newreact("C+,OH=>CO,H+",hmrate,7.7e-10,0.,0.); /* UMIST; Dubernet et al. 1992, ApJ, 239, 855     */
00141                 else
00142                         newreact("C+,OH=>CO,H+",hmrate,2.7e-9,-0.3508,0); /* UMIST; Dubernet et al. 1992, ApJ, 239, 855  */
00143         }
00144         if(!co.lgUMISTrates)
00145                 newreact("C+,OH=>CO+,H",hmrate,7.7e-10,0.,0.);/*  UMIST; Dubernet et al. 1992, ApJ, 239, 855     */
00146         else
00147                 newreact("C+,OH=>CO+,H",hmrate,2.7e-9,-0.3508,0); /* UMIST; Dubernet et al. 1992, ApJ, 239, 855  */
00148         newreact("C+,SiO=>Si+,CO",hmrate,5.4e-10,0,0); /* UMIST  */
00149         newreact("C+,O2=>CO,O+",hmrate,6.2e-10,0,0); /* UMIST    */
00150         newreact("O,CH2=>CO,H,H",hmrate,1.33e-10,0,0); /* UMIST  */
00151         newreact("O,CH2=>CO,H2",hmrate,8.e-11,0,0); /* UMIST     */
00152         newreact("O,CO+=>CO,O+",hmrate,1.4e-10,0,0); /* UMIST    */
00153         newreact("O+,CO=>CO+,O",hmrate,4.9e-12,0.5,4580); /* UMIST       */
00154         newreact("CH,CO+=>CO,CH+",hmrate,3.2e-10,0,0); /* UMIST  */
00155         newreact("CH,HCO+=>CO,CH2+",hmrate,6.3e-10,0,0); /* UMIST        */
00156         newreact("CH,O2=>CO,OH",hmrate,2.6e-11,0,0); /* UMIST    */
00157         newreact("CH2,CO+=>CO,CH2+",hmrate,4.3e-10,0,0); /* UMIST        */
00158         newreact("CH2,HCO+=>CO,CH3+",hmrate,8.6e-10,0,0); /* UMIST       */
00159         newreact("CH2,O2=>CO,H2O",hmrate,2.48e-10,-3.3,1443); /* UMIST   */
00160         newreact("CO+,O2=>O2+,CO",hmrate,1.2e-10,0,0); /* UMIST  */
00161         newreact("H2O,CO+=>CO,H2O+",hmrate,1.72e-9,0,0); /* UMIST        */
00162         newreact("H2O,HCO+=>CO,H3O+",hmrate,2.5e-9,0,0); /* UMIST        */
00163         newreact("H2O+,CO=>HCO+,OH",hmrate,5.0e-10,0,0); /* UMIST        */
00164         newreact("HCO+,SiH=>SiH2+,CO",hmrate,8.7e-10,0,0); /* UMIST      */
00165         newreact("HCO+,SiO=>SiOH+,CO",hmrate,7.9e-10,0,0); /* UMIST      */
00166         newreact("OH,CO+=>CO,OH+",hmrate,3.1e-10,0,0); /* UMIST  */
00167         newreact("OH,HCO+=>CO,H2O+",hmrate,6.2e-10,0,0); /* UMIST        */
00168         newreact("OH+,CO=>HCO+,O",hmrate,1.05e-9,0,0); /* UMIST  */
00169         newreact("CO+,CH4=>CO,CH4+",hmrate,7.93e-10,0,0); /* UMIST     */
00170         newreact("CO,CH4+=>HCO+,CH3",hmrate,1.4e-9,0,0); /* UMIST     */
00171         newreact("CO,CH5+=>HCO+,CH4",hmrate,1.0e-9,0,0); /* UMIST     */
00172         newreact("C,NO=>CO,N",hmrate,4.65e-11,0,0); /* UMIST   */
00173         newreact("C,OCN=>CO,CN",hmrate,4.0e-11,0.5,0); /* UMIST   */
00174         newreact("C,SO=>S,CO",hmrate,7.2e-11,0,0); /* UMIST   */
00175         newreact("O,CN=>CO,N",hmrate,4.36e-11,0.46,364); /* UMIST   */
00176         newreact("O,HCN=>CO,NH",hmrate,0.00000000000073,1.14,3742); /* UMIST   */
00177         newreact("O,OCN=>NO,CO",hmrate,9.43e-11,-0.09,100); /* UMIST   */
00178         newreact("O,CS=>S,CO",hmrate,2.48e-10,-0.65,783); /* UMIST   */
00179         newreact("O,OCS=>SO,CO",hmrate,1.6e-11,0,2150); /* UMIST   */
00180         newreact("OH,HCN=>CO,NH2",hmrate,1.07e-13,0,5892); /* UMIST   */
00181         newreact("CN,NO=>N2,CO",hmrate,1.79e-10,0,4040); /* UMIST   */
00182         newreact("CN,O2=>NO,CO",hmrate,0.00000000000053,0,0); /* UMIST   */
00183         newreact("CO,HS=>OCS,H",hmrate,0.0000000000000595,1.12,8330); /* UMIST   */
00184         newreact("H+,OCS=>HS+,CO",hmrate,2.1e-9,0,0); /* UMIST   */
00185         newreact("He+,OCS=>S+,CO,He",hmrate,7.6e-10,0,0); /* UMIST   */
00186         newreact("C+,SO=>S+,CO",hmrate,2.6e-10,0,0); /* UMIST   */
00187         newreact("C+,OCS=>CS+,CO",hmrate,1.6e-9,0,0); /* UMIST   */
00188         newreact("CH+,OCS=>HCS+,CO",hmrate,1.05e-9,0,0); /* UMIST   */
00189         newreact("N+,CO=>NO+,C",hmrate,1.45e-10,0,0); /* UMIST   */
00190         newreact("N+,OCS=>S+,CO,N",hmrate,3.08e-10,0,0); /* UMIST   */
00191         newreact("NH+,CO=>HCO+,N",hmrate,4.41e-10,0,0); /* UMIST   */
00192         newreact("NH+,CO=>OCN+,H",hmrate,5.39e-10,0,0); /* UMIST   */
00193         newreact("NH,HCO+=>CO,NH2+",hmrate,6.4e-10,0,0); /* UMIST   */
00194         newreact("NH2,HCO+=>CO,NH3+",hmrate,8.9e-10,0,0); /* UMIST   */
00195         newreact("NH3,HCO+=>CO,NH4+",hmrate,2.2e-9,0,0); /* UMIST   */
00196         newreact("CN+,O2=>NO+,CO",hmrate,8.6e-11,0,0); /* UMIST   */
00197         newreact("HCN+,CO=>HCO+,CN",hmrate,1.4e-10,0,0); /* UMIST   */
00198         newreact("CO,HNO+=>NO,HCO+",hmrate,1.0e-10,0,0); /* UMIST   */
00199         newreact("N2+,OCS=>S+,N2,CO",hmrate,1.04e-9,0,0); /* UMIST   */
00200         newreact("HCO+,S=>HS+,CO",hmrate,3.3e-10,0,0); /* UMIST   */
00201         newreact("HCO+,CS=>HCS+,CO",hmrate,1.2e-9,0,0); /* UMIST   */
00202         newreact("NH,CO+=>CO,NH+",hmrate,3.2e-10,0,0); /* UMIST   */
00203         newreact("NH2,CO+=>CO,NH2+",hmrate,4.5e-10,0,0); /* UMIST   */
00204         newreact("NH3,CO+=>CO,NH3+",hmrate,2.02e-9,0,0); /* UMIST   */
00205         newreact("CN+,CO=>CO+,CN",hmrate,6.3e-10,0,0); /* UMIST   */
00206         newreact("HCN,CO+=>CO,HCN+",hmrate,3.4e-9,0,0); /* UMIST   */
00207         newreact("CO,N2+=>N2,CO+",hmrate,7.4e-11,0,0); /* UMIST   */
00208         newreact("CO+,NO=>NO+,CO",hmrate,3.3e-10,0,0); /* UMIST   */
00209         newreact("OCN+,e-=>CO,N",hmrate,0.0000003,-0.5,0); /* UMIST   */
00210         newreact("OCS+,e-=>S,CO",hmrate,0.00000015,-0.5,0); /* UMIST   */
00211         newreact("CO,S=>OCS,PHOTON",hmrate,1.6e-17,-1.5,0); /* UMIST   */
00212         newreact("OCS,PHOTON=>S,CO",th85rate,3.7e-9,0.,0.); /* UMIST   */
00213         newreact("OCS,CRP=>S,CO",crnurate,5360 * 2,0.,0.); /* UMIST   */
00214         newreact("N+,CO=>CO+,N",hmrate,8.25e-10,0,0); /* UMIST   */
00215         newreact("CO+,S=>S+,CO",hmrate,1.1e-9,0,0); /* UMIST   */
00216         newreact("O,CCl=>Cl,CO",hmrate,0.0000000000996,0,0); /* UMIST   */
00217         newreact("CO,H2Cl+=>HCl,HCO+",hmrate,0.00000000078,0,0); /* UMIST   */
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); /* UMIST      */
00233         newreact("e-,CH2+=>C,H,H",hmrate,0.000000403,-0.6,0); /* UMIST   */
00234         newreact("e-,CH3+=>CH,H,H",hmrate,0.000000056,-0.5,0); /* UMIST  */
00235         newreact("e-,CH3+=>CH3,PHOTON",hmrate,1.1e-10,-0.5,0); /* UMIST  */
00236 
00237         newreact("e-,H2O+=>OH,H",hmrate,0.0000000792,-0.5,0); /* UMIST   */
00238         newreact("e-,H2O+=>O,H,H",hmrate,0.000000245,-0.5,0); /* UMIST   */
00239         newreact("e-,H2O+=>O,H2",hmrate,0.000000036,-0.5,0); /* UMIST    */
00240         newreact("e-,H3O+=>H2O,H",hmrate,0.000000108,-0.5,0); /* UMIST   */
00241         newreact("e-,H3O+=>OH,H,H",hmrate,0.000000258,-0.5,0); /* UMIST  */
00242         newreact("e-,H3O+=>OH,H2",hmrate,0.0000000645,-0.5,0); /* UMIST  */
00243         newreact("e-,H3O+=>O,H2,H",hmrate,5.59e-9,-0.5,0); /* UMIST      */
00244         newreact("e-,O2+=>O,O",hmrate,0.000000195,-0.7,0); /* UMIST      */
00245         newreact("e-,OH+=>O,H",hmrate,0.0000000375,-0.5,0); /* UMIST     */
00246         newreact("e-,SiH2+=>SiH,H",hmrate,0.00000015,-0.5,0); /* UMIST   */
00247         newreact("e-,SiH2+=>Si,H,H",hmrate,0.0000002,-0.5,0); /* UMIST   */
00248         newreact("e-,SiH2+=>Si,H2",hmrate,0.00000015,-0.5,0); /* UMIST   */
00249         newreact("e-,SiO+=>Si,O",hmrate,0.0000002,-0.5,0); /* UMIST      */
00250         newreact("e-,SiOH+=>SiO,H",hmrate,0.00000015,-0.5,0); /* UMIST   */
00251         newreact("e-,SiOH+=>Si,OH",hmrate,0.00000015,-0.5,0); /* UMIST   */
00252         newreact("e-,CH5+=>CH3,H2",hmrate,0.00000055,-0.3,0); /* UMIST     */
00253         newreact("e-,CH5+=>CH4,H",hmrate,0.00000055,-0.3,0); /* UMIST     */
00254         newreact("e-,CH4+=>CH3,H",hmrate,0.000000175,-0.5,0); /* UMIST     */
00255         newreact("e-,CH4+=>CH2,H,H",hmrate,0.000000175,-0.5,0); /* UMIST     */
00256         newreact("C2+,e-=>C,C",hmrate,0.0000003,-0.5,0); /* UMIST        */
00257         newreact("NH+,e-=>N,H",hmrate,0.000000043,-0.5,0); /* UMIST   */
00258         newreact("NH2+,e-=>N,H,H",hmrate,0.000000198,-0.5,0); /* UMIST   */
00259         newreact("NH2+,e-=>NH,H",hmrate,0.000000102,-0.5,0); /* UMIST   */
00260         newreact("NH3+,e-=>NH,H,H",hmrate,0.000000155,-0.5,0); /* UMIST   */
00261         newreact("NH3+,e-=>NH2,H",hmrate,0.000000155,-0.5,0); /* UMIST   */
00262         newreact("NH4+,e-=>NH2,H,H",hmrate,0.000000286,-0.5,0); /* UMIST   */
00263         newreact("NH4+,e-=>NH2,H2",hmrate,0.000000137,-0.5,0); /* UMIST   */
00264         newreact("NH4+,e-=>NH3,H",hmrate,0.000000938,-0.5,0); /* UMIST   */
00265         newreact("CN+,e-=>N,C",hmrate,0.00000018,-0.5,0); /* UMIST   */
00266         newreact("HCN+,e-=>CN,H",hmrate,0.0000002,-0.5,0); /* UMIST   */
00267         newreact("N2+,e-=>N,N",hmrate,0.000000036,-0.42,0); /* UMIST   */
00268         newreact("NO+,e-=>O,N",hmrate,0.00000043,-0.37,0); /* UMIST   */
00269         newreact("HNO+,e-=>NO,H",hmrate,0.0000003,-0.5,0); /* UMIST   */
00270         newreact("HS+,e-=>S,H",hmrate,0.0000002,-0.5,0); /* UMIST   */
00271         newreact("SiN+,e-=>Si,N",hmrate,0.0000002,-0.5,0); /* UMIST   */
00272         newreact("CS+,e-=>S,C",hmrate,0.0000002,-0.5,0); /* UMIST   */
00273         newreact("HCS+,e-=>CS,H",hmrate,0.00000005,-0.75,0); /* UMIST   */
00274         newreact("NO2+,e-=>NO,O",hmrate,0.0000003,-0.5,0); /* UMIST   */
00275         newreact("NS+,e-=>S,N",hmrate,0.0000002,-0.5,0); /* UMIST   */
00276         newreact("SO+,e-=>S,O",hmrate,0.0000002,-0.5,0); /* UMIST   */
00277         newreact("OCS+,e-=>CS,O",hmrate,0.00000015,-0.5,0); /* UMIST   */
00278         newreact("S2+,e-=>S,S",hmrate,0.0000002,-0.5,0); /* UMIST   */
00279         newreact("HCl+,e-=>Cl,H",hmrate,0.0000003,-0.5,0); /* UMIST   */
00280         newreact("H2Cl+,e-=>Cl,H,H",hmrate,0.00000027,-0.5,0); /* UMIST   */
00281         newreact("H2Cl+,e-=>HCl,H",hmrate,0.00000003,-0.5,0); /* UMIST   */
00282         newreact("CCl+,e-=>Cl,C",hmrate,0.0000003,-0.5,0); /* UMIST   */
00283         newreact("H2CCl+,e-=>CCl,H,H",hmrate,0.0000003,-0.5,0); /* UMIST   */
00284         newreact("ClO+,e-=>Cl,O",hmrate,0.0000002,-0.5,0); /* UMIST   */
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); /* Herbst */
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); /* Herbst */
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         /* >>chng 06 Apr 13, add N2H+ to chemistry.  which 
00298          * should improve modeling of nitrogen chemistry, in 
00299          * particular NH and N2 */
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.); /* UMIST   */
00303         newreact("NH,PHOTON=>N,H",th85rate,5.0e-10,0.,0.); /* UMIST   */
00304         newreact("NH2,PHOTON=>NH,H",th85rate,3.9e-10,0.,0.); /* UMIST   */
00305         newreact("NH2,PHOTON=>NH2+,e-",th85rate,1.73e-10,0.,0.); /* UMIST   */
00306         newreact("NH3,PHOTON=>NH3+,e-",th85rate,1.8e-10,0.,0.); /* UMIST   */
00307         newreact("NH3,PHOTON=>NH,H2",th85rate,3.3e-10,0.,0.); /* UMIST   */
00308         newreact("NH3,PHOTON=>NH2,H",th85rate,1.1e-9,0.,0.); /* UMIST   */
00309         newreact("CN,PHOTON=>N,C",th85rate,1.1e-9,0.,0.);/*  UMIST   */ /* >>chng 06 jun 01, comment out "??" - in more than one time*/
00310         newreact("HCN,PHOTON=>CN,H",th85rate,1.3e-9,0.,0.); /* UMIST   */
00311         newreact("N2,PHOTON=>N,N",th85rate,2.3e-10,0.,0.); /* UMIST   */
00312         newreact("NO,PHOTON=>O,N",th85rate,4.3e-10,0.,0.); /* UMIST   */
00313         newreact("NO,PHOTON=>NO+,e-",th85rate,2.6e-10,0.,0.); /* UMIST   */
00314         newreact("HNO,PHOTON=>NO,H",th85rate,1.7e-10,0.,0.); /* UMIST   */
00315         newreact("HS,PHOTON=>S,H",th85rate,9.7e-10,0.,0.); /* UMIST   */
00316         newreact("HS+,PHOTON=>S+,H",th85rate,3.e-10,0.,0.); /* UMIST   */
00317         newreact("OCN,PHOTON=>CN,O",th85rate,1.0e-11,0.,0.); /* UMIST   */
00318         newreact("CS,PHOTON=>S,C",th85rate,9.7e-10,0.,0.); /* UMIST   */
00319         newreact("CS+,PHOTON=>S+,C",th85rate,2.0e-10,0.,0.); /* UMIST   */
00320         newreact("CS,PHOTON=>CS+,e-",th85rate,2.0e-10,0.,0.); /* UMIST   */
00321         newreact("NO2,PHOTON=>NO,O",th85rate,1.2e-9,0.,0.); /* UMIST   */
00322         newreact("NS,PHOTON=>S,N",th85rate,1.0e-11,0.,0.); /* UMIST   */
00323         newreact("SO,PHOTON=>S,O",th85rate,3.7e-9,0.,0.); /* UMIST   */
00324         newreact("SO,PHOTON=>SO+,e-",th85rate,6.e-10,0.,0.); /* UMIST   */
00325         newreact("OCS,PHOTON=>OCS+,e-",th85rate,4.2e-10,0.,0.); /* UMIST   */
00326         newreact("NH,CRP=>NH+,e-",crnurate,500 * 2,0.,0.); /* UMIST   */
00327         newreact("NH,CRP=>N,H",crnurate,500 * 2,0.,0.); /* UMIST   */
00328         newreact("NH2,CRP=>NH,H",crnurate,81 * 2,0.,0.); /* UMIST   */
00329         newreact("NH2,CRP=>NH2+,e-",crnurate,610 * 2,0.,0.); /* UMIST   */
00330         newreact("NH3,CRP=>NH3+,e-",crnurate,543 * 2,0.,0.); /* UMIST   */
00331         newreact("NH3,CRP=>NH,H2",crnurate,541 * 2,0.,0.); /* UMIST   */
00332         newreact("NH3,CRP=>NH2,H",crnurate,1325 * 2,0.,0.); /* UMIST   */
00333         newreact("CN,CRP=>N,C",crnurate,10580 * 2,0.,0.); /* UMIST   */
00334         newreact("HCN,CRP=>CN,H",crnurate,3114 * 2,0.,0.); /* UMIST   */
00335         newreact("N2,CRP=>N,N",crnurate,50 * 2,0.,0.); /* UMIST   */
00336         newreact("NO,CRP=>O,N",crnurate,427 * 2,0.,0.); /* UMIST   */
00337         newreact("NO,CRP=>NO+,e-",crnurate,430 * 2,0.,0.); /* UMIST   */
00338         newreact("HNO,CRP=>NO,H",crnurate,1000 * 2,0.,0.); /* UMIST   */
00339         newreact("HS,CRP=>S,H",crnurate,500 * 2,0.,0.); /* UMIST   */
00340         newreact("OCN,CRP=>CN,O",crnurate,1500 * 2,0.,0.); /* UMIST   */
00341         newreact("CS,CRP=>S,C",crnurate,500 * 2,0.,0.); /* UMIST   */
00342         newreact("CS,CRP=>CS+,e-",crnurate,500 * 2,0.,0.); /* UMIST   */
00343         newreact("NO2,CRP=>NO,O",crnurate,1500 * 2,0.,0.); /* UMIST   */
00344         newreact("NS,CRP=>S,N",crnurate,500 * 2,0.,0.); /* UMIST   */
00345         newreact("SO,CRP=>S,O",crnurate,500 * 2,0.,0.); /* UMIST   */
00346         newreact("SO,CRP=>SO+,e-",crnurate,500 * 2,0.,0.); /* UMIST   */
00347         newreact("OCS,CRP=>OCS+,e-",crnurate,1444 * 2,0.,0.); /* UMIST   */
00348         newreact("PHOTON,CH=>CH+,e-",th85rate,7.6e-10,2.8,0.); /*  UMIST         */     /* >>chng 06 jun 01, comment out "??4.2e-10*TH85_field;" - in more than one time*/
00349         newreact("PHOTON,CH=>C,H",th85rate,8.6e-10,1.2,0.); /*  UMIST    */     /* >>chng 06 jun 01, comment out "??1.3e-9*TH85_field;" - in more than one time*/
00350         newreact("PHOTON,CH+=>C+,H",th85rate,2.5e-10,2.5,0.); /*  UMIST  */
00351         newreact("PHOTON,CH2=>CH2+,e-",th85rate,1.0e-9,2.3,0.); /*  UMIST        */
00352         newreact("PHOTON,CH2=>CH,H",th85rate,7.2e-10,1.7,0.); /*  UMIST  */
00353         newreact("PHOTON,CH2+=>CH+,H",th85rate,1.7e-9,1.7,0.); /*  UMIST         */
00354         newreact("PHOTON,CH3+=>CH2+,H",th85rate,1.0e-9,1.7,0.); /*  UMIST        */
00355         newreact("PHOTON,CH3+=>CH+,H2",th85rate,1.0e-9,1.7,0.); /*  UMIST        */
00356         newreact("PHOTON,H2O=>H2O+,e-",th85rate,3.3e-11,3.9,0.); /*  UMIST       */
00357         newreact("PHOTON,H2O=>OH,H",th85rate,5.9e-10,1.7,0.); /*  UMIST  */
00358         newreact("PHOTON,O2=>O2+,e-",th85rate,5.6e-11,3.7,0.); /*  UMIST         */
00359         newreact("PHOTON,O2=>O,O",th85rate,6.9e-10,1.8,0.); /*  UMIST    */
00360         newreact("PHOTON,OH=>OH+,e-",th85rate,1.6e-12,3.1,0.); /*  UMIST         */
00361         newreact("PHOTON,OH=>O,H",th85rate,3.5e-10,1.7,0.); /*  UMIST    */
00362         newreact("PHOTON,OH+=>O,H+",th85rate,1.e-12,1.8,0.); /*  UMIST   */
00363         newreact("PHOTON,SiH=>Si,H",th85rate,2.8e-9,1.1,0.); /*  UMIST   */
00364         newreact("PHOTON,SiO=>Si,O",th85rate,1.0e-10,2.3,0.); /*  UMIST  */
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.); /* UMIST   */
00368         newreact("CCl,PHOTON=>Cl,C",th85rate,0.0000000001,0.,0.); /* UMIST   */
00369         newreact("ClO,PHOTON=>Cl,O",th85rate,0.0000000001,0.,0.);/*  UMIST   */
00370         newreact("HCl,CRPHOT=>Cl,H",crnurate,2*610,0.,0.); /* UMIST   */
00371         newreact("CCl,CRPHOT=>Cl,C",crnurate,2*500,0.,0.); /* UMIST   */
00372         newreact("ClO,CRPHOT=>Cl,O",crnurate,2*500,0.,0.); /* UMIST   */
00373         newreact("cr,CH=>C,H",crnurate,2. * 756,0.,0.); /* UMIST         */
00374         newreact("cr,CH+=>C+,H",crnurate,2. * 183,0.,0.); /* UMIST       */
00375         newreact("cr,H2O=>OH,H",crnurate,2. * 979,0.,0.); /* UMIST       */
00376         newreact("cr,O2=>O2+,e-",crnurate,2. *88,0.,0.); /* UMIST        */
00377         newreact("cr,O2=>O,O",crnurate,2. *730,0.,0.); /* UMIST  */
00378         newreact("cr,OH=>O,H",crnurate,2. *522,0.,0.); /* UMIST  */
00379         newreact("cr,SiH=>Si,H",crnurate,2. *500,0.,0.); /* UMIST        */
00380         newreact("cr,SiO=>Si,O",crnurate,2. *500,0.,0.); /* UMIST        */
00381         newreact("PHOTON,CH3=>CH3+,e-",th85rate,1.0e-10,2.1,0.); /*  UMIST     */
00382         newreact("PHOTON,CH3=>CH2,H",th85rate,2.5e-10,1.9,0.); /*  UMIST     */
00383         newreact("PHOTON,CH3=>CH,H2",th85rate,2.5e-10,1.9,0.); /*  UMIST     */
00384         newreact("CRPHOT,CH3=>CH3+,e-",crnurate,2.*500,0.,0.); /* UMIST     */
00385         newreact("CRPHOT,CH3=>CH2,H",crnurate,2.*500,0.,0.); /* UMIST     */
00386         newreact("CRPHOT,CH3=>CH,H2",crnurate,2.*500,0.,0.); /* UMIST     */
00387         newreact("PHOTON,CH4=>CH3,H",th85rate,2.2e-10,2.2,0.); /*  UMIST     */
00388         newreact("PHOTON,CH4=>CH2,H2",th85rate,9.8e-10,2.2,0.); /*  UMIST     */
00389         newreact("PHOTON,CH4=>CH,H2,H",th85rate,2.2e-10,2.2,0.); /*  UMIST     */
00390         newreact("CRPHOT,CH4=>CH2,H2",crnurate,2.*2272,0.,0.); /* UMIST     */
00391         newreact("C2,PHOTON=>C,C",th85rate,4.7e-11,0.,0.); /* UMIST      */     /*>>chng 05 dec 17 The rate for this reaction comes from Eric Herbst's website */
00392         newreact("C2,PHOTON=>C2+,e-",th85rate,1e-10,0.,0.); /* UMIST     */     /*>>chng 05 dec 17 The rate for this reaction comes from Eric Herbst's website */
00393         newreact("C2,cr=>C,C",crnurate,2. *500,0.,0.); /* UMIST  */
00394         newreact("C2+,PHOTON=>C+,C",th85rate,1.0e-11,0.,0.); /* UMIST    */
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); /* UMIST  */
00408         newreact("H,OH=>O,H,H",hmrate,6.0e-9,0,50900); /* UMIST  */
00409         newreact("H,H2O=>OH,H,H",hmrate,5.8e-9,0,52900); /* UMIST        */
00410         if(!co.lgFederman)
00411         {
00412                 newreact("O,CH=>CO,H",hmrate,6.6e-11,0.,0.);/*  UMIST */
00413                 newreact("e-,CH2+=>CH,H",hmrate,0.00000016,-0.6,0);/*  UMIST */
00414                 newreact("e-,CH2+=>C,H2",hmrate,0.0000000768,-0.6,0); /* UMIST   */
00415                 newreact("e-,CH3+=>C,H2,H",hmrate,0.000000105,-0.5,0); /* UMIST; Federman        */
00416                 newreact("e-,CH3+=>CH2,H",hmrate,0.00000014,-0.5,0); /* UMIST;Federman   */
00417                 newreact("e-,CH3+=>CH,H2",hmrate,0.000000049,-0.5,0); /* UMIST; Federman         */
00418                 newreact("e-,CO+=>C,O",hmrate,0.0000002,-0.48,0); /* UMIST; Federman     */
00419                 newreact("H,CH=>C,H2",hmrate,2.7e-11,0.38,2200); /* UMIST; Federman      */     /* >>chng 06 Feb 27 -- NPA  TH85 has a temperature barrier for this reaction, and the Meudon PDR code datafile does as well.  Use the temperature barrier of 2200 K */
00420                 newreact("H2,CO+=>HCO+,H",hmrate,1.8e-9,0.,0.); /* UMIST;Federman;       */
00421                 newreact("H2,CH2+=>CH3+,H",hmrate,1.6e-9,0.,0.); /*  UMIST;Federman;*/
00422                 newreact("H2,C+=>CH2+,PHOTON",hmrate,0.0000000000000004,-0.2,0); /* UMIST;Federman       */
00423                 newreact("N,C2=>CN,C",hmrate,5.e-11,0.5,0); /* UMIST; Federman   */
00424                 newreact("C+,CH=>C2+,H",hmrate,27e-9,-0.50,0); /* UMIST;Federman */
00425                 newreact("C+,CH=>CH+,C",hmrate,3.8e-10,0.,0.); /* UMIST;Federman         */
00426                 newreact("O,CH3+=>HCO+,H2",hmrate,4.0e-10,0.,0.); /* UMIST;Federman      */
00427                 newreact("CH,N=>CN,H",hmrate,1.66e-10,-0.09,0); /* UMIST; Federman  */
00428                 newreact("C+,NH=>CN+,H",hmrate,7.8e-10,0.,0.); /* UMIST; Federman   */
00429                 newreact("e-,HCO+=>CO,H",hmrate,0.00000011,-1,0); /* UMIST; Federman     */
00430         }
00431         else
00432         {
00433                 newreact("O,CH=>CO,H",hmrate,9.5e-11,0.5,0); /* UMIST; Federman  */
00434                 newreact("e-,CH2+=>CH,H",hmrate,1.25e-7,-0.5,0); /* UMIST; Federman      */
00435                 newreact("e-,CH2+=>C,H2",hmrate,1.25e-7,-0.5,0); /* UMIST; Federman      */
00436                 newreact("e-,CH3+=>C,H2,H",hmrate,3.5e-8,-0.5,0); /* UMIST; Federman     */
00437                 newreact("e-,CH3+=>CH2,H",hmrate,7.0e-8,-0.5,0); /* UMIST;Federman       */
00438                 newreact("e-,CH3+=>CH,H2",hmrate,2.45e-7,-0.5,0); /* UMIST; Federman     */
00439                 newreact("e-,CO+=>C,O",hmrate,1.0e-7,-0.46,0); /* UMIST; Federman        */
00440                 newreact("H,CH=>C,H2",hmrate,5.0e-11,0.5,2200); /* UMIST; Federman       */     /* >>chng 06 Feb 27 -- NPA  TH85 has a temperature barrier for this reaction, and the Meudon PDR code datafile does as well.  Use the temperature barrier of 2200 K */
00441                 newreact("H2,CO+=>HCO+,H",hmrate,1.4e-9,0.,0.); /* UMIST;Federman;       */
00442                 newreact("H2,CH2+=>CH3+,H",hmrate,1.2e-9,0.,0.); /*  UMIST;Federman;*/
00443                 newreact("H2,C+=>CH2+,PHOTON",hmrate,1.0e-16,0.,0.); /* UMIST;Federman   */
00444                 newreact("N,C2=>CN,C",hmrate,1.7e-11,0.5,0); /* UMIST; Federman  */
00445                 newreact("C+,CH=>C2+,H",hmrate,5.4e-10,0.,0.); /* UMIST;Federman */
00446                 newreact("C+,CH=>CH+,C",hmrate,1.5e-9,0.,0.); /* UMIST;Federman  */
00447                 newreact("O,CH3+=>HCO+,H2",hmrate,4.4e-10,0.,0.); /* UMIST;Federman      */
00448                 newreact("CH,N=>CN,H",hmrate,2e-11,0.5,0); /* UMIST; Federman  */
00449                 newreact("C+,NH=>CN+,H",hmrate,5.0e-10,0.,0.); /* UMIST; Federman   */
00450                 newreact("e-,HCO+=>CO,H",hmrate,2.4e-7,-0.69,0); /* UMIST; Federman      */
00451         }
00452 
00453         newreact("H,CH+=>C+,H2",hmrate,7.5e-10,0,0); /* UMIST    */
00454         newreact("H,CH2=>CH,H2",hmrate,6.64e-11,0,370); /* UMIST         */     /* >>chng 06 Feb 27 -- NPA  TH85 has a temperature barrier for this reaction, and the Meudon PDR code datafile does as well.  Use the temperature barrier of 370 K*/    
00455         newreact("H,CH3+=>CH2+,H2",hmrate,7.0e-10,0,10560); /* UMIST     */
00456         newreact("H,OH=>O,H2",hmrate,0.0000000000000699,2.8,1950); /* UMIST      */
00457         newreact("H,H2O=>OH,H2",hmrate,1.59e-11,1.2,9610); /* UMIST      */
00458         newreact("H,O2=>OH,O",hmrate,2.61e-10,0,8156); /* UMIST  */
00459         newreact("H,O2=>O,O,H",hmrate,6.0e-9,0,52300); /* UMIST  */
00460         newreact("H,C=>CH,PHOTON",hmrate,1.e-17,0,0); /* UMIST   */
00461         newreact("H,C+=>CH+,PHOTON",hmrate,1.7e-17,0,0); /* UMIST        */
00462         newreact("H,OH=>H2O,PHOTON",hmrate,5.26E-18,-5.22,90); /* UMIST  */
00463         newreact("H,O=>OH,PHOTON",hmrate,9.9E-19,-0.38,0); /* UMIST      */
00464         newreact("H-,CH=>CH2,e-",hmrate,1.0e-10,0,0); /* UMIST   */
00465         newreact("H-,C=>CH,e-",hmrate,1.0e-9,0,0); /* UMIST      */
00466         newreact("H-,OH=>H2O,e-",hmrate,1.0e-10,0,0); /* UMIST   */
00467         newreact("H-,O=>OH,e-",hmrate,1.0e-9,0,0); /* UMIST      */
00468         newreact("H-,H3O+=>H2O,H2",hmrate,0.00000023,-0.5,0); /* UMIST   */
00469         newreact("H-,H3O+=>OH,H2,H",hmrate,0.00000023,-0.5,0); /* UMIST  */
00470         newreact("H+,CH=>CH+,H",hmrate,1.9e-9,0,0); /* UMIST     */
00471         newreact("H+,CH2=>CH2+,H",hmrate,1.4e-9,0,0); /* UMIST   */
00472         newreact("H+,H2O=>H2O+,H",hmrate,6.9e-9,0,0); /* UMIST   */
00473         newreact("H+,O2=>O2+,H",hmrate,2.0e-9,0,0); /* UMIST     */
00474         newreact("H+,OH=>OH+,H",hmrate,2.1e-9,0,0); /* UMIST     */
00475         newreact("H+,SiO=>SiO+,H",hmrate,3.3e-9,0,0); /* UMIST   */
00476         newreact("H+,CH2=>CH+,H2",hmrate,1.4e-9,0,0); /* UMIST   */
00477         newreact("H+,SiH=>Si+,H2",hmrate,1.7e-9,0,0); /* UMIST   */
00478         newreact("H2,C=>CH,H",hmrate,6.64e-10,0,11700); /* UMIST         */
00479         newreact("H2,C+=>CH+,H",hmrate,1.0e-10,0,4640); /* UMIST         */
00480         newreact("H2,CH=>CH2,H",hmrate,5.46e-10,0,1943); /* UMIST        */
00481         newreact("H2,CH+=>CH2+,H",hmrate,1.2e-9,0,0); /* UMIST   */
00482         newreact("H2,OH=>H2O,H",hmrate,2.05e-12,1.52,1736); /* UMIST     */
00483         newreact("H2,OH+=>H2O+,H",hmrate,1.01e-9,0,0); /* UMIST  */
00484         newreact("H2,H2O+=>H3O+,H",hmrate,6.4e-10,0,0); /* UMIST         */
00485         newreact("H2,O=>OH,H",hmrate,3.14e-13,2.7,3150); /* UMIST        */
00486         newreact("H2,O+=>OH+,H",hmrate,1.7e-9,0,0); /* UMIST     */
00487         newreact("H2,SiO+=>SiOH+,H",hmrate,3.2e-10,0,0); /* UMIST        */
00488         newreact("H2,CH=>C,H2,H",hmrate,6.0e-9,0,40200); /* UMIST        */
00489         newreact("H2,OH=>O,H2,H",hmrate,6.0e-9,0,50900); /* UMIST        */
00490         newreact("H2,H2O=>OH,H2,H",hmrate,5.8e-9,0,52900); /* UMIST      */
00491         newreact("H2,O2=>O,O,H2",hmrate,6.0e-9,0,52300); /* UMIST        */
00492         newreact("H2,O2=>OH,OH",hmrate,3.16e-10,0,21890); /* UMIST       */
00493         newreact("H2,C=>CH2,PHOTON",hmrate,1.e-17,0,0); /* UMIST         */
00494         newreact("H2,Si+=>SiH2+,PHOTON",hmrate,0.000000000000000003,0,0); /* UMIST       */
00495         newreact("H2+,C=>CH+,H",hmrate,2.4e-9,0,0); /* UMIST     */
00496         newreact("H2+,CH=>CH2+,H",hmrate,7.1e-10,0,0); /* UMIST  */
00497         newreact("H2+,CH2=>CH3+,H",hmrate,1.0e-9,0,0); /* UMIST  */
00498         newreact("H2+,OH=>H2O+,H",hmrate,7.6e-10,0,0); /* UMIST  */
00499         newreact("H2+,H2O=>H3O+,H",hmrate,3.4e-9,0,0); /* UMIST  */
00500         newreact("H2+,O=>OH+,H",hmrate,1.5e-9,0,0); /* UMIST     */
00501         newreact("H2+,CH=>CH+,H2",hmrate,7.1e-10,0,0); /* UMIST  */
00502         newreact("H2+,CH2=>CH2+,H2",hmrate,1.0e-9,0,0); /* UMIST         */
00503         newreact("H2,S=>HS,H",hmrate,1.76e-13,2.88,6126); /* UMIST       *//* >>chng 05 aug 02, NA added this */
00504         newreact("H2+,H2O=>H2O+,H2",hmrate,3.9e-9,0,0); /* UMIST         */
00505         newreact("H2+,O2=>O2+,H2",hmrate,8.e-10,0,0); /* UMIST   */
00506         newreact("H2+,OH=>OH+,H2",hmrate,7.6e-10,0,0); /* UMIST  */
00507         newreact("H3+,C=>CH+,H2",hmrate,2.0e-9,0,0); /* UMIST    */
00508         newreact("H3+,CH=>CH2+,H2",hmrate,1.2e-9,0,0); /* UMIST  */
00509         newreact("H3+,CH2=>CH3+,H2",hmrate,1.7e-9,0,0); /* UMIST         */
00510         newreact("H3+,OH=>H2O+,H2",hmrate,1.3e-9,0,0); /* UMIST  */
00511         newreact("H3+,H2O=>H3O+,H2",hmrate,5.9e-9,0,0); /* UMIST         */
00512         newreact("H3+,O=>OH+,H2",hmrate,8.e-10,0,0); /* UMIST    */
00513         newreact("H3+,SiH=>SiH2+,H2",hmrate,2.0e-9,0,0); /* UMIST        */
00514         newreact("H3+,SiO=>SiOH+,H2",hmrate,2.0e-9,0,0); /* UMIST        */
00515         newreact("He+,CH=>CH+,He",hmrate,5.0e-10,0,0); /* UMIST  */
00516         newreact("He+,H2O=>H2O+,He",hmrate,6.05e-11,0,0); /* UMIST       */
00517         newreact("He+,O2=>O2+,He",hmrate,3.3e-11,0,0); /* UMIST  */
00518         newreact("He+,CH=>C+,H,He",hmrate,1.1e-9,0,0); /* UMIST  */
00519         newreact("He+,CH2=>CH+,H,He",hmrate,7.5e-10,0,0); /* UMIST       */
00520         newreact("He+,OH=>O+,H,He",hmrate,1.1e-9,0,0); /* UMIST  */
00521         newreact("He+,H2O=>OH+,H,He",hmrate,2.86e-10,0,0); /* UMIST      */
00522         newreact("He+,SiH=>Si+,H,He",hmrate,1.8e-9,0,0); /* UMIST        */
00523         newreact("He+,H2O=>OH,H+,He",hmrate,2.04e-10,0,0); /* UMIST      */
00524         newreact("He+,CH2=>C+,H2,He",hmrate,7.5e-10,0,0); /* UMIST       */
00525         newreact("He+,O2=>O+,O,He",hmrate,1.0e-9,0,0); /* UMIST  */
00526         newreact("He+,SiO=>Si+,O,He",hmrate,8.6e-10,0,0); /* UMIST       */
00527         newreact("He+,SiO=>Si,O+,He",hmrate,8.6e-10,0,0); /* UMIST       */
00528         newreact("He+,Si=>Si+,He",hmrate,0.0000000033,0,0); /*  */
00529         newreact("H,CH3=>CH2,H2",hmrate,1.0e-10,0,7600); /* UMIST     */
00530         newreact("H,CH4+=>CH3+,H2",hmrate,1.0e-11,0,0); /* UMIST     */
00531         newreact("H,CH5+=>CH4+,H2",hmrate,2.0e-11,0,0); /* UMIST     */
00532         newreact("H2,CH2=>CH3,H",hmrate,5.18e-11,0.17,6400); /* UMIST     */
00533         newreact("H2,CH=>CH3,PHOTON",hmrate,5.09E-18,-0.71,11.6); /* UMIST     */
00534         newreact("H2,CH3=>CH4,H",hmrate,0.0000000000000686,2.74,4740); /* UMIST     */
00535         newreact("H2,CH4+=>CH5+,H",hmrate,3.3e-11,0,0); /* UMIST     */
00536         newreact("H2,CH3+=>CH5+,PHOTON",hmrate,0.000000000000013,-1,0); /* UMIST     */
00537         newreact("H2+,CH4=>CH3+,H2,H",hmrate,2.3e-9,0,0); /* UMIST     */
00538         newreact("H2+,CH4=>CH4+,H2",hmrate,1.4e-9,0,0); /* UMIST     */
00539         newreact("H2+,CH4=>CH5+,H",hmrate,1.14e-10,0,0); /* UMIST     */
00540         newreact("H3+,CH3=>CH4+,H2",hmrate,2.1e-9,0,0); /* UMIST     */
00541         newreact("H3+,CH4=>CH5+,H2",hmrate,2.4e-9,0,0); /* UMIST     */
00542         newreact("He+,CH3=>CH+,He,H2",hmrate,1.8e-9,0,0); /* UMIST     */
00543         newreact("He+,CH4=>CH+,He,H2,H",hmrate,2.4e-10,0,0); /* UMIST     */
00544         newreact("He+,CH4=>CH2+,He,H2",hmrate,9.5e-10,0,0); /* UMIST     */
00545         newreact("He+,CH4=>CH3,He,H+",hmrate,4.8e-10,0,0); /* UMIST     */
00546         newreact("He+,CH4=>CH3+,He,H",hmrate,8.5e-11,0,0); /* UMIST     */
00547         newreact("He+,CH4=>CH4+,He",hmrate,5.1e-11,0,0); /* UMIST     */
00548         newreact("H-,CH2=>CH3,e-",hmrate,1.0e-9,0,0); /* UMIST     */
00549         newreact("H-,CH3=>CH4,e-",hmrate,1.0e-9,0,0); /* UMIST     */
00550         newreact("H+,CH3=>CH3+,H",hmrate,3.4e-9,0,0); /* UMIST     */
00551         newreact("H+,CH4=>CH3+,H2",hmrate,2.3e-9,0,0); /* UMIST     */
00552         newreact("H+,CH4=>CH4+,H",hmrate,1.5e-9,0,0); /* UMIST     */
00553         newreact("He+,C2=>C+,C,He",hmrate,1.6e-9,0,0); /* UMIST  */
00554         if(hmi.lgLeiden_Keep_ipMH2s) 
00555         {
00556                 newreact("H2*,CH=>C,H2,H",hmrate,6.0e-9,0.,0.); /*  */
00557                 newreact("H2*,OH=>O,H2,H",hmrate,6.0e-9,0.,0.); /*  */
00558                 newreact("H2*,H2O=>OH,H2,H",hmrate,5.8e-9,0.,0.); /*  */
00559                 newreact("H2*,O2=>O,O,H2",hmrate,6.0e-9,0.,0.); /*  */
00560                 newreact("H2*,CH2=>CH3,H",hmrate,5.18e-11,0.17,0); /*  */
00561                 newreact("H2*,CH=>CH3,PHOTON",hmrate,5.09E-18,-0.71,0); /*  */
00562                 newreact("H2*,CH3=>CH4,H",hmrate,0.0000000000000686,2.74,0); /*  */
00563                 newreact("H2*,CH=>CH2,H",hmrate,5.46e-10,0, 0. ); /* Tielens & Hollenbach 1985, Ap. J. 291, 722 Table 9 */
00564                 newreact("H2*,O=>OH,H",hmrate,3.14e-13,2.7, 0. ); /* Tielens & Hollenbach 1985, Ap. J. 291, 722 Table 9 */
00565                 newreact("H2*,OH=>H2O,H",hmrate,2.05e-12,1.52, 0. ); /* Tielens & Hollenbach 1985, Ap. J. 291, 722 Table 9 */
00566                 newreact("H2*,O2=>OH,OH",hmrate,3.16e-10,0, 0. ); /* Tielens & Hollenbach 1985, Ap. J. 291, 722 Table 9 */
00567                 newreact("H2*,C=>CH,H",hmrate,6.64e-10,0, 0. ); /* Tielens & Hollenbach 1985, Ap. J. 291, 722 Table 9 */
00568                 newreact("H2*,C+=>CH+,H",hmrate,1.0e-10,0, 0. ); /* Tielens & Hollenbach 1985, Ap. J. 291, 722 Table 9 */
00569                 newreact("H2*,O+=>OH+,H",hmrate,1.7e-9,0.,0.); /*  */
00570         }
00571         newreact("H2,N=>NH,H",hmrate,1.69e-9,0,18095); /* UMIST   */
00572         newreact("H2,NH=>NH2,H",hmrate,5.96e-11,0,7782); /* UMIST   */
00573         newreact("H2,NH2=>NH3,H",hmrate,2.05e-15,3.89,1400); /* UMIST   */
00574         newreact("H2,CN=>HCN,H",hmrate,0.000000000000404,2.87,820); /* UMIST   */
00575         newreact("H+,HNO=>NO+,H2",hmrate,4.e-9,0,0); /* UMIST   */
00576         newreact("H+,HS=>S+,H2",hmrate,1.6e-9,0,0); /* UMIST   */
00577         newreact("H,HS+=>S+,H2",hmrate,1.1e-10,0,0); /* UMIST   */
00578         newreact("H2+,N=>NH+,H",hmrate,1.9e-9,0,0); /* UMIST   */
00579         newreact("H2,N+=>NH+,H",hmrate,1.0e-9,0,85); /* UMIST   */
00580         newreact("H2,NH+=>N,H3+",hmrate,2.25e-10,0,0); /* UMIST   */
00581         newreact("H2+,NH=>NH2+,H",hmrate,7.6e-10,0,0); /* UMIST   */
00582         newreact("H2,NH+=>NH2+,H",hmrate,1.28e-9,0,0); /* UMIST   */
00583         newreact("H2,NH2+=>NH3+,H",hmrate,2.7e-10,0,0); /* UMIST   */
00584         newreact("H2,NH3+=>NH4+,H",hmrate,0.0000000000002,0,0); /* UMIST   */
00585         newreact("H2+,CN=>HCN+,H",hmrate,1.2e-9,0,0); /* UMIST   */
00586         newreact("H2,CN+=>HCN+,H",hmrate,1.0e-9,0,0); /* UMIST   */
00587         newreact("H2+,NO=>HNO+,H",hmrate,1.1e-9,0,0); /* UMIST   */
00588         newreact("H2,S+=>HS+,H",hmrate,1.1e-10,0,9860); /* UMIST   */
00589         newreact("H2,CS+=>HCS+,H",hmrate,4.5e-10,0,0); /* UMIST   */
00590         newreact("H2,NO2+=>NO+,H2O",hmrate,1.5e-10,0,0); /* UMIST   */
00591         newreact("H3+,NH=>NH2+,H2",hmrate,1.3e-9,0,0); /* UMIST   */
00592         newreact("H3+,NH2=>NH3+,H2",hmrate,1.8e-9,0,0); /* UMIST   */
00593         newreact("H3+,NH3=>NH4+,H2",hmrate,2.7e-9,0,0); /* UMIST   */
00594         newreact("H3+,CN=>HCN+,H2",hmrate,2.0e-9,0,0); /* UMIST   */
00595         newreact("H3+,NO=>HNO+,H2",hmrate,1.1e-9,0,0); /* UMIST   */
00596         newreact("H3+,S=>HS+,H2",hmrate,2.6e-9,0,0); /* UMIST   */
00597         newreact("H3+,CS=>HCS+,H2",hmrate,2.9e-9,0,0); /* UMIST   */
00598         newreact("H3+,NO2=>NO+,OH,H2",hmrate,7.0e-10,0,0); /* UMIST   */
00599         newreact("He+,NH=>N+,He,H",hmrate,1.1e-9,0,0); /* UMIST   */
00600         newreact("He+,NH2=>N+,He,H2",hmrate,8.e-10,0,0); /* UMIST   */
00601         newreact("He+,NH2=>NH+,He,H",hmrate,8.e-10,0,0); /* UMIST   */
00602         newreact("He+,NH3=>NH+,He,H2",hmrate,1.76e-10,0,0); /* UMIST   */
00603         newreact("He+,NH3=>NH2+,He,H",hmrate,1.76e-9,0,0); /* UMIST   */
00604         newreact("He+,CN=>N,C+,He",hmrate,8.8e-10,0,0); /* UMIST   */
00605         newreact("He+,CN=>N+,C,He",hmrate,8.8e-10,0,0); /* UMIST   */
00606         newreact("He+,HCN=>N,CH+,He",hmrate,6.51e-10,0,0); /* UMIST   */
00607         newreact("He+,HCN=>N+,CH,He",hmrate,2.17e-10,0,0); /* UMIST   */
00608         newreact("He+,HCN=>N,C+,He,H",hmrate,7.75e-10,0,0); /* UMIST   */
00609         newreact("He+,HCN=>CN+,He,H",hmrate,1.46e-9,0,0); /* UMIST   */
00610         newreact("He+,N2=>N+,N,He",hmrate,9.6e-10,0,0); /* UMIST   */
00611         newreact("He+,NO=>O+,N,He",hmrate,2.0e-10,0,0); /* UMIST   */
00612         newreact("He+,NO=>O,N+,He",hmrate,1.4e-9,0,0); /* UMIST   */
00613         newreact("He+,HNO=>NO+,He,H",hmrate,1.0e-9,0,0); /* UMIST   */
00614         newreact("He+,HNO=>NO,He,H+",hmrate,1.0e-9,0,0); /* UMIST   */
00615         newreact("He+,HS=>S+,He,H",hmrate,1.7e-9,0,0); /* UMIST   */
00616         newreact("He+,OCN=>CN,O+,He",hmrate,3.0e-9,0,0); /* UMIST   */
00617         newreact("He+,OCN=>CN+,O,He",hmrate,3.0e-9,0,0); /* UMIST   */
00618         newreact("He+,SiN=>Si+,N,He",hmrate,2.0e-9,0,0); /* UMIST   */
00619         newreact("He+,N2O=>N2,O+,He",hmrate,2.76e-10,0,0); /* UMIST   */
00620         newreact("He+,N2O=>N2+,O,He",hmrate,1.24e-9,0,0); /* UMIST   */
00621         newreact("He+,N2O=>NO,N+,He",hmrate,3.e-10,0,0); /* UMIST   */
00622         newreact("He+,N2O=>NO+,N,He",hmrate,4.83e-10,0,0); /* UMIST   */
00623         newreact("He+,CS=>S+,C,He",hmrate,1.3e-9,0,0); /* UMIST   */
00624         newreact("He+,CS=>S,C+,He",hmrate,1.3e-9,0,0); /* UMIST   */
00625         newreact("He+,NS=>S,N+,He",hmrate,1.2e-9,0,0); /* UMIST   */
00626         newreact("He+,NS=>S+,N,He",hmrate,1.2e-9,0,0); /* UMIST   */
00627         newreact("He+,SO=>S,O+,He",hmrate,8.3e-10,0,0); /* UMIST   */
00628         newreact("He+,SO=>S+,O,He",hmrate,8.3e-10,0,0); /* UMIST   */
00629         newreact("He+,OCS=>S,CO+,He",hmrate,7.6e-10,0,0); /* UMIST   */
00630         newreact("He+,OCS=>CS+,O,He",hmrate,7.6e-10,0,0); /* UMIST   */
00631         newreact("He+,OCS=>CS,O+,He",hmrate,7.6e-10,0,0); /* UMIST   */
00632         newreact("He+,S2=>S+,S,He",hmrate,2.0e-9,0,0); /* UMIST   */
00633         newreact("H+,NH=>NH+,H",hmrate,2.1e-9,0,0); /* UMIST   */
00634         newreact("H+,NH2=>NH2+,H",hmrate,2.9e-9,0,0); /* UMIST   */
00635         newreact("H+,NH3=>NH3+,H",hmrate,1.1e-9,0,0); /* UMIST   */
00636         newreact("H,CN+=>CN,H+",hmrate,1.9e-10,0,0); /* UMIST   */
00637         newreact("H+,HCN=>HCN+,H",hmrate,0.0000000105,-0.13,0); /* UMIST   */
00638         newreact("H,HCN+=>HCN,H+",hmrate,3.7e-11,0,0); /* UMIST   */
00639         newreact("H,N2+=>N2,H+",hmrate,1.2e-10,0,0); /* UMIST   */
00640         newreact("H+,NO=>NO+,H",hmrate,2.9e-9,0,0); /* UMIST   */
00641         newreact("H+,HS=>HS+,H",hmrate,1.6e-9,0,0); /* UMIST   */
00642         newreact("H+,SiN=>SiN+,H",hmrate,3.0e-9,0,0); /* UMIST   */
00643         newreact("H+,CS=>CS+,H",hmrate,4.9e-9,0,0); /* UMIST   */
00644         newreact("H+,NS=>NS+,H",hmrate,4.7e-9,0,0); /* UMIST   */
00645         newreact("H+,SO=>SO+,H",hmrate,3.2e-9,0,0); /* UMIST   */
00646         newreact("H+,OCS=>OCS+,H",hmrate,2.1e-9,0,0); /* UMIST   */
00647         newreact("H+,S2=>S2+,H",hmrate,3.0e-9,0,0); /* UMIST   */
00648         newreact("H2+,NH=>NH+,H2",hmrate,7.6e-10,0,0); /* UMIST   */
00649         newreact("H2+,NH2=>NH2+,H2",hmrate,2.1e-9,0,0); /* UMIST   */
00650         newreact("H2+,NH3=>NH3+,H2",hmrate,5.7e-9,0,0); /* UMIST   */
00651         newreact("H2+,CN=>CN+,H2",hmrate,1.2e-9,0,0); /* UMIST   */
00652         newreact("H2+,HCN=>HCN+,H2",hmrate,2.7e-9,0,0); /* UMIST   */
00653         newreact("H2+,NO=>NO+,H2",hmrate,1.1e-9,0,0); /* UMIST   */
00654         newreact("He+,NH3=>NH3+,He",hmrate,2.64e-10,0,0); /* UMIST   */
00655         newreact("He+,N2=>N2+,He",hmrate,6.4e-10,0,0); /* UMIST   */
00656         newreact("H-,N=>NH,e-",hmrate,1.0e-9,0,0); /* UMIST   */
00657         newreact("H-,NH=>NH2,e-",hmrate,1.0e-10,0,0); /* UMIST   */
00658         newreact("H-,NH2=>NH3,e-",hmrate,1.0e-9,0,0); /* UMIST   */
00659         newreact("H-,CN=>HCN,e-",hmrate,1.0e-10,0,0); /* UMIST   */
00660         newreact("H-,NH4+=>NH3,H2",hmrate,0.00000023,-0.5,0); /* UMIST   */
00661         newreact("H-,N+=>N,H",hmrate,0.00000023,-0.5,0); /* UMIST   */
00662         newreact("H2,Cl+=>HCl+,H",hmrate,0.000000001,0,0); /* UMIST   */
00663         newreact("H2,HCl+=>H2Cl+,H",hmrate,0.0000000013,0,0); /* UMIST   */
00664         newreact("H3+,Cl=>HCl+,H2",hmrate,0.000000001,0,0); /* UMIST   */
00665         newreact("H3+,HCl=>H2Cl+,H2",hmrate,0.0000000038,0,0); /* UMIST   */
00666         newreact("He+,HCl=>Cl+,He,H",hmrate,0.0000000033,0,0); /* UMIST   */
00667         newreact("He+,CCl=>Cl,C+,He",hmrate,0.0000000033,0,0); /* UMIST   */
00668         newreact("He+,ClO=>Cl+,O,He",hmrate,0.000000001,0,0); /* UMIST   */
00669         newreact("H+,HCl=>HCl+,H",hmrate,0.0000000033,1,0); /* UMIST   */
00670         newreact("H3+,HNC=>HCNH+,H2",hmrate,0.0000000081,0,0); /*  */
00671         newreact("He+,HNC=>NH+,C,He",hmrate,0.0000000005,0,0); /*  */
00672         newreact("He+,HNC=>N,C+,He,H",hmrate,0.0000000005,0,0); /*  */
00673         newreact("He+,HNC=>CN+,He,H",hmrate,0.0000000005,0,0); /*  */
00674         newreact("H+,HNC=>HCN,H+",hmrate,0.000000001,0,0); /*  */
00675         newreact("H,HNC=>HCN,H",h_hnc_hcn_h,0.000000000000136,4.48,0);/*   */
00676         newreact("H2,HCN+=>HCNH+,H",hmrate,0.0000000009,0,0); /*  */
00677         newreact("H3+,HCN=>HCNH+,H2",hmrate,0.0000000081,0,0); /*  */
00678         newreact("H,C2=>CH,C",hmrate,4.67e-10,0.5,30450); /* UMIST       */
00679         newreact("H+,C2=>C2+,H",hmrate,3.1e-9,0,0); /* UMIST     */
00680         newreact("H2+,C2=>C2+,H2",hmrate,1.1e-9,0,0); /* UMIST   */
00681         newreact("He+,C2=>C2+,He",hmrate,5.0e-10,0,0); /* UMIST  */
00682         newreact("He+,C2H=>C2+,He,H",hmrate,0.000000001,0,0); /*  */
00683         newreact("He+,C2H=>CH+,C,He",hmrate,0.0000000015,0,0); /*  */
00684         newreact("He+,C2H=>CH,C+,He",hmrate,0.0000000015,0,0); /*  */
00685         newreact("H-,C2=>C2H,e-",hmrate,0.00000000235,0,0); /*  */
00686         newreact("H+,C2H=>C2+,H2",hmrate,0.0000000014,0,0); /*  */
00687         newreact("H+,C2H=>C2H+,H",hmrate,0.0000000014,0,0); /*  */
00688         newreact("H2+,C2=>C2H+,H",hmrate,0.0000000015,0,0); /*  */
00689         newreact("H2+,C2H=>C2H+,H2",hmrate,0.0000000014,0,0); /*  */
00690         newreact("H3+,C2=>C2H+,H2",hmrate,0.000000002,0,0); /*  */
00691         newreact("H2,C2+=>C2H+,H",hmrate,0.000000000254,0,0); /*  */
00692         newreact("H+,C3=>C3+,H",hmrate,0.00000000485,0,0); /*  */
00693         newreact("He+,C3=>C2,C+,He",hmrate,0.00000000094,0,0); /*  */
00694         newreact("He+,C2H2=>C2H+,He,H",hmrate,0.000000001,0,0); /*  */
00695         newreact("He+,C3H=>C3+,He,H",hmrate,0.000000002,0,0); /*  */
00696         newreact("He+,C2H2=>C2+,He,H2",hmrate,0.000000002,0,0); /*  */
00697         newreact("He+,C2H2=>CH+,CH,He",hmrate,0.0000000075,0,0); /*  */
00698         newreact("H-,C2H=>C2H2,e-",hmrate,0.000000000294,0,0); /*  */
00699         newreact("H+,C2H2=>C2H2+,H",hmrate,0.00000000086,0,0); /*  */
00700         newreact("H+,C2H2=>C2H+,H2",hmrate,0.00000000077,0,0); /*  */
00701         newreact("H+,C3H=>C3H+,H",hmrate,0.00000000057,0,0); /*  */
00702         newreact("H+,C3H=>C3+,H2",hmrate,0.0000000024,0,0); /*  */
00703         newreact("H2+,C2H=>C2H2+,H",hmrate,0.000000003,0,0); /*  */
00704         newreact("H2+,C2H2=>C2H2+,H2",hmrate,0.0000000014,0,0); /*  */
00705         newreact("H3+,C2H=>C2H2+,H2",hmrate,0.000000002,0,0); /*  */
00706         newreact("H3+,C3=>C3H+,H2",hmrate,0.0000000015,0,0); /*  */
00707         newreact("H2,C2H+=>C2H2+,H",hmrate,0.000000001,0,0); /*  */
00708         newreact("H2,C3+=>C3H+,H",hmrate,0.0000000022,0,0); /*  */
00709         newreact("He+,C2H2=>C2H2+,He",hmrate,0.000000001,0,0); /*  */
00710         newreact("H,C2H3+=>C2H2+,H2",hmrate,0.0000000000000003,-1,0); /*  */
00711         newreact("H2+,C2H2=>C2H3+,H",hmrate,0.0000000014,0,0); /*  */
00712         newreact("H3+,C2H2=>C2H3+,H2",hmrate,0.000000001,0,0); /*  */
00713         newreact("N2,H3+=>N2H+,H2",hmrate,1.8e-9,0.,0.); /* Bohme et al. 1973     */
00714         newreact("NH2+,NH2=>NH3+,NH",hmrate,1.0e-9,0,0); /* UMIST   */
00715         newreact("NH2,OH+=>NH3+,O",hmrate,5.0e-10,0,0); /* UMIST   */
00716         newreact("NH2+,OH=>H2O+,NH",hmrate,7.1e-10,0,0); /* UMIST   */
00717         newreact("NH2+,NH3=>NH4+,NH",hmrate,1.61e-9,0,0); /* UMIST   */
00718         newreact("NH2,NH3+=>NH4+,NH",hmrate,1.0e-11,0,0); /* UMIST   */
00719         newreact("NH2,CH5+=>NH3+,CH4",hmrate,9.9e-10,0,0); /* UMIST   */
00720         newreact("NH2+,H2O=>NH3+,OH",hmrate,1.0e-10,0,0); /* UMIST   */
00721         newreact("NH2+,H2O=>H3O+,NH",hmrate,2.76e-9,0,0); /* UMIST   */
00722         newreact("NH2,H2O+=>NH3+,OH",hmrate,4.9e-10,0,0); /* UMIST   */
00723         newreact("NH2+,H2O=>NH4+,O",hmrate,1.45e-10,0,0); /* UMIST   */
00724         newreact("NH2,H3O+=>H2O,NH3+",hmrate,9.7e-10,0,0); /* UMIST   */
00725         newreact("NH2,HCN+=>CN,NH3+",hmrate,9.0e-10,0,0); /* UMIST   */
00726         newreact("NH2,CO+=>HCO+,NH",hmrate,4.5e-10,0,0); /* UMIST   */
00727         newreact("NH2,HNO+=>NO,NH3+",hmrate,8.8e-10,0,0); /* UMIST   */
00728         newreact("NH2+,O2=>HNO+,OH",hmrate,2.1e-11,0,0); /* UMIST   */
00729         newreact("NH2+,S=>HS+,NH",hmrate,4.4e-10,0,0); /* UMIST   */
00730         newreact("CH4+,NH3=>NH4+,CH3",hmrate,1.15e-9,0,0); /* UMIST   */
00731         newreact("CH4,NH3+=>NH4+,CH3",hmrate,4.8e-10,0,0); /* UMIST   */
00732         newreact("CH4,N2+=>N2,CH2+,H2",hmrate,7.e-11,0,0); /* UMIST   */
00733         newreact("CH4,N2+=>N2,CH3+,H",hmrate,9.3e-10,0,0); /* UMIST   */
00734         newreact("CH4,HNO+=>NO,CH5+",hmrate,1.0e-10,0,0); /* UMIST   */
00735         newreact("CH4,S+=>HCS+,H2,H",hmrate,2.0e-11,0,0); /* UMIST   */
00736         newreact("CH4,CS+=>HCS+,CH3",hmrate,5.0e-10,0,0); /* UMIST   */
00737         newreact("OH+,NH3=>NH4+,O",hmrate,1.2e-9,0,0); /* UMIST   */
00738         newreact("OH,NH3+=>NH4+,O",hmrate,7.0e-10,0,0); /* UMIST   */
00739         newreact("OH+,CN=>HCN+,O",hmrate,1.0e-9,0,0); /* UMIST   */
00740         newreact("OH,HCN+=>CN,H2O+",hmrate,6.3e-10,0,0); /* UMIST   */
00741         newreact("OH+,NO=>HNO+,O",hmrate,6.11e-10,0,0); /* UMIST   */
00742         newreact("OH,HNO+=>NO,H2O+",hmrate,6.2e-10,0,0); /* UMIST   */
00743         newreact("OH+,S=>HS+,O",hmrate,4.3e-10,0,0); /* UMIST   */
00744         newreact("OH+,S=>SO+,H",hmrate,4.3e-10,0,0); /* UMIST   */
00745         newreact("OH,S+=>SO+,H",hmrate,6.1e-10,0,0); /* UMIST   */
00746         newreact("NH3+,NH3=>NH4+,NH2",hmrate,2.2e-9,0,0); /* UMIST   */
00747         newreact("NH3,CH5+=>NH4+,CH4",hmrate,2.5e-9,0,0); /* UMIST   */
00748         newreact("NH3+,H2O=>NH4+,OH",hmrate,1.1e-10,0,0); /* UMIST   */
00749         newreact("NH3,H2O+=>NH4+,OH",hmrate,9.45e-10,0,0); /* UMIST   */
00750         newreact("NH3,H3O+=>NH4+,H2O",hmrate,2.2e-9,0,0); /* UMIST   */
00751         newreact("NH3,CO+=>HCO+,NH2",hmrate,4.12e-11,0,0); /* UMIST   */
00752         newreact("NH3,HNO+=>NO,NH4+",hmrate,1.1e-9,0,0); /* UMIST   */
00753         newreact("NH3,HS+=>S,NH4+",hmrate,9.75e-10,0,0); /* UMIST   */
00754         newreact("NH3,HCS+=>CS,NH4+",hmrate,2.0e-9,0,0); /* UMIST   */
00755         newreact("CH5+,S=>HS+,CH4",hmrate,1.3e-9,0,0); /* UMIST   */
00756         newreact("H2O,CN+=>HCN+,OH",hmrate,1.6e-9,0,0); /* UMIST   */
00757         newreact("H2O,CN+=>HCO+,NH",hmrate,1.6e-10,0,0); /* UMIST   */
00758         newreact("H2O,HCN+=>CN,H3O+",hmrate,1.8e-9,0,0); /* UMIST   */
00759         newreact("H2O,HNO+=>NO,H3O+",hmrate,2.3e-9,0,0); /* UMIST   */
00760         newreact("H2O+,S=>HS+,OH",hmrate,4.3e-10,0,0); /* UMIST   */
00761         newreact("H2O,HS+=>S,H3O+",hmrate,7.8e-10,0,0); /* UMIST   */
00762         newreact("H3O+,CS=>HCS+,H2O",hmrate,1.0e-9,0,0); /* UMIST   */
00763         newreact("CN+,NO=>OCN+,N",hmrate,1.9e-10,0,0); /* UMIST   */
00764         newreact("CN,HNO+=>NO,HCN+",hmrate,8.7e-10,0,0); /* UMIST   */
00765         newreact("CN+,O2=>OCN+,O",hmrate,8.6e-11,0,0); /* UMIST   */
00766         newreact("HCN+,S=>HS+,CN",hmrate,5.7e-10,0,0); /* UMIST   */
00767         newreact("HNO+,S=>HS+,NO",hmrate,1.1e-9,0,0); /* UMIST   */
00768         newreact("O2,S+=>SO+,O",hmrate,1.5e-11,0,0); /* UMIST   */
00769         newreact("O2+,S=>SO+,O",hmrate,5.4e-10,0,0); /* UMIST   */
00770         newreact("O2,CS+=>OCS+,O",hmrate,1.3e-10,0,0); /* UMIST   */
00771         newreact("S,SiO+=>SO,Si+",hmrate,1.0e-9,0,0); /* UMIST   */
00772         newreact("C+,NH3=>NH3+,C",hmrate,5.06e-10,0,0); /* UMIST   */
00773         newreact("C,CN+=>CN,C+",hmrate,1.1e-10,0,0); /* UMIST   */
00774         newreact("C,N2+=>N2,C+",hmrate,1.1e-10,0,0); /* UMIST   */
00775         newreact("C+,NO=>NO+,C",hmrate,5.2e-10,0,0); /* UMIST   */
00776         newreact("C+,SiN=>SiN+,C",hmrate,1.0e-9,0,0); /* UMIST   */
00777         newreact("C,CS+=>CS,C+",hmrate,1.6e-9,0,0); /* UMIST   */
00778         newreact("C+,NS=>NS+,C",hmrate,7.6e-10,0,0); /* UMIST   */
00779         newreact("C+,SO=>SO+,C",hmrate,2.6e-10,0,0); /* UMIST   */
00780         newreact("C+,OCS=>OCS+,C",hmrate,4.0e-10,0,0); /* UMIST   */
00781         newreact("CH,NH2+=>NH2,CH+",hmrate,3.5e-10,0,0); /* UMIST   */
00782         newreact("CH+,NH3=>NH3+,CH",hmrate,4.59e-10,0,0); /* UMIST   */
00783         newreact("CH,CN+=>CN,CH+",hmrate,6.4e-10,0,0); /* UMIST   */
00784         newreact("CH,N2+=>N2,CH+",hmrate,6.3e-10,0,0); /* UMIST   */
00785         newreact("CH+,NO=>NO+,CH",hmrate,7.6e-10,0,0); /* UMIST   */
00786         newreact("N+,NH=>NH+,N",hmrate,3.7e-10,0,0); /* UMIST   */
00787         newreact("N+,NH2=>NH2+,N",hmrate,1.0e-9,0,0); /* UMIST   */
00788         newreact("N+,NH3=>NH3+,N",hmrate,1.97e-9,0,0); /* UMIST   */
00789         newreact("N+,CN=>CN+,N",hmrate,1.1e-9,0,0); /* UMIST   */
00790         newreact("N+,HCN=>HCN+,N",hmrate,1.2e-9,0,0); /* UMIST   */
00791         newreact("N,N2+=>N2,N+",hmrate,1.0e-11,0,0); /* UMIST   */
00792         newreact("N+,NO=>NO+,N",hmrate,4.51e-10,0,0); /* UMIST   */
00793         newreact("N+,OCS=>OCS+,N",hmrate,1.02e-9,0,0); /* UMIST   */
00794         newreact("CH2,NH2+=>NH2,CH2+",hmrate,4.9e-10,0,0); /* UMIST   */
00795         newreact("CH2,CN+=>CN,CH2+",hmrate,8.8e-10,0,0); /* UMIST   */
00796         newreact("CH2,N2+=>N2,CH2+",hmrate,8.7e-10,0,0); /* UMIST   */
00797         newreact("CH2+,NO=>NO+,CH2",hmrate,4.2e-10,0,0); /* UMIST   */
00798         newreact("NH,O+=>O,NH+",hmrate,3.6e-10,0,0); /* UMIST   */
00799         newreact("NH,OH+=>OH,NH+",hmrate,3.6e-10,0,0); /* UMIST   */
00800         newreact("NH+,NH3=>NH3+,NH",hmrate,1.8e-9,0,0); /* UMIST   */
00801         newreact("NH+,H2O=>H2O+,NH",hmrate,1.05e-9,0,0); /* UMIST   */
00802         newreact("NH,CN+=>CN,NH+",hmrate,6.5e-10,0,0); /* UMIST   */
00803         newreact("NH,N2+=>N2,NH+",hmrate,6.5e-10,0,0); /* UMIST   */
00804         newreact("NH+,NO=>NO+,NH",hmrate,7.12e-10,0,0); /* UMIST   */
00805         newreact("NH+,O2=>O2+,NH",hmrate,4.51e-10,0,0); /* UMIST   */
00806         newreact("NH+,S=>S+,NH",hmrate,6.9e-10,0,0); /* UMIST   */
00807         newreact("CH3+,NO=>NO+,CH3",hmrate,1.0e-9,0,0); /* UMIST   */
00808         newreact("O+,NH2=>NH2+,O",hmrate,1.0e-9,0,0); /* UMIST   */
00809         newreact("O+,NH3=>NH3+,O",hmrate,1.2e-9,0,0); /* UMIST   */
00810         newreact("O,CN+=>CN,O+",hmrate,6.5e-11,0,0); /* UMIST   */
00811         newreact("O,HCN+=>HCN,O+",hmrate,6.5e-11,0,0); /* UMIST   */
00812         newreact("O,N2+=>N2,O+",hmrate,1.0e-11,0,0); /* UMIST   */
00813         newreact("O+,NO=>NO+,O",hmrate,1.7e-12,0,0); /* UMIST   */
00814         newreact("O+,OCS=>OCS+,O",hmrate,6.5e-10,0,0); /* UMIST   */
00815         newreact("NH2,OH+=>OH,NH2+",hmrate,5.0e-10,0,0); /* UMIST   */
00816         newreact("NH2+,NH3=>NH3+,NH2",hmrate,6.9e-10,0,0); /* UMIST   */
00817         newreact("NH2,H2O+=>H2O,NH2+",hmrate,4.9e-10,0,0); /* UMIST   */
00818         newreact("NH2,CN+=>CN,NH2+",hmrate,9.1e-10,0,0); /* UMIST   */
00819         newreact("NH2,N2+=>N2,NH2+",hmrate,8.9e-10,0,0); /* UMIST   */
00820         newreact("NH2+,NO=>NO+,NH2",hmrate,7.0e-10,0,0); /* UMIST   */
00821         newreact("NH2,O2+=>O2,NH2+",hmrate,8.7e-10,0,0); /* UMIST   */
00822         newreact("NH2+,S=>S+,NH2",hmrate,4.4e-10,0,0); /* UMIST   */
00823         newreact("CH4+,NH3=>NH3+,CH4",hmrate,1.65e-9,0,0); /* UMIST   */
00824         newreact("CH4+,OCS=>OCS+,CH4",hmrate,4.2e-10,0,0); /* UMIST   */
00825         newreact("OH+,NH3=>NH3+,OH",hmrate,1.2e-9,0,0); /* UMIST   */
00826         newreact("OH,CN+=>CN,OH+",hmrate,6.4e-10,0,0); /* UMIST   */
00827         newreact("OH,N2+=>N2,OH+",hmrate,6.3e-10,0,0); /* UMIST   */
00828         newreact("OH+,NO=>NO+,OH",hmrate,3.59e-10,0,0); /* UMIST   */
00829         newreact("NH3,H2O+=>H2O,NH3+",hmrate,2.21e-9,0,0); /* UMIST   */
00830         newreact("NH3,HCN+=>HCN,NH3+",hmrate,1.68e-9,0,0); /* UMIST   */
00831         newreact("NH3,N2+=>N2,NH3+",hmrate,1.9e-9,0,0); /* UMIST   */
00832         newreact("NH3+,Si=>Si+,NH3",hmrate,1.9e-9,0,0); /* UMIST   */
00833         newreact("NH3+,NO=>NO+,NH3",hmrate,7.2e-10,0,0); /* UMIST   */
00834         newreact("NH3,O2+=>O2,NH3+",hmrate,2.0e-9,0,0); /* UMIST   */
00835         newreact("NH3,S+=>S,NH3+",hmrate,1.44e-9,0,0); /* UMIST   */
00836         newreact("NH3,HS+=>HS,NH3+",hmrate,5.25e-10,0,0); /* UMIST   */
00837         newreact("NH3,SO+=>SO,NH3+",hmrate,1.3e-9,0,0); /* UMIST   */
00838         newreact("H2O,HCN+=>HCN,H2O+",hmrate,1.8e-9,0,0); /* UMIST   */
00839         newreact("H2O,N2+=>N2,H2O+",hmrate,2.3e-9,0,0); /* UMIST   */
00840         newreact("H2O+,NO=>NO+,H2O",hmrate,2.7e-10,0,0); /* UMIST   */
00841         newreact("CN+,HCN=>HCN+,CN",hmrate,1.79e-9,0,0); /* UMIST   */
00842         newreact("CN,N2+=>N2,CN+",hmrate,1.0e-10,0,0); /* UMIST   */
00843         newreact("CN+,NO=>NO+,CN",hmrate,5.7e-10,0,0); /* UMIST   */
00844         newreact("CN+,O2=>O2+,CN",hmrate,2.58e-10,0,0); /* UMIST   */
00845         newreact("CN+,S=>S+,CN",hmrate,1.1e-9,0,0); /* UMIST   */
00846         newreact("HCN,N2+=>N2,HCN+",hmrate,3.9e-10,0,0); /* UMIST   */
00847         newreact("HCN+,NO=>NO+,HCN",hmrate,8.1e-10,0,0); /* UMIST   */
00848         newreact("HCN+,O2=>O2+,HCN",hmrate,3.2e-10,0,0); /* UMIST   */
00849         newreact("HCN+,S=>S+,HCN",hmrate,5.7e-10,0,0); /* UMIST   */
00850         newreact("N2+,NO=>NO+,N2",hmrate,4.4e-10,0,0); /* UMIST   */
00851         newreact("N2+,O2=>O2+,N2",hmrate,5.e-11,0,0); /* UMIST   */
00852         newreact("N2+,S=>S+,N2",hmrate,1.1e-9,0,0); /* UMIST   */
00853         newreact("Si,NO+=>NO,Si+",hmrate,1.6e-9,0,0); /* UMIST   */
00854         newreact("Si,HS+=>HS,Si+",hmrate,1.4e-9,0,0); /* UMIST   */
00855         newreact("Si,CS+=>CS,Si+",hmrate,1.5e-10,0,0); /* UMIST   */
00856         newreact("NO,HNO+=>HNO,NO+",hmrate,7.0e-10,0,0); /* UMIST   */
00857         newreact("NO,O2+=>O2,NO+",hmrate,4.5e-10,0,0); /* UMIST   */
00858         newreact("NO,S+=>S,NO+",hmrate,3.7e-10,0,0); /* UMIST   */
00859         newreact("NO,HS+=>HS,NO+",hmrate,4.5e-10,0,0); /* UMIST   */
00860         newreact("NO,SiO+=>SiO,NO+",hmrate,7.2e-10,0,0); /* UMIST   */
00861         newreact("NO,S2+=>S2,NO+",hmrate,5.1e-10,0,0); /* UMIST   */
00862         newreact("O2+,NO2=>NO2+,O2",hmrate,6.6e-10,0,0); /* UMIST   */
00863         newreact("S,HS+=>HS,S+",hmrate,9.7e-10,0,0); /* UMIST   */
00864         newreact("C,N=>CN,PHOTON",hmrate,1.e-17,0,0); /* UMIST   */
00865         newreact("C,S=>CS,PHOTON",hmrate,4.36E-19,0.22,0); /* UMIST   */
00866         newreact("C+,S=>CS+,PHOTON",hmrate,3.07E-19,0.15,0); /* UMIST   */
00867         newreact("N+,N=>N2+,PHOTON",hmrate,3.71E-18,0.24,26.1); /* UMIST   */
00868         newreact("CH,N+=>N,CH+",hmrate,3.6e-10,0,0); /* UMIST   */
00869         newreact("CH+,S=>S+,CH",hmrate,4.7e-10,0,0); /* UMIST   */
00870         newreact("N+,CH2=>CH2+,N",hmrate,1.0e-9,0,0); /* UMIST   */
00871         newreact("N+,CH4=>CH4+,N",hmrate,2.8e-11,0,0); /* UMIST   */
00872         newreact("N+,OH=>OH+,N",hmrate,3.7e-10,0,0); /* UMIST   */
00873         newreact("N+,H2O=>H2O+,N",hmrate,2.8e-9,0,0); /* UMIST   */
00874         newreact("N+,O2=>O2+,N",hmrate,3.11e-10,0,0); /* UMIST   */
00875         newreact("OH+,S=>S+,OH",hmrate,4.3e-10,0,0); /* UMIST   */
00876         newreact("H2O+,S=>S+,H2O",hmrate,4.3e-10,0,0); /* UMIST   */
00877         newreact("Si,S+=>S,Si+",hmrate,1.6e-9,0,0); /* UMIST   */
00878         newreact("O2+,S=>S+,O2",hmrate,5.4e-10,0,0); /* UMIST   */
00879         newreact("O,CCl=>ClO,C",hmrate,0.000000000138,0,16050); /* UMIST   */
00880         newreact("O,ClO=>Cl,O2",hmrate,0.000000000038,0,0); /* UMIST   */
00881         newreact("C+,HCl=>CCl+,H",hmrate,0.0000000011,0,0); /* UMIST   */
00882         newreact("CH3+,HCl=>H2CCl+,H2",hmrate,0.0000000013,0,0); /* UMIST   */
00883         newreact("H2O,H2Cl+=>HCl,H3O+",hmrate,0.000000002,0,0); /* UMIST   */
00884         newreact("C+,CCl=>CCl+,C",hmrate,0.000000001,0,0); /* UMIST   */
00885         newreact("C+,ClO=>ClO+,C",hmrate,0.000000001,0,0); /* UMIST   */
00886         newreact("O2,Cl+=>Cl,O2+",hmrate,0.00000000046,0,0); /* UMIST   */
00887         newreact("C,NH2=>HNC,H",hmrate,0.0000000000326,-0.1,-9); /*  */
00888         newreact("N,CH2=>HNC,H",hmrate,0.0000000000789,0.17,0); /*  */
00889         newreact("CH+,HNC=>HCNH+,C",hmrate,0.0000000018,0,0); /*  */
00890         newreact("CH,HCNH+=>HNC,CH2+",hmrate,0.000000000315,0,0); /*  */
00891         newreact("CH2,HCNH+=>HNC,CH3+",hmrate,0.000000000435,0,0); /*  */
00892         newreact("NH+,HNC=>HCNH+,N",hmrate,0.0000000018,0,0); /*  */
00893         newreact("NH2+,HNC=>HCNH+,NH",hmrate,0.0000000012,0,0); /*  */
00894         newreact("NH2,HCNH+=>HNC,NH3+",hmrate,0.000000000445,0,0); /*  */
00895         newreact("OH+,HNC=>HCNH+,O",hmrate,0.0000000012,0,0); /*  */
00896         newreact("NH3,HCNH+=>HNC,NH4+",hmrate,0.0000000011,0,0); /*  */
00897         newreact("CH5+,HNC=>HCNH+,CH4",hmrate,0.0000000012,0,0); /*  */
00898         newreact("H2O+,HNC=>HCNH+,OH",hmrate,0.0000000011,0,0); /*  */
00899         newreact("H3O+,HNC=>HCNH+,H2O",hmrate,0.000000004,0,0); /*  */
00900         newreact("HCN+,HNC=>HCNH+,CN",hmrate,0.000000001,0,0); /*  */
00901         newreact("HNC,HNO+=>NO,HCNH+",hmrate,0.00000000099,0,0); /*  */
00902         newreact("HNC,HS+=>S,HCNH+",hmrate,0.00000000086,0,0); /*  */
00903         newreact("CH+,HCN=>HCNH+,C",hmrate,0.0000000018,0,0); /*  */
00904         newreact("CH,HCNH+=>HCN,CH2+",hmrate,0.000000000315,0,0); /*  */
00905         newreact("N+,CH4=>HCNH+,H,H",hmrate,0.00000000038,0,0); /*  */
00906         newreact("CH2,HCNH+=>HCN,CH3+",hmrate,0.000000000435,0,0); /*  */
00907         newreact("NH,CH3+=>HCNH+,H2",hmrate,0.00000000074,0,0); /*  */
00908         newreact("NH+,HCN=>HCNH+,N",hmrate,0.0000000018,0,0); /*  */
00909         newreact("NH2+,HCN=>HCNH+,NH",hmrate,0.0000000012,0,0); /*  */
00910         newreact("NH2,HCNH+=>HCN,NH3+",hmrate,0.000000000445,0,0); /*  */
00911         newreact("CH4,HCN+=>HCNH+,CH3",hmrate,0.00000000104,0,0); /*  */
00912         newreact("OH+,HCN=>HCNH+,O",hmrate,0.0000000012,0,0); /*  */
00913         newreact("NH3,HCN+=>HCNH+,NH2",hmrate,0.00000000084,0,0); /*  */
00914         newreact("NH3,HCNH+=>HCN,NH4+",hmrate,0.0000000011,0,0); /*  */
00915         newreact("CH5+,HCN=>HCNH+,CH4",hmrate,0.0000000012,0,0); /*  */
00916         newreact("H2O+,HCN=>HCNH+,OH",hmrate,0.0000000011,0,0); /*  */
00917         newreact("H3O+,HCN=>HCNH+,H2O",hmrate,0.000000004,0,0); /*  */
00918         newreact("HCN+,HCN=>HCNH+,CN",hmrate,0.0000000016,0,0); /*  */
00919         newreact("HCN,HNO+=>NO,HCNH+",hmrate,0.00000000099,0,0); /*  */
00920         newreact("HCN,HS+=>S,HCNH+",hmrate,0.00000000086,0,0); /*  */
00921         newreact("C,CH2=>C2H,H",hmrate,0.00000000005,0.5,0); /*  */
00922         newreact("O+,C2H=>CO+,CH",hmrate,0.00000000046,0,0); /*  */
00923         newreact("C2H,CO+=>HCO+,C2",hmrate,0.00000000039,0,0); /*  */
00924         newreact("C,CH2+=>C2H+,H",hmrate,0.0000000012,0,0); /*  */
00925         newreact("C,CH3+=>C2H+,H2",hmrate,0.0000000012,0,0); /*  */
00926         newreact("C2,HCN+=>CN,C2H+",hmrate,0.00000000084,0,0); /*  */
00927         newreact("C2,HNO+=>NO,C2H+",hmrate,0.00000000082,0,0); /*  */
00928         newreact("C2H,CN+=>CN,C2H+",hmrate,0.0000000008,0,0); /*  */
00929         newreact("C2H,N2+=>N2,C2H+",hmrate,0.00000000079,0,0); /*  */
00930         newreact("C2H+,HCN=>HCNH+,C2",hmrate,0.0000000014,0,0); /*  */
00931         newreact("C2H+,HNC=>HCNH+,C2",hmrate,0.0000000014,0,0); /*  */
00932         newreact("C2H+,NO=>NO+,C2H",hmrate,0.00000000012,0,0); /*  */
00933         newreact("C2H+,S=>S+,C2H",hmrate,0.0000000012,0,0); /*  */
00934         newreact("CH,C2H+=>C2,CH2+",hmrate,0.00000000032,0,0); /*  */
00935         newreact("CH2,C2H+=>C2,CH3+",hmrate,0.00000000044,0,0); /*  */
00936         newreact("CH4,C2+=>C2H+,CH3",hmrate,0.000000000238,0,0); /*  */
00937         newreact("CH5+,C2=>C2H+,CH4",hmrate,0.00000000095,0,0); /*  */
00938         newreact("CH+,CH2=>C2H+,H2",hmrate,0.000000001,0,0); /*  */
00939         newreact("C+,CH2=>C2H+,H",hmrate,0.000000000434,-0.5,0); /*  */
00940         newreact("C+,CH3=>C2H+,H2",hmrate,0.000000001,0,0); /*  */
00941         newreact("H2O,C2+=>C2H+,OH",hmrate,0.00000000044,0,0); /*  */
00942         newreact("H2O+,C2=>C2H+,OH",hmrate,0.00000000047,0,0); /*  */
00943         newreact("H2O+,C2H=>C2H+,H2O",hmrate,0.00000000044,0,0); /*  */
00944         newreact("H3O+,C2=>C2H+,H2O",hmrate,0.00000000092,0,0); /*  */
00945         newreact("N,C2H+=>CN,CH+",hmrate,0.00000000009,0,0); /*  */
00946         newreact("NH,C2+=>C2H+,N",hmrate,0.00000000033,0,0); /*  */
00947         newreact("NH2,C2H+=>C2,NH3+",hmrate,0.00000000046,0,0); /*  */
00948         newreact("NH2+,C2=>C2H+,NH",hmrate,0.00000000097,0,0); /*  */
00949         newreact("NH3,C2H+=>C2,NH4+",hmrate,0.00000000055,0,0); /*  */
00950         newreact("NH+,C2=>C2H+,N",hmrate,0.00000000049,0,0); /*  */
00951         newreact("N+,C2H=>C2H+,N",hmrate,0.00000000095,0,0); /*  */
00952         newreact("O,C2H+=>HCO+,C",hmrate,0.00000000033,0,0); /*  */
00953         newreact("OH+,C2=>C2H+,O",hmrate,0.00000000048,0,0); /*  */
00954         newreact("OH+,C2H=>C2H+,OH",hmrate,0.00000000045,0,0); /*  */
00955         newreact("O+,C2H=>C2H+,O",hmrate,0.00000000046,0,0); /*  */
00956         newreact("C+,C2H=>C3+,H",hmrate,0.000000001,0,0); /*  */
00957         newreact("CH+,C2H=>C3+,H2",hmrate,0.00000000098,0,0); /*  */
00958         newreact("C2+,C2=>C3+,C",hmrate,0.00000000087,0,0); /*  */
00959         newreact("CH+,C2=>C3+,H",hmrate,0.000000001,0,0); /*  */
00960         newreact("CH,C2+=>C3+,H",hmrate,0.00000000032,0,0); /*  */
00961         newreact("C,C2H+=>C3+,H",hmrate,0.0000000011,0,0); /*  */
00962         newreact("C,C2H2=>C3H,H",hmrate,0.0000000002,0,0); /*  */
00963         newreact("C,C2H2+=>C3H+,H",hmrate,0.0000000011,0,0); /*  */
00964         newreact("C2H,HCN+=>C2H2+,CN",hmrate,0.00000000079,0,0); /*  */
00965         newreact("C2H2+,HCN=>HCNH+,C2H",hmrate,0.00000000023,0,0); /*  */
00966         newreact("C2H2+,NO=>NO+,C2H2",hmrate,0.00000000012,0,0); /*  */
00967         newreact("C2H+,HCN=>C2H2+,CN",hmrate,0.0000000014,0,0); /*  */
00968         newreact("CH,C2H+=>C3H+,H",hmrate,0.00000000032,0,0); /*  */
00969         newreact("CH,CH3+=>C2H2+,H2",hmrate,0.00000000071,0,0); /*  */
00970         newreact("CH2,C2+=>C3H+,H",hmrate,0.00000000045,0,0); /*  */
00971         newreact("CH2,CH2=>C2H2,H,H",hmrate,0.00000000018,0,400); /*  */
00972         newreact("CH2,CH2=>C2H2,H2",hmrate,0.00000000263,0,6013); /*  */
00973         newreact("CH3+,C2=>C3H+,H2",hmrate,0.00000000099,0,0); /*  */
00974         newreact("CH4,C2H+=>C2H2+,CH3",hmrate,0.000000000374,0,0); /*  */
00975         newreact("CH4,C2+=>C2H2+,CH2",hmrate,0.000000000182,0,0); /*  */
00976         newreact("CH4,C2+=>C3H+,H2,H",hmrate,0.000000000196,0,0); /*  */
00977         newreact("CH4+,C2H2=>C2H2+,CH4",hmrate,0.00000000113,0,0); /*  */
00978         newreact("CH5+,C2H=>C2H2+,CH4",hmrate,0.0000000009,0,0); /*  */
00979         newreact("CH+,CH4=>C2H2+,H2,H",hmrate,0.000000000143,0,0); /*  */
00980         newreact("C+,C2H2=>C3H+,H",hmrate,0.0000000022,0,0); /*  */
00981         newreact("C+,CH3=>C2H2+,H",hmrate,0.0000000013,0,0); /*  */
00982         newreact("C+,CH4=>C2H2+,H2",hmrate,0.0000000004,0,0); /*  */
00983         newreact("H2O,C2H2+=>C2H,H3O+",hmrate,0.00000000022,0,0); /*  */
00984         newreact("H2O,C3H+=>HCO+,C2H2",hmrate,0.00000000027,0,0); /*  */
00985         newreact("H2O+,C2H=>C2H2+,OH",hmrate,0.00000000044,0,0); /*  */
00986         newreact("H2O+,C2H2=>C2H2+,H2O",hmrate,0.0000000019,0,0); /*  */
00987         newreact("H3O+,C3=>C3H+,H2O",hmrate,0.000000002,0,0); /*  */
00988         newreact("N,C2H2+=>HCN,CH+",hmrate,0.000000000025,0,0); /*  */
00989         newreact("NH2,C2H2+=>C2H,NH3+",hmrate,0.00000000045,0,0); /*  */
00990         newreact("NH2+,C2H=>C2H2+,NH",hmrate,0.00000000091,0,0); /*  */
00991         newreact("NH3,C2H2+=>C2H,NH4+",hmrate,0.0000000011,0,0); /*  */
00992         newreact("NH3,C2H2+=>C2H2,NH3+",hmrate,0.0000000021,0,0); /*  */
00993         newreact("NH3,C3H+=>C3,NH4+",hmrate,0.0000000008,0,0); /*  */
00994         newreact("NH3,C3H+=>C3H,NH3+",hmrate,0.00000000032,0,0); /*  */
00995         newreact("NH3+,C2=>C2H2+,NH",hmrate,0.00000000001,0,0); /*  */
00996         newreact("NH+,C2H=>C2H2+,N",hmrate,0.0000000014,0,0); /*  */
00997         newreact("NO,C3H+=>C3H,NO+",hmrate,0.00000000013,0,0); /*  */
00998         newreact("O,C2H2=>C2H,OH",hmrate,0.0000000053,0,8520); /*  */
00999         newreact("O,C2H2+=>HCO+,CH",hmrate,0.000000000085,0,0); /*  */
01000         newreact("OH,C2H2=>C2H,H2O",hmrate,0.000000000000105,2.68,6060); /*  */
01001         newreact("OH+,C2H=>C2H2+,O",hmrate,0.00000000045,0,0); /*  */
01002         newreact("O+,C2H2=>C2H2+,O",hmrate,0.000000000039,0,0); /*  */
01003         newreact("C,C2H3+=>C3H+,H2",hmrate,0.000000001,0,0); /*  */
01004         newreact("C2H,C2H3+=>C2H2+,C2H2",hmrate,0.00000000033,0,0); /*  */
01005         newreact("CH2,CH3+=>C2H3+,H2",hmrate,0.00000000099,0,0); /*  */
01006         newreact("CH4,C3H+=>C2H3+,C2H2",hmrate,0.000000000612,0,0); /*  */
01007         newreact("CH4,HCN+=>C2H3+,NH2",hmrate,0.00000000026,0,0); /*  */
01008         newreact("CH4+,C2H2=>C2H3+,CH3",hmrate,0.00000000125,0,0); /*  */
01009         newreact("CH5+,C2H2=>C2H3+,CH4",hmrate,0.0000000016,0,0); /*  */
01010         newreact("CH+,CH4=>C2H3+,H2",hmrate,0.00000000109,0,0); /*  */
01011         newreact("C+,CH4=>C2H3+,H",hmrate,0.0000000011,0,0); /*  */
01012         newreact("H2O,C2H3+=>C2H2,H3O+",hmrate,0.00000000111,0,0); /*  */
01013         newreact("HCN,C2H3+=>HCNH+,C2H2",hmrate,0.0000000029,0,0); /*  */
01014         newreact("HNC,C2H3+=>HCNH+,C2H2",hmrate,0.0000000029,0,0); /*  */
01015         newreact("NH3,C2H3+=>C2H2,NH4+",hmrate,0.0000000025,0,0); /*  */
01016         newreact("O,C2H3+=>HCO+,CH2",hmrate,0.0000000001,0,0); /*  */
01017         newreact("C,CH=>C2,H",hmrate,6.59e-11,0,0); /* UMIST     */
01018         newreact("C,CN=>C2,N",hmrate,4.98e-10,0,18116); /* UMIST         */
01019         newreact("C,CS=>S,C2",hmrate,1.44e-11,0.5,20435); /* UMIST       */
01020         newreact("C2,S=>CS,C",hmrate,1.73e-11,0.5,0); /* UMIST   */
01021         newreact("NH+,C2=>HCN+,C",hmrate,4.9e-10,0,0); /* UMIST  */
01022         newreact("O+,C2=>CO+,C",hmrate,4.8e-10,0,0); /* UMIST    */
01023         newreact("C+,S=>C,S+",hmrate,1.0e-9,0,0); /* UMIST       */
01024         newreact("C2,S+=>CS+,C",hmrate,8.1e-10,0,0); /* UMIST    */
01025         newreact("C,C2+=>C2,C+",hmrate,1.1e-10,0,0); /* UMIST    */
01026         newreact("CH,C2+=>C2,CH+",hmrate,3.2e-10,0,0); /* UMIST  */
01027         newreact("N+,C2=>C2+,N",hmrate,1.0e-9,0,0); /* UMIST     */
01028         newreact("CH2,C2+=>C2,CH2+",hmrate,4.5e-10,0,0); /* UMIST        */
01029         newreact("O+,C2=>C2+,O",hmrate,4.8e-10,0,0); /* UMIST    */
01030         newreact("NH2,C2+=>C2,NH2+",hmrate,4.6e-10,0,0); /* UMIST        */
01031         newreact("OH+,C2=>C2+,OH",hmrate,4.8e-10,0,0); /* UMIST  */
01032         newreact("OH,C2+=>C2,OH+",hmrate,6.5e-10,0,0); /* UMIST  */
01033         newreact("H2O+,C2=>C2+,H2O",hmrate,4.7e-10,0,0); /* UMIST        */
01034         newreact("C2,CN+=>CN,C2+",hmrate,8.5e-10,0,0); /* UMIST  */
01035         newreact("C2,N2+=>N2,C2+",hmrate,8.4e-10,0,0); /* UMIST  */
01036         newreact("C2+,NO=>NO+,C2",hmrate,3.4e-10,0,0); /* UMIST  */
01037         newreact("C2,O2+=>O2,C2+",hmrate,4.1e-10,0,0); /* UMIST  */
01038         newreact("C2+,S=>S+,C2",hmrate,5.8e-10,0,0); /* UMIST    */
01039         newreact("C,C=>C2,PHOTON",hmrate,4.36E-18,0.35,161.3); /* UMIST  */
01040         newreact("C,CH+=>C2+,H",hmrate,1.2e-9,0,0); /* UMIST     */
01041         newreact("CH+,CH=>C2+,H2",hmrate,7.4e-10,0,0); /* UMIST  */
01042         newreact("N,C2+=>CN,C+",hmrate,4.0e-11,0,0); /* UMIST    */
01043         newreact("O,C2+=>CO+,C",hmrate,3.1e-10,0,0); /* UMIST    */
01044         newreact("C2+,S=>CS+,C",hmrate,5.8e-10,0,0); /* UMIST    */
01045         newreact("C+,C=>C2+,PHOTON",hmrate,4.01E-18,0.17,101.5); /* UMIST        */
01046         newreact("C,CH2=>CH,CH",hmrate,2.69e-12,0,23550); /* UMIST       */
01047         newreact("C,H2O+=>OH,CH+",hmrate,1.1e-9,0,0); /* UMIST   */
01048         newreact("C,H3O+=>HCO+,H2",hmrate,1.0e-11,0,0); /* UMIST         */
01049         newreact("C,O2+=>O2,C+",hmrate,5.2e-11,0,0); /* UMIST    */
01050         newreact("C,O2+=>CO+,O",hmrate,5.2e-11,0,0); /* UMIST    */
01051         newreact("C,OH=>O,CH",hmrate,2.25e-11,0.5,14800); /* UMIST       */
01052         newreact("C,OH+=>O,CH+",hmrate,1.2e-9,0,0); /* UMIST     */
01053         newreact("C+,CH2=>CH2+,C",hmrate,5.2e-10,0,0); /* UMIST  */
01054         newreact("C+,H2O=>HCO+,H",hmrate,9.0e-10,0,0); /* UMIST  */
01055         newreact("C+,O=>CO+,PHOTON",hmrate,2.5E-18,0,0); /* UMIST        */
01056         newreact("C+,O2=>CO+,O",hmrate,3.8e-10,0,0); /* UMIST    */
01057         newreact("O,CH=>OH,C",hmrate,2.52e-11,0,2381); /* UMIST  */
01058         newreact("O,CH=>HCO+,e-",hmrate,2.0e-11,0.44,0); /* UMIST        */
01059         newreact("O,CH+=>CO+,H",hmrate,3.5e-10,0,0); /* UMIST    */
01060         newreact("O,CH2=>OH,CH",hmrate,4.98e-10,0,6000); /* UMIST        */
01061         newreact("O,CH2+=>HCO+,H",hmrate,7.5e-10,0,0); /* UMIST  */
01062         newreact("O,H2O=>OH,OH",hmrate,1.85e-11,0.95,8571); /* UMIST     */
01063         newreact("O,H2O+=>O2+,H2",hmrate,4.0e-11,0,0); /* UMIST  */
01064         newreact("O,O=>O2,PHOTON",hmrate,4.9E-20,1.58,0); /* UMIST       */
01065         newreact("O,OH=>O2,H",hmrate,4.34e-11,-0.5,30); /* UMIST         */
01066         newreact("O,OH+=>O2+,H",hmrate,7.1e-10,0,0); /* UMIST    */
01067         newreact("O,Si=>SiO,PHOTON",hmrate,5.52E-18,0.31,0); /* UMIST    */
01068         newreact("O,Si+=>SiO+,PHOTON",hmrate,1.e-17,0,0); /* UMIST       */
01069         newreact("O,SiH=>SiO,H",hmrate,4.0e-11,0.5,0); /* UMIST  */
01070         newreact("O,SiH2+=>SiOH+,H",hmrate,6.3e-10,0,0); /* UMIST        */
01071         newreact("O,SiO+=>O2,Si+",hmrate,2.0e-10,0,0); /* UMIST  */
01072         newreact("O+,CH=>O,CH+",hmrate,3.5e-10,0,0); /* UMIST    */
01073         newreact("O+,CH=>CO+,H",hmrate,3.5e-10,0,0); /* UMIST    */
01074         newreact("O+,CH2=>O,CH2+",hmrate,9.7e-10,0,0); /* UMIST  */
01075         newreact("O+,H2O=>H2O+,O",hmrate,3.2e-9,0,0); /* UMIST   */
01076         newreact("O+,O2=>O2+,O",hmrate,1.9e-11,0,0); /* UMIST    */
01077         newreact("O+,OH=>O2+,H",hmrate,3.6e-10,0,0); /* UMIST    */
01078         newreact("O+,OH=>OH+,O",hmrate,3.6e-10,0,0); /* UMIST    */
01079         newreact("Si,CH+=>Si+,CH",hmrate,2.0e-10,0,0); /* UMIST  */
01080         newreact("Si,H2O+=>Si+,H2O",hmrate,3.0e-9,0,0); /* UMIST         */
01081         newreact("Si,OH=>SiO,H",hmrate,2.0e-10,0.5,0); /* UMIST  */
01082         newreact("Si,O2+=>O2,Si+",hmrate,1.6e-9,0,0); /* UMIST   */
01083         newreact("Si+,H2O=>SiOH+,H",hmrate,2.3e-10,0,0); /* UMIST        */
01084         newreact("Si+,OH=>SiO+,H",hmrate,6.3e-10,0,0); /* UMIST  */
01085         newreact("Si+,O2=>SiO+,O",hmrate,1.e-13,0,0); /* UMIST   */
01086         newreact("CH,CO+=>HCO+,C",hmrate,3.2e-10,0,0); /* UMIST  */
01087         newreact("CH,H2O+=>H2O,CH+",hmrate,3.4e-10,0,0); /* UMIST        */
01088         newreact("CH,H2O+=>OH,CH2+",hmrate,3.4e-10,0,0); /* UMIST        */
01089         newreact("CH,H3O+=>H2O,CH2+",hmrate,6.8e-10,0,0); /* UMIST       */
01090         newreact("CH,O2+=>O2,CH+",hmrate,3.1e-10,0,0); /* UMIST  */
01091         newreact("CH,O2+=>HCO+,O",hmrate,3.1e-10,0,0); /* UMIST  */
01092         newreact("CH,OH+=>OH,CH+",hmrate,3.5e-10,0,0); /* UMIST  */
01093         newreact("CH,OH+=>O,CH2+",hmrate,3.5e-10,0,0); /* UMIST  */
01094         newreact("CH,SiO+=>HCO+,Si",hmrate,5.9e-10,0,0); /* UMIST        */
01095         newreact("CH+,H2O=>H3O+,C",hmrate,5.8e-10,0,0); /* UMIST         */
01096         newreact("CH+,H2O=>HCO+,H2",hmrate,2.9e-9,0,0); /* UMIST         */
01097         newreact("CH+,O2=>HCO+,O",hmrate,9.7e-10,0,0); /* UMIST  */
01098         newreact("CH+,OH=>CO+,H2",hmrate,7.5e-10,0,0); /* UMIST  */
01099         newreact("CH+,O2=>CO+,OH",hmrate,1.0e-11,0,0); /* UMIST  */
01100         newreact("CH2,CO+=>HCO+,CH",hmrate,4.3e-10,0,0); /* UMIST        */
01101         newreact("CH2,H2O+=>H2O,CH2+",hmrate,4.7e-10,0,0); /* UMIST      */
01102         newreact("CH2,H2O+=>OH,CH3+",hmrate,4.7e-10,0,0); /* UMIST       */
01103         newreact("CH2,H3O+=>H2O,CH3+",hmrate,1e-10*9.4,0.,0.); /* UMIST  */
01104         newreact("CH2,O2+=>O2,CH2+",hmrate,1e-10*4.3,0.,0.); /* UMIST    */
01105         /* Orphaned comment which was sitting above this reaction... */
01106         /* >>chng 06 Apr 13, add N2H+ to chemistry.  Leading coefficient
01107          * is branching ratio for this reaction, which is taken from:
01108          * >>refer      mole    Geppert, W. D. et al. 2005, ApJ, 609, 459 */
01109         newreact("CH2,OH=>H2O,CH",hmrate,1.44e-11,0.5,3000); /* UMIST    */
01110         newreact("CH2,OH+=>OH,CH2+",hmrate,1e-10*4.8,0.,0.); /* UMIST    */
01111         newreact("CH2,OH+=>O,CH3+",hmrate,1e-10*4.8,0.,0.); /* UMIST     */
01112         newreact("CH2+,O2=>HCO+,OH",hmrate,1e-10*9.1,0.,0.); /* UMIST    */
01113         newreact("H2O,CO+=>HCO+,OH",hmrate,1e-10*8.84,0.,0.); /* UMIST   */
01114         newreact("H2O+,H2O=>H3O+,OH",hmrate,1e-9*2.1,0.,0.); /* UMIST    */
01115         newreact("H2O+,O2=>O2+,H2O",hmrate,1e-10*4.6,0.,0.); /* UMIST    */
01116         newreact("H3O+,SiH=>SiH2+,H2O",hmrate,1e-10*9.7,0.,0.); /* UMIST         */
01117         newreact("H3O+,SiO=>SiOH+,H2O",hmrate,2.0e-9,0.,0.); /* UMIST    */
01118         newreact("OH,CO+=>HCO+,O",hmrate,3.1e-10,0,0); /* UMIST  */
01119         newreact("OH,H2O+=>H3O+,O",hmrate,6.9e-10,0,0); /* UMIST         */
01120         newreact("OH,OH=>H2O,O",hmrate,1.65e-12,1.14,50); /* UMIST       */
01121         newreact("OH+,H2O=>H3O+,O",hmrate,1.3e-9,0,0); /* UMIST  */
01122         newreact("OH+,H2O=>H2O+,OH",hmrate,1.59e-9,0,0); /* UMIST        */
01123         newreact("OH+,O2=>O2+,OH",hmrate,5.9e-10,0,0); /* UMIST  */
01124         newreact("OH+,OH=>H2O+,O",hmrate,7.0e-10,0,0); /* UMIST  */
01125         newreact("OH+,SiH=>SiH2+,O",hmrate,1.0e-9,0,0); /* UMIST         */
01126         newreact("OH+,SiO=>SiOH+,O",hmrate,9.4e-10,0,0); /* UMIST        */
01127         newreact("C,CH5+=>CH4,CH+",hmrate,1.2e-9,0,0); /* UMIST     */
01128         newreact("O,CH4=>OH,CH3",hmrate,2.29e-12,2.2,3820); /* UMIST     */
01129         newreact("O,CH4+=>OH,CH3+",hmrate,1.0e-9,0,0); /* UMIST     */
01130         newreact("O,CH5+=>H3O+,CH2",hmrate,2.2e-10,0,0); /* UMIST     */
01131         newreact("O+,CH4=>OH,CH3+",hmrate,1.1e-10,0,0); /* UMIST     */
01132         newreact("O+,CH4=>CH4+,O",hmrate,8.9e-10,0,0); /* UMIST     */
01133         newreact("CH4,CH=>CH3,CH2",hmrate,2.28e-11,0.7,3000); /* UMIST     */
01134         newreact("CH5+,CH=>CH4,CH2+",hmrate,6.9e-10,0,0); /* UMIST     */
01135         newreact("CH2,CH2=>CH3,CH",hmrate,4.0e-10,0,5000); /* UMIST     */
01136         newreact("CH4,CH2=>CH3,CH3",hmrate,7.13e-12,0,5050); /* UMIST     */
01137         newreact("OH,CH2=>O,CH3",hmrate,1.44e-11,0.5,3000); /* UMIST     */
01138         newreact("CH5+,CH2=>CH4,CH3+",hmrate,9.6e-10,0,0); /* UMIST     */
01139         newreact("OH,CH3=>CH4,O",hmrate,3.27e-14,2.2,2240); /* UMIST     */
01140         newreact("OH,CH3=>H2O,CH2",hmrate,1.2e-10,0,1400); /* UMIST     */
01141         newreact("H2O,CH3=>OH,CH4",hmrate,2.3e-15,3.47,6681); /* UMIST     */
01142         newreact("CH3,CH3=>CH4,CH2",hmrate,7.13e-12,0,5052); /* UMIST     */
01143         newreact("OH,CH4=>H2O,CH3",hmrate,3.77e-13,2.42,1162); /* UMIST     */
01144         newreact("OH+,CH4=>CH5+,O",hmrate,1.95e-10,0,0); /* UMIST     */
01145         newreact("OH+,CH4=>H3O+,CH2",hmrate,1.31e-9,0,0); /* UMIST     */
01146         newreact("H2O+,CH4=>H3O+,CH3",hmrate,1.4e-9,0,0); /* UMIST     */
01147         newreact("CO+,CH4=>HCO+,CH3",hmrate,4.55e-10,0,0); /* UMIST     */
01148         newreact("CH4,CH4+=>CH5+,CH3",hmrate,1.5e-9,0,0); /* UMIST     */
01149         newreact("H2O,CH4+=>H3O+,CH3",hmrate,2.6e-9,0,0); /* UMIST     */
01150         newreact("O2,CH4+=>O2+,CH4",hmrate,4.0e-10,0,0); /* UMIST     */
01151         newreact("H2O,CH5+=>H3O+,CH4",hmrate,3.7e-9,0,0); /* UMIST     */
01152         newreact("CH5+,OH=>H2O+,CH4",hmrate,7.0e-10,0,0); /* UMIST     */
01153         newreact("C,NH=>N,CH",hmrate,1.73e-11,0.5,4000); /* UMIST   */
01154         newreact("C,NH=>CN,H",hmrate,1.1e-10,0.5,0); /* UMIST   */
01155         newreact("C,N2=>CN,N",hmrate,8.69e-11,0,22600); /* UMIST   */
01156         newreact("C,NO=>CN,O",hmrate,4.8e-11,0,0); /* UMIST   */
01157         newreact("C,HS=>S,CH",hmrate,1.2e-11,0.58,5880); /* UMIST   */
01158         newreact("C,HS=>CS,H",hmrate,2.0e-11,0,0); /* UMIST   */
01159         newreact("C,NS=>S,CN",hmrate,2.0e-11,0.5,0); /* UMIST   */
01160         newreact("C,NS=>CS,N",hmrate,1.73e-11,0.5,4000); /* UMIST   */
01161         newreact("C,S2=>CS,S",hmrate,1.73e-11,0.5,0); /* UMIST   */
01162         newreact("CH,N=>NH,C",hmrate,3.03e-11,0.65,1207); /* UMIST   */
01163         newreact("CH,N2=>HCN,N",hmrate,0.00000000000056,0.88,10128); /* UMIST   */
01164         newreact("CH,NO=>HCN,O",hmrate,5.59e-9,0,10814); /* UMIST   */
01165         newreact("CH,NO=>CN,OH",hmrate,2.32E-26,0,0); /* UMIST   */
01166         newreact("CH,NO=>OCN,H",hmrate,1.13E-25,0,0); /* UMIST   */
01167         newreact("CH,HNO=>NO,CH2",hmrate,1.73e-11,0.5,0); /* UMIST   */
01168         newreact("CH,S=>HS,C",hmrate,1.73e-11,0.5,4000); /* UMIST   */
01169         newreact("CH,S=>CS,H",hmrate,1.1e-12,0,0); /* UMIST   */
01170         newreact("N,NH=>N2,H",hmrate,4.98e-11,0,0); /* UMIST   */
01171         newreact("N,CH3=>HCN,H,H",hmrate,3.32e-13,0,0); /* UMIST   */
01172         newreact("N,CH3=>HCN,H2",hmrate,1.3e-11,0.5,0); /* UMIST   */
01173         newreact("N,OH=>O,NH",hmrate,1.88e-11,0.1,10700); /* UMIST   */
01174         newreact("N,OH=>NO,H",hmrate,5.32e-11,-0.25,0); /* UMIST   */
01175         newreact("N,CN=>N2,C",hmrate,3.e-10,0,0); /* UMIST   */
01176         newreact("N,SiH=>SiN,H",hmrate,5.e-11,0.5,0); /* UMIST   */
01177         newreact("N,NO=>N2,O",hmrate,3.75e-11,0,26); /* UMIST   */
01178         newreact("N,HNO=>NO,NH",hmrate,2.94e-12,0.5,1000); /* UMIST   */
01179         newreact("N,HNO=>N2O,H",hmrate,1.43e-12,0.5,1500); /* UMIST   */
01180         newreact("N,O2=>NO,O",hmrate,2.26e-12,0.86,3134); /* UMIST   */
01181         newreact("N,HS=>NS,H",hmrate,1.73e-11,0.5,0); /* UMIST   */
01182         newreact("N,HS=>S,NH",hmrate,1.73e-11,0.5,9060); /* UMIST   */
01183         newreact("N,CS=>S,CN",hmrate,3.8e-11,0.5,1160); /* UMIST   */
01184         newreact("N,NS=>S,N2",hmrate,1.73e-11,0.5,0); /* UMIST   */
01185         newreact("N,SO=>NS,O",hmrate,4.68e-11,0.5,8254); /* UMIST   */
01186         newreact("N,SO=>S,NO",hmrate,1.73e-11,0.5,750); /* UMIST   */
01187         newreact("N,S2=>NS,S",hmrate,1.73e-11,0.5,4000); /* UMIST   */
01188         newreact("CH2,CN=>HCN,CH",hmrate,5.3e-12,0,2500); /* UMIST   */
01189         newreact("CH2,NO=>HCN,OH",hmrate,0.000000000000832,0,1443); /* UMIST   */
01190         newreact("CH2,HNO=>NO,CH3",hmrate,1.73e-11,0.5,0); /* UMIST   */
01191         newreact("NH,NH=>N2,H,H",hmrate,1.16e-9,0,0); /* UMIST   */
01192         newreact("NH,NH=>N2,H2",hmrate,1.7e-11,0,0); /* UMIST   */
01193         newreact("NH,O=>OH,N",hmrate,1.16e-11,0,0); /* UMIST   */
01194         newreact("NH,O=>NO,H",hmrate,1.16e-10,0,0); /* UMIST   */
01195         newreact("NH,OH=>HNO,H",hmrate,3.32e-11,0,0); /* UMIST   */
01196         newreact("NH,OH=>NH2,O",hmrate,2.93e-12,0.1,5800); /* UMIST   */
01197         newreact("NH,OH=>H2O,N",hmrate,3.11e-12,1.2,0); /* UMIST   */
01198         newreact("NH,H2O=>OH,NH2",hmrate,1.83e-12,1.6,14090); /* UMIST   */
01199         newreact("NH,CN=>HCN,N",hmrate,2.94e-12,0.5,1000); /* UMIST   */
01200         newreact("NH,NO=>N2O,H",hmrate,1.16e-10,-1.03,420); /* UMIST   */
01201         newreact("NH,NO=>N2,O,H",hmrate,5.e-11,0,0); /* UMIST   */
01202         newreact("NH,NO=>N2,OH",hmrate,1.46e-11,-0.58,37); /* UMIST   */
01203         newreact("NH,S=>HS,N",hmrate,1.73e-11,0.5,4000); /* UMIST   */
01204         newreact("NH,S=>NS,H",hmrate,1.73e-11,0.5,0); /* UMIST   */
01205         newreact("NH,NO2=>HNO,NO",hmrate,5.72e-12,0.5,2500); /* UMIST   */
01206         newreact("NH,NO2=>N2O,OH",hmrate,1.44e-13,0, 1140); /* UMIST   */
01207         newreact("CH3,NH3=>CH4,NH2",hmrate,0.0000000000000955,0,4890); /* UMIST   */
01208         newreact("CH3,CN=>HCN,CH2",hmrate,9.21e-12,0.7,1500); /* UMIST   */
01209         newreact("CH3,HNO=>NO,CH4",hmrate,1.44e-11,0.5,0); /* UMIST   */
01210         newreact("O,NH2=>OH,NH",hmrate,1.39e-11,0,40); /* UMIST   */
01211         newreact("O,NH2=>NO,H2",hmrate,8.3e-12,0,0); /* UMIST   */
01212         newreact("O,NH3=>OH,NH2",hmrate,1.89e-11,0,4003); /* UMIST   */
01213         newreact("O,CN=>NO,C",hmrate,3.81e-11,0.5,14545); /* UMIST   */
01214         newreact("O,HCN=>CN,OH",hmrate,6.21e-10,0,12439); /* UMIST   */
01215         newreact("O,HCN=>OCN,H",hmrate,1.36e-12,1.38,3693); /* UMIST   */
01216         newreact("O,N2=>NO,N",hmrate,2.51e-10,0,38602); /* UMIST   */
01217         newreact("O,NO=>O2,N",hmrate,1.18e-11,0,20413); /* UMIST   */
01218         newreact("O,HNO=>NO,OH",hmrate,6.e-11,0,0); /* UMIST   */
01219         newreact("O,HNO=>O2,NH",hmrate,2.94e-12,0.5,3500); /* UMIST   */
01220         newreact("O,HNO=>NO2,H",hmrate,1.44e-12,0.5,0); /* UMIST   */
01221         newreact("O,HS=>S,OH",hmrate,1.74e-11,0.67,956); /* UMIST   */
01222         newreact("O,HS=>SO,H",hmrate,2.32e-10,0,0); /* UMIST   */
01223         newreact("O,OCN=>O2,CN",hmrate,4.02e-10,-1.43,3501); /* UMIST   */
01224         newreact("O,SiN=>NO,Si",hmrate,2.5e-11,0.5,0); /* UMIST   */
01225         newreact("O,SiN=>SiO,N",hmrate,5.75e-11,0.1,200); /* UMIST   */
01226         newreact("O,N2O=>NO,NO",hmrate,1.15e-10,0,13400); /* UMIST   */
01227         newreact("O,N2O=>O2,N2",hmrate,1.66e-10,0,14100); /* UMIST   */
01228         newreact("O,CS=>SO,C",hmrate,4.68e-11,0.5,28940); /* UMIST   */
01229         newreact("O,NS=>S,NO",hmrate,5.e-11,0.5,0); /* UMIST   */
01230         newreact("O,NS=>SO,N",hmrate,1.73e-11,0.5,4000); /* UMIST   */
01231         newreact("O,SO=>S,O2",hmrate,0.00000000000066,0,2760); /* UMIST   */
01232         newreact("O,S2=>SO,S",hmrate,1.73e-11,0.5,0); /* UMIST   */
01233         newreact("NH2,OH=>NH3,O",hmrate,0.000000000000208,0.76,262); /* UMIST   */
01234         newreact("NH2,OH=>H2O,NH",hmrate,1.5e-12,0,0); /* UMIST   */
01235         newreact("NH2,NO=>N2,OH,H",hmrate,1.49e-12,0,0); /* UMIST   */
01236         newreact("NH2,NO=>N2,H2O",hmrate,4.27e-11,-2.5,331); /* UMIST   */
01237         newreact("CH4,CN=>HCN,CH3",hmrate,3.14e-12,1.53,504); /* UMIST   */
01238         newreact("OH,NH3=>H2O,NH2",hmrate,1.47e-13,2.05,7); /* UMIST   */
01239         newreact("OH,CN=>HCN,O",hmrate,1.0e-11,0,1000); /* UMIST   */
01240         newreact("OH,CN=>OCN,H",hmrate,7.e-11,0,0); /* UMIST   */
01241         newreact("OH,HCN=>CN,H2O",hmrate,1.87e-13,1.5,3887); /* UMIST   */
01242         newreact("OH,NO=>NO2,H",hmrate,5.2e-12,0,15100); /* UMIST   */
01243         newreact("OH,S=>HS,O",hmrate,6.6e-11,0,0); /* UMIST   */
01244         newreact("OH,S=>SO,H",hmrate,6.6e-11,0,0); /* UMIST   */
01245         newreact("OH,N2O=>HNO,NO",hmrate,1.04E-17,4.33,12623); /* UMIST   */
01246         newreact("OH,CS=>OCS,H",hmrate,0.0000000000000939,1.12,800); /* UMIST   */
01247         newreact("NH3,CN=>HCN,NH2",hmrate,2.6e-11,-1.1,0); /* UMIST   */
01248         newreact("CN,NO=>OCN,N",hmrate,1.62e-10,0,21205); /* UMIST   */
01249         newreact("CN,HNO=>NO,HCN",hmrate,1.5e-11,0.5,0); /* UMIST   */
01250         newreact("CN,S=>NS,C",hmrate,5.71e-11,0.5,32010); /* UMIST   */
01251         newreact("CN,S=>CS,N",hmrate,1.73e-11,0.5,0); /* UMIST   */
01252         newreact("N2,O2=>N2O,O",hmrate,1.0e-10,0,55200); /* UMIST   */
01253         newreact("NO,NO=>O2,N2",hmrate,2.51e-11,0,30653); /* UMIST   */
01254         newreact("NO,NO=>N2O,O",hmrate,7.22e-12,0,33155); /* UMIST   */
01255         newreact("NO,HNO=>N2O,OH",hmrate,1.41e-11,0,14890); /* UMIST   */
01256         newreact("NO,S=>NS,O",hmrate,2.94e-11,0.5,17465); /* UMIST   */
01257         newreact("NO,S=>SO,N",hmrate,1.75e-10,0,20200); /* UMIST   */
01258         newreact("O2,S=>SO,O",hmrate,2.28e-12,0.52,0); /* UMIST   */
01259         newreact("S,SO=>S2,O",hmrate,1.73e-11,0.5,11500); /* UMIST   */
01260         newreact("C,NH+=>N,CH+",hmrate,1.6e-9,0,0); /* UMIST   */
01261         newreact("C+,NH=>CH+,N",hmrate,5e-10,0.,0.); /* Zsargo & Federman 2003   */
01262         newreact("C+,NH2=>HCN+,H",hmrate,1.1e-9,0,0); /* UMIST   */
01263         newreact("C,NH2+=>NH,CH+",hmrate,1.2e-9,0,0); /* UMIST   */
01264         newreact("C+,NH3=>HCN+,H2",hmrate,7.e-11,0,0); /* UMIST   */
01265         newreact("C,NH3+=>NH,CH2+",hmrate,1.0e-11,0,0); /* UMIST   */
01266         newreact("C,HCN+=>CN,CH+",hmrate,1.1e-9,0,0); /* UMIST   */
01267         newreact("C,HNO+=>NO,CH+",hmrate,1.0e-9,0,0); /* UMIST   */
01268         newreact("C+,HS=>CS+,H",hmrate,1.1e-9,0,0); /* UMIST   */
01269         newreact("C,HS+=>CS+,H",hmrate,9.9e-10,0,0); /* UMIST   */
01270         newreact("C+,OCN=>CO+,CN",hmrate,3.8e-9,0,0); /* UMIST   */
01271         newreact("C+,NS=>CS+,N",hmrate,7.6e-10,0,0); /* UMIST   */
01272         newreact("C+,SO=>S,CO+",hmrate,2.6e-10,0,0); /* UMIST   */
01273         newreact("C+,SO=>CS+,O",hmrate,2.6e-10,0,0); /* UMIST   */
01274         newreact("CH+,N=>CN+,H",hmrate,1.9e-10,0,0); /* UMIST   */
01275         newreact("CH,N+=>CN+,H",hmrate,3.6e-10,0,0); /* UMIST   */
01276         newreact("CH,NH+=>CH2+,N",hmrate,9.9e-10,0,0); /* UMIST   */
01277         newreact("CH+,NH=>CN+,H2",hmrate,7.6e-10,0,0); /* UMIST   */
01278         newreact("CH+,NH2=>HCN+,H2",hmrate,1.1e-9,0,0); /* UMIST   */
01279         newreact("CH,NH2+=>NH,CH2+",hmrate,3.5e-10,0,0); /* UMIST   */
01280         newreact("CH+,NH3=>NH4+,C",hmrate,4.05e-10,0,0); /* UMIST   */
01281         newreact("CH,NH3+=>NH4+,C",hmrate,6.9e-10,0,0); /* UMIST   */
01282         newreact("CH,HCN+=>CN,CH2+",hmrate,6.3e-10,0,0); /* UMIST   */
01283         newreact("CH,HNO+=>NO,CH2+",hmrate,6.2e-10,0,0); /* UMIST   */
01284         newreact("CH+,S=>HS+,C",hmrate,4.7e-10,0,0); /* UMIST   */
01285         newreact("CH+,S=>CS+,H",hmrate,4.7e-10,0,0); /* UMIST   */
01286         newreact("CH,S+=>CS+,H",hmrate,6.2e-10,0,0); /* UMIST   */
01287         newreact("CH,HS+=>S,CH2+",hmrate,5.8e-10,0,0); /* UMIST   */
01288         newreact("N,CH2+=>HCN+,H",hmrate,2.2e-10,0,0); /* UMIST   */
01289         newreact("N+,NH=>N2+,H",hmrate,3.7e-10,0,0); /* UMIST   */
01290         newreact("N,NH+=>N2+,H",hmrate,1.3e-9,0,0); /* UMIST   */
01291         newreact("N+,CH4=>HCN+,H2,H",hmrate,5.6e-11,0,0); /* UMIST   */
01292         newreact("N,OH+=>NO+,H",hmrate,8.9e-10,0,0); /* UMIST   */
01293         newreact("N+,NH3=>NH2+,NH",hmrate,2.16e-10,0,0); /* UMIST   */
01294         newreact("N,H2O+=>HNO+,H",hmrate,1.9e-10,0,0); /* UMIST   */
01295         newreact("N+,NO=>N2+,O",hmrate,7.9e-11,0,0); /* UMIST   */
01296         newreact("N+,O2=>NO,O+",hmrate,3.66e-11,0,0); /* UMIST   */
01297         newreact("N+,O2=>NO+,O",hmrate,2.63e-10,0,0); /* UMIST   */
01298         newreact("N,O2+=>NO+,O",hmrate,1.8e-10,0,0); /* UMIST   */
01299         newreact("N,HS+=>NS+,H",hmrate,7.4e-10,0,0); /* UMIST   */
01300         newreact("N,SiO+=>NO+,Si",hmrate,9.e-11,0,0); /* UMIST   */
01301         newreact("N,SiO+=>NO,Si+",hmrate,2.1e-10,0,0); /* UMIST   */
01302         newreact("N,SO+=>NS+,O",hmrate,5.e-11,0,0); /* UMIST   */
01303         newreact("N+,OCS=>CS+,NO",hmrate,7.e-11,0,0); /* UMIST   */
01304         newreact("CH2,NH+=>CH3+,N",hmrate,1.4e-9,0,0); /* UMIST   */
01305         newreact("CH2,NH2+=>CH3+,NH",hmrate,4.9e-10,0,0); /* UMIST   */
01306         newreact("CH2+,NH3=>NH4+,CH",hmrate,1.26e-9,0,0); /* UMIST   */
01307         newreact("CH2,NH3+=>NH2,CH3+",hmrate,9.6e-10,0,0); /* UMIST   */
01308         newreact("CH2,HCN+=>CN,CH3+",hmrate,8.7e-10,0,0); /* UMIST   */
01309         newreact("CH2,HNO+=>NO,CH3+",hmrate,8.6e-10,0,0); /* UMIST   */
01310         newreact("CH2+,S=>HCS+,H",hmrate,1.4e-9,0,0); /* UMIST   */
01311         newreact("CH2,S+=>HCS+,H",hmrate,1.0e-11,0,0); /* UMIST   */
01312         newreact("NH+,NH=>NH2+,N",hmrate,1.0e-9,0,0); /* UMIST   */
01313         newreact("NH+,O=>OH+,N",hmrate,1.0e-9,0,0); /* UMIST   */
01314         newreact("NH,O+=>NO+,H",hmrate,3.6e-10,0,0); /* UMIST   */
01315         newreact("NH+,NH2=>NH3+,N",hmrate,1.5e-9,0,0); /* UMIST   */
01316         newreact("NH,NH2+=>NH3+,N",hmrate,7.3e-10,0,0); /* UMIST   */
01317         newreact("NH+,OH=>H2O+,N",hmrate,1.0e-9,0,0); /* UMIST   */
01318         newreact("NH,OH+=>NH2+,O",hmrate,3.6e-10,0,0); /* UMIST   */
01319         newreact("NH+,NH3=>NH4+,N",hmrate,6.e-10,0,0); /* UMIST   */
01320         newreact("NH,NH3+=>NH4+,N",hmrate,7.1e-10,0,0); /* UMIST   */
01321         newreact("NH,CH5+=>CH4,NH2+",hmrate,7.1e-10,0,0); /* UMIST   */
01322         newreact("NH+,H2O=>NH3+,O",hmrate,1.75e-10,0,0); /* UMIST   */
01323         newreact("NH+,H2O=>H3O+,N",hmrate,1.05e-9,0,0); /* UMIST   */
01324         newreact("NH+,H2O=>HNO+,H2",hmrate,3.5e-10,0,0); /* UMIST   */
01325         newreact("NH,H2O+=>H3O+,N",hmrate,7.1e-10,0,0); /* UMIST   */
01326         newreact("NH+,H2O=>OH,NH2+",hmrate,8.75e-10,0,0); /* UMIST   */
01327         newreact("NH+,CN=>HCN+,N",hmrate,1.6e-9,0,0); /* UMIST   */
01328         newreact("NH,HCN+=>CN,NH2+",hmrate,6.5e-10,0,0); /* UMIST   */
01329         newreact("NH,CO+=>HCO+,N",hmrate,3.2e-10,0,0); /* UMIST   */
01330         newreact("NH,Si+=>SiN+,H",hmrate,1.0e-9,0,0); /* UMIST   */
01331         newreact("NH,HNO+=>NO,NH2+",hmrate,6.3e-10,0,0); /* UMIST   */
01332         newreact("NH,O2+=>HNO+,O",hmrate,3.2e-10,0,0); /* UMIST   */
01333         newreact("NH+,O2=>NO+,OH",hmrate,2.05e-10,0,0); /* UMIST   */
01334         newreact("NH,O2+=>NO2+,H",hmrate,3.2e-10,0,0); /* UMIST   */
01335         newreact("NH+,S=>HS+,N",hmrate,6.9e-10,0,0); /* UMIST   */
01336         newreact("NH+,S=>NS+,H",hmrate,6.9e-10,0,0); /* UMIST   */
01337         newreact("NH,S+=>NS+,H",hmrate,6.3e-10,0,0); /* UMIST   */
01338         newreact("CH3+,NH3=>NH4+,CH2",hmrate,3.4e-10,0,0); /* UMIST   */
01339         newreact("CH3+,S=>HCS+,H2",hmrate,1.4e-9,0,0); /* UMIST   */
01340         newreact("O,NH2+=>HNO+,H",hmrate,7.2e-11,0,0); /* UMIST   */
01341         newreact("O,NH3+=>HNO+,H2",hmrate,1.0e-11,0,0); /* UMIST   */
01342         newreact("O+,CN=>NO+,C",hmrate,1.0e-9,0,0); /* UMIST   */
01343         newreact("O+,HCN=>CO+,NH",hmrate,1.2e-9,0,0); /* UMIST   */
01344         newreact("O+,HCN=>NO+,CH",hmrate,1.2e-9,0,0); /* UMIST   */
01345         newreact("O+,HCN=>HCO+,N",hmrate,1.2e-9,0,0); /* UMIST   */
01346         newreact("O+,N2=>NO+,N",hmrate,1.2e-12,0,0); /* UMIST   */
01347         newreact("O,N2+=>NO+,N",hmrate,1.3e-10,0,0); /* UMIST   */
01348         newreact("O,HNO+=>NO2+,H",hmrate,1.e-12,0,0); /* UMIST   */
01349         newreact("O,HS+=>S+,OH",hmrate,2.9e-10,0,0); /* UMIST   */
01350         newreact("O,HS+=>SO+,H",hmrate,2.9e-10,0,0); /* UMIST   */
01351         newreact("O,SiN+=>SiO+,N",hmrate,1.0e-9,0,0); /* UMIST   */
01352         newreact("O+,N2O=>NO+,NO",hmrate,6.3e-10,0,0); /* UMIST   */
01353         newreact("O,CS+=>S,CO+",hmrate,6.e-11,0,0); /* UMIST   */
01354         newreact("O,HCS+=>S,HCO+",hmrate,5.e-12,0,0); /* UMIST   */
01355         newreact("O,HCS+=>OCS+,H",hmrate,5.e-12,0,0); /* UMIST   */
01356         newreact("O+,NO2=>O2,NO+",hmrate,8.3e-10,0,0); /* UMIST   */
01357         newreact("O,NS+=>S,NO+",hmrate,6.1e-10,0,0); /* UMIST   */
01358 
01359         /* Create linear list of species and populate it... */
01360         coreactions.list =  (struct COmole_rate_s **)MALLOC((size_t)coreactions.n*
01361                                                                                                                                                  sizeof(struct COmole_rate_s *));
01362 
01363         /* ...first active species */
01364         i = makeplist(mole_priv.reactab,(void **)coreactions.list,
01365                                                                 coreactions.n,NULL); 
01366         ASSERT (i == coreactions.n); 
01367 
01368 }
01369 STATIC void newreact(const char label[], 
01370                                                                                  double (*fun)(struct COmole_rate_s *rate), double a, double b, double c)
01371 {
01372         struct COmole_rate_s *rate;
01373         struct molecule    *sp;
01374         data_u *p;
01375         int i,j,prod,exists;
01376         char buf[7];
01377 
01378         DEBUG_ENTRY("newreact()");
01379 
01380         coreactions.n++;
01381         rate = (struct COmole_rate_s *) MALLOC (sizeof(struct COmole_rate_s));
01382         p = addentry(label,0,mole_priv.reactab,&exists);
01383         p->p = (void *) rate;
01384         rate->label = (char *) p->key;
01385         rate->fun = fun;
01386         if(fun == hmrate && b == 0. && c == 0.) /* Reaction rate is actually simpler */
01387         {
01388                 rate->fun = constrate;
01389         }
01390         rate->a = a;
01391         rate->b = b;
01392         rate->c = c;
01393         rate->rk = 0.0; /* Sane initial value, in case used early */
01394 
01395         rate->index = coreactions.n-1;
01396 
01397         rate->nreactants = rate->nrates = rate->nproducts = rate->photon = 0;
01398         j = prod = 0;
01399         for(i=0;!i || label[i-1]!='\0';i++) 
01400         {
01401                 if(label[i] == ',' || label[i] == '=' || label[i] == '\0') 
01402                 {
01403                         buf[j] = '\0';
01404                         j = 0;
01405                         sp = findspecies(buf);
01406                         if(sp != &null_mole) 
01407                         {
01408                                 if(prod == 0) 
01409                                 {
01410                                         fixit(); /* Bodge, should really test if active when filling matrix not when defining reaction */
01411                                         if(sp->active) 
01412                                         {
01413                                                 if(rate->nreactants >= MAXREACTANTS) 
01414                                                 {
01415                                                         fprintf(stderr,"Mole_co_etc: Too many reactants in %s, only %d allowed\n",label,MAXREACTANTS);
01416                                                         cdEXIT( EXIT_FAILURE );
01417                                                 }
01418                                                 rate->reactants[rate->nreactants] = sp;
01419                                                 rate->nreactants++;
01420                                         }
01421                                         if(rate->nrates >= MAXREACTANTS) 
01422                                         {
01423                                                 fprintf(stderr,"Mole_co_etc: Too many rate species in %s, only %d allowed\n",label,MAXREACTANTS);
01424                                                 cdEXIT( EXIT_FAILURE );
01425                                         }
01426                                         rate->rate_species[rate->nrates] = sp;
01427                                         rate->nrates++;
01428                                 } 
01429                                 else 
01430                                 {
01431                                         fixit(); /* Bodge, should really test if active when filling matrix not when defining reaction */
01432                                         if(sp->active) 
01433                                         {
01434                                                 if(rate->nproducts >= MAXPRODUCTS) 
01435                                                 {
01436                                                   fprintf(stderr,"Mole_co_etc: Too many products in %s, only %d allowed\n",label,MAXPRODUCTS);
01437                                                         cdEXIT( EXIT_FAILURE );
01438                                                 }
01439                                                 rate->products[rate->nproducts] = sp;
01440                                                 rate->nproducts++;
01441                                         }
01442                                 }
01443                         }
01444                         else 
01445                         {
01446                                 if(0) 
01447                                         fprintf(stderr,"Could not find %s\n",buf);
01448                                 if(strncmp(buf,"PHOTON",6) == 0) {
01449                                         if(prod == 0)
01450                                                 rate->photon--;
01451                                         else
01452                                                 rate->photon++;
01453                                 }
01454                                 fixit(); /* Should do something proper about non-network species */
01455                         }
01456                         if(label[i] == '=') 
01457                         {
01458                                 i++;
01459                                 prod = 1;
01460                         }
01461                 } 
01462                 else 
01463                 {
01464                         buf[j] = label[i];
01465                         j++;
01466                 }
01467         }
01468 
01469         /* >> chng 06 Oct 10 rjrw: use 1/(1/m1+1/m2) for reduced mass to prevent underflow */
01470         if(rate->nrates == 2)
01471         {
01472                 rate->reduced_mass = 1./(1./rate->rate_species[0]->mole_mass+1./rate->rate_species[1]->mole_mass);
01473         }
01474         else
01475         {
01476                 rate->reduced_mass = 0.;
01477         }
01478 }
01479 
01480 
01481 /*
01482  * Functions to specify chemical rates -- note that the rate->a overall scale
01483  * factor is applied in CO_update_rks
01484  *
01485  */
01486 
01487 #include "phycon.h"
01488 #include "physconst.h"
01489 #include "doppvel.h"
01490 
01491 STATIC double noneq_offset(struct COmole_rate_s *rate);
01492 
01493 STATIC double hmrate(struct COmole_rate_s *rate) 
01494 {
01495         double te;
01496 
01497         DEBUG_ENTRY("hmrate()");
01498 
01499         te = phycon.te+noneq_offset(rate);
01500 
01501         return pow(te/300.,rate->b)*exp(-rate->c/te);
01502 }
01503 
01504 /* Add in non-equilibrium chemistry.  This is done by assuming
01505  * that turbulence reduces the temperature barrier, thereby
01506  * enhancing reaction rates for molecules such as CH+.  The 
01507  * "effective temperature is defined according to 
01508  * >>refer Federman et al. 1996, MNRAS. L41-46  */
01509 
01510 /* The effective temperature is defined as:
01511  * T(effective) = T + (1/3)*reduced_mass*turbulent_velocity^2/BOLTZMANN_CONSTANT
01512  */
01513 STATIC double noneq_offset(struct COmole_rate_s *rate)
01514 {       
01515   /* This logic could be cached by using distinct rate functions in newreact */
01516         int nreact, n;
01517         bool lgFact;
01518 
01519         DEBUG_ENTRY("noneq_offset()");
01520 
01521         lgFact = false;
01522         if(co.lgNonEquilChem)
01523         { 
01524                 if(co.lgNeutrals) 
01525                 {
01526                         lgFact = true;
01527                 }
01528                 else
01529                 {
01530                         nreact = rate->nreactants;
01531                         for(n=0;n<nreact;n++) 
01532                         {
01533                                 if(rate->reactants[0]->nElec != 0)
01534                                 {
01535                                         lgFact = true;
01536                                         break;
01537                                 }
01538                         }
01539                 }
01540         }
01541 
01542         if( lgFact ) 
01543                 return 0.333f*POW2(DoppVel.TurbVel)/BOLTZMANN*rate->reduced_mass;
01544         else
01545                 return 0.;
01546 }
01547 STATIC double constrate(struct COmole_rate_s *rate) 
01548 {
01549         return 1.;
01550 }
01551         /* hmi.UV_Cont_rel2_Habing_TH85_depth is field relative to Habing background, dimensionless */
01552         /* >>chng 04 apr 01, move from TH85 to DB96, also correct leading coef to use
01553          * UMIST database value */
01554         /* CO_photo_dissoc_rate = 1.67e-10f*hmi.UV_Cont_rel2_Habing_TH85_depth;*/
01555 
01556         /* TRY MOVING PHOTORATES OUT OF LOOP */
01557 
01558         /* >>chng 02 jul 04 -- The following are dissociation rates for various molecular species
01559         For right now we will calculate this rate by the standard form:
01560                 (alpha)*Go*exp(-Beta*AV)
01561         when the command "set Leiden hack UMIST rates" is used.  Otherwise we
01562         will just let cloudy calculate the value of the UV radiation field */
01563 #include "rfield.h"
01564 STATIC double th85rate(struct COmole_rate_s *rate) 
01565 {
01566         double rk;
01567 
01568         DEBUG_ENTRY("th85rate()");
01569 
01570         if(co.lgUMISTrates || rate->b == 0.0)
01571         {
01572                 rk = hmi.UV_Cont_rel2_Habing_TH85_depth/1.66;
01573         }
01574         else 
01575         {
01576                 rk = hmi.UV_Cont_rel2_Habing_TH85_face/1.66*exp(-(rate->b*rfield.extin_mag_V_point));
01577         }
01578 
01579         return rk;
01580 }
01581 #include "secondaries.h"
01582         /* >> chng aug 24, 05 NPA This is the cosmic ray ionization rate used in the molecular network.  
01583          * TH85 and the e-mail from Amiel Sternberg has each cosmic ray ionization rate as a 
01584          * leading coefficient multiplied by a scale factor.
01585          * The leading coefficient is defined as the cosmic ray rate for H + CR = > H+
01586          * + e- .  For molecules in the heavy element molecular network, this scale
01587          * factor is derived by taking the rate for:
01588 
01589         X + CRPHOT => Y + Z 
01590         and dividing it by the rate:
01591         H + CRP => H+ + e-
01592 
01593         This scale factor is 2.17 for all cosmic ray reactions in this network 
01594                 crnu_rate = secondaries.csupra[ipHYDROGEN][0];*/
01595 STATIC double crnurate(struct COmole_rate_s *rate) 
01596 {
01597         return 2.17*secondaries.csupra[ipHYDROGEN][0];
01598 }
01599 #include "ionbal.h"
01600 STATIC double co_lnu_c_o_lnu(struct COmole_rate_s *rate)
01601 {
01602         double val = 0;
01603         int ns, ion;
01604         /* inner shell photoionization of CO, assume rates are same as K 1s and 2s
01605          * shell of C and O */
01606         /* >>chng 04 may 26, upper limit should be ns<2, had been ns<2 so picked up
01607          * valence shell, which was incorrect */
01608 
01609         DEBUG_ENTRY("co_lnu_c_o_lnu()");
01610 
01611         for( ns=0; ns<2; ++ns )
01612         {
01613                 ion = 0;
01614                 val += ionbal.PhotoRate_Shell[ipCARBON][ion][ns][0];
01615                 val += ionbal.PhotoRate_Shell[ipOXYGEN][ion][ns][0];
01616         }
01617 
01618         return val;
01619 }
01620 
01621 STATIC double ele_ion_ladder(struct COmole_rate_s *rate)
01622 {
01623         long int ipElem;
01624 
01625         ipElem = rate->reactants[0]->nelem_hevmol;
01626 
01627         if(rate->reactants[0]->nElec == 1)
01628                 return ionbal.RateRecomTot[ipElem][0]+gv.GrainChTrRate[ipElem][1][0];
01629         else
01630                 return ionbal.RateIonizTot[ipElem][0]+gv.GrainChTrRate[ipElem][0][1];
01631 }
01632         /******************************** Gas-Grain Chemistry**********************************/
01633 
01634         /*  The Gas-Grain Chemistry rates are taken from: 
01635         >>refer Hasegawa, T. I. & Herbst, E. 1993, MNRAS, 261, 83
01636 
01637         So far only CO depletion onto grains is considered, however, this code can be generalized 
01638         if desired to other molecules, using the data in the above paper.  There are three important reactions 
01639         to determine the abundance of a molecule on grain surfaces deep in molecular clouds.  The
01640         rate of accretion of molecule X onto grains is
01641 
01642         R(accretion) = PI*[grain_radius]^2*[thermal velocity]*[density_of_grains]
01643 
01644         Two processes remove molecule X from the grain surface, and that is thermal evaporation, due
01645         to the heat of the grain, and cosmic ray deabsorption.  The first of these rates come from the 
01646         above paper, and depends primarily on the dust temperature.  The cosmic ray rate is a constant,
01647         calculated in Hasegawa and Herbst.  
01648 
01649         For each molecule desired, I have created a new species which is the density of that molecule
01650         on the grain surface */
01651 
01652 
01653         /* evaporation rate of molecule on grain is:
01654 
01655         k(evap) = [vibrational absorption frequency]*exp[-binding_energy/dust_temperature]
01656 
01657         The binding energies come from Hasegawa and Herbst, Table 4.  The vibrational frequency comes from
01658         equation 3 of >>refer Hasegawa, T. I., Herbst, E., & Leung, C. M. 1992, ApJSS, 82, 167
01659 
01660         [vibrational absorption frequency] = 
01661         SQRT[[2*number_of_sites_for_grain_absorption*binding_energy]/[PI^2*mass_of_molecule]]
01662 
01663         **********************************************************************************************/
01664 
01665 STATIC double vib_evap(struct COmole_rate_s *rate)
01666 {
01667         double binding_energy,  exponent, vib_freq, number_of_sites /* on grain */;
01668         int nd;
01669 
01670         DEBUG_ENTRY("vib_evap()");
01671 
01672         exponent = 0.0;
01673 
01674         binding_energy = rate->b;
01675         /*>>chng 06 nov 28 only include source from molecules if we have an estimated first 
01676          * solution - first test is that we have called mole at least twice,
01677          * second test is that we are on a later iteration */
01678         if( conv.nTotalIoniz > 1 || iteration > 1 )
01679         {
01680                 for( nd=0; nd < gv.nBin; nd++ )
01681                 {
01682                         exponent += exp(-binding_energy/gv.bin[nd]->tedust);
01683                 }       
01684         }
01685         number_of_sites = 1.5e15;
01686 
01687         vib_freq = sqrt(2*number_of_sites*binding_energy/(PI*PI*rate->reactants[0]->mole_mass));
01688 
01689         /*>>chng 06 jan 11, NPA - In some H+ regions the grain temperatures are so low
01690         that molecular freeze out occurs.  This should not happen, because the ices
01691         should sublimate in such a harsh environment.  Therefore, we introduce an
01692         artificial sublimation rate to destroy ices.  THIS IS NOT A PHYSICAL RATE!!!!
01693         only a rate that gets the desired, realistic result */
01694         /*>>chng 06 sep 03 rjrw -- include this in standard evaporation rate coeff (the artificial part is the sexp term) */
01696         /* Rate comes from Table curve and assumes that rate is high (~1) in H+
01697          * region and negligible ( < 1e-30) in molecular cloud - designed to stop
01698          * freeze-out above 100 K */
01699 
01700         return vib_freq*exponent+sexp( 555.89/phycon.sqrte - 5.55 );
01701 }
01702 STATIC double grn_abs(struct COmole_rate_s *rate)
01703 {
01704         int nd;
01705         double den_times_area;
01706 
01707         DEBUG_ENTRY("grn_abs()");
01708 
01709         den_times_area = 0.0;
01710 
01711         fixit(); /* Should cache value */
01712         /* calculate the rates that are dependent on grain physics.  This includes grain density, 
01713         cross sectional area, and dust temperature of each constituent.  Note that 
01714 
01715         gv.bin[nd]->IntArea/4.*gv.bin[nd]->cnv_H_pCM3
01716 
01717         is the integrated projected grain surface area per cm^3 of gas for each grain size bin */
01718 
01719         /* >>chng 06 feb 28, turn off this rate when no grain molecules */
01720         /* >>chng 06 dec 05 rjrw: do this in newreact rather than rate */
01721         for( nd=0; nd < gv.nBin; nd++ )
01722         {
01723                 /* >>chng 06 mar 04, update expression for projected grain surface area, PvH */
01724                 den_times_area += gv.bin[nd]->IntArea/4.*gv.bin[nd]->cnv_H_pCM3;
01725         }
01726 
01727         return den_times_area*sqrt(8.*BOLTZMANN*phycon.te/(PI*rate->reactants[0]->mole_mass));
01728 }
01729 
01730 #include "rt.h"
01731 STATIC double th85rate_co(struct COmole_rate_s *rate)
01732 {
01733         double esc_co;
01734         /******************************************************************************************
01735         *          First define the rate, which is of the form:
01736         *          
01737         *               R = (Ro)*(Go*exp(-3.2Av))*Beta(tau(CO))
01738         *
01739         *          where:
01740         *
01741         *          Ro = 1.67*e-10
01742         *          (Go*exp(-3.2Av)) = hmi.UV_Cont_rel2_Habing_TH85_depth
01743         *          tauCO = 4.4e-15 * findspecies("CO")->hevcol / (DoppVel.doppler[LIMELM]/1e5) /
01744         *               (1. + phycon.sqrte*0.6019); 
01745         *       tauC = 1.6*e17*N(C)
01746         *          Beta(tau(CO)) = esca0k2(esc_co) 
01747         ********************************************************************************************/   
01748         /* eqn 12 of 
01749          * >>refer      CO      dissoc  Hollenbach, D.J., Takahashi, T., & Tielens, A. 1991, ApJ, 377, 192
01750          * based on
01751          * >>refer      CO      dissoc  Black, J.H., & van Dishoeck, E.F. 1988, ApJ, 334, 771 */
01752         esc_co = 4.4e-15 * rate->reactants[0]->hevcol / 
01753                          /* the line width in km/s */
01754                          (DoppVel.doppler[LIMELM]/1e5) /
01755                          /* this term accounts for populations within ground elec state */
01756                          (1. + phycon.sqrte*0.6019);
01757         return esca0k2(esc_co)*th85rate(rate);
01758 }
01759 STATIC double oh_c2h2_co_ch3(struct COmole_rate_s *rate)
01760 {
01761         /* This rate will blow up if the temperature gets too low, therefore 
01762          * set this rate for T < 500 equal to the rate at 500 K */
01763         if(phycon.te > 500)
01764         {               
01765                 return hmrate(rate);
01766         }
01767         else
01768         {
01769                 return 6.3E-18;
01770         }
01771 }
01772 STATIC double h_hnc_hcn_h(struct COmole_rate_s *rate)
01773 {
01774         if(phycon.te > 100)
01775         {               
01776                 return hmrate(rate);
01777         }
01778         else
01779         {
01780                 return 1e-15;
01781         }
01782 }

Generated on Mon Feb 16 12:01:18 2009 for cloudy by  doxygen 1.4.7