00001 
00002 
00003 
00004 #ifndef _MOLE_CO_PRIV_H_
00005 #define _MOLE_CO_PRIV_H_
00006 
00007 
00008 
00009 #include "hash.h"
00010 
00011 extern struct mole_priv_s {
00012         hashtab *spectab, *reactab, *elemtab;
00013 } mole_priv;
00014 
00015 EXTERN struct t_coreactions {
00016         struct COmole_rate_s **list;
00017         long int n;
00018 } coreactions;
00019 
00020 #define MAXREACTANTS 3
00021 #define MAXPRODUCTS  4
00022 
00023 
00024 struct COmole_rate_s {
00025         int index;
00026         char *label;
00027         int nreactants, nrates, nproducts,photon;
00028         struct molecule *reactants[MAXREACTANTS];
00029         struct molecule *rate_species[MAXREACTANTS];
00030         struct molecule *products[MAXPRODUCTS];
00031         double rk, reduced_mass, a, b, c;
00032         double (*fun)(struct COmole_rate_s *rate);
00033 };
00034 
00035 enum {CHARS_ELEMENT=3};
00036 extern struct chem_element_s {
00037         int ipCl; 
00038         int
00039           ipMl,   
00040                 ipMlP,
00041                 ipZ;  
00042         char chName[3]; 
00043 } **chem_element;
00044 
00045 extern int32 *ipiv;
00046 extern realnum *tot_ion;
00049 extern void CO_step(void);
00054 extern void CO_solve(
00055         bool *lgNegPop, 
00056         bool *lgZerPop );
00057 
00058 #endif