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=6};
00036 extern struct chem_element_s {
00037 int ipCl;
00038 int
00039 ipMl,
00040 ipMlP,
00041 ipZ;
00042 char chName[CHARS_ELEMENT];
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