cloudy trunk
|
00001 /* This file is part of Cloudy and is copyright (C)1978-2008 by Gary J. Ferland and 00002 * others. For conditions of distribution and use see copyright notice in license.txt */ 00003 00004 #ifndef _MOLE_CO_PRIV_H_ 00005 #define _MOLE_CO_PRIV_H_ 00006 00007 /* mole_co_priv.h */ 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 /* Structure containing reaction data */ 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; /* Index of element in external arrays */ 00038 int 00039 ipMl, /* Index of atomic species in molecule arrays */ 00040 ipMlP, 00041 ipZ; /* Index of + ions in molecule arrays */ 00042 char chName[3]; /* Chemical symbols for elements */ 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 /* _MOLE_CO_PRIV_H_ */