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