00001 /* This file is part of Cloudy and is copyright (C)1978-2007 by Gary J. Ferland 00002 * For conditions of distribution and use see copyright notice in license.txt */ 00006 #define lgHeNew true 00007 00010 #define KillIfBelowPlasma(E_) ( (rfield.lgPlasNu && ((E_)<rfield.plsfrq) ) ? 0.:1. ) 00011 00013 void iso_create(void); 00014 00019 void iso_photo( long ipISO , long nelem ); 00020 00025 void iso_ionize_recombine( long ipISO , long nelem ); 00026 00031 void iso_continuum_lower( long ipISO , long nelem ); 00032 00037 void iso_cool( 00038 long int ipISO , 00039 long int nelem); 00040 00045 typedef struct { 00046 long n; 00047 long s; 00048 long l; 00049 } Elevels; 00050 00051 EXTERN struct t_iso 00052 { 00053 00058 Elevels ***quant_desig; 00059 00062 long int nLyman[NISO], 00064 nLyman_malloc[NISO]; 00065 00068 EmLine ***ExtraLymanLines; 00069 00072 long int ***ipIsoLevNIonCon; 00073 00076 double ***xIsoLevNIonRyd; 00077 00079 double ***ConBoltz; 00080 00083 double xIonSimple[NISO][LIMELM]; 00084 00086 bool lgColl_l_mixing[NISO]; 00087 00089 bool lgColl_excite[NISO]; 00090 00092 bool lgColl_ionize[NISO]; 00093 00095 bool lgPrtDepartCoef[NISO][LIMELM]; 00096 00098 bool lgPrtLevelPops[NISO][LIMELM]; 00099 00102 bool lgCollStrenThermAver; 00103 00106 bool lgInd2nu_On; 00107 00110 bool lgLevelsLowered[NISO][LIMELM]; 00111 00114 bool lgLevelsEverLowered[NISO][LIMELM]; 00115 00118 long int nCollapsed_max[NISO][LIMELM]; 00119 long int nCollapsed_local[NISO][LIMELM]; 00120 00123 long int nTopOff[NISO][LIMELM]; 00124 00136 long int numLevels_max[NISO][LIMELM]; 00137 long int numLevels_local[NISO][LIMELM]; 00138 00142 long int n_HighestResolved_max[NISO][LIMELM]; 00143 long int n_HighestResolved_local[NISO][LIMELM]; 00144 00146 long int numPrintLevels[NISO][LIMELM]; 00147 00149 float ***stat; 00150 00153 float stat_ion[NISO]; 00154 00156 double TwoNu_induc_up[NISO][LIMELM]; 00157 00159 double TwoNu_induc_dn[NISO][LIMELM]; 00160 00162 double TwoNu_induc_dn_max[NISO][LIMELM]; 00163 00169 double ****RadRecomb; 00170 00172 float CaseBCheck[NISO][LIMELM]; 00173 00175 double RadRec_caseB[NISO][LIMELM]; 00176 00179 double RadRec_effec[NISO][LIMELM]; 00180 00182 double ***RateLevel2Cont; 00183 00185 double ***RateCont2Level; 00186 00188 float RecomCollisFrac[NISO][LIMELM]; 00189 00192 long int ***ipOpac; 00193 00195 double ***Pop2Ion; 00196 00198 float ***ConOpacRatio; 00199 00201 double ***DepartCoef; 00202 00204 bool lgPopLTE_OK[NISO][LIMELM]; 00205 00207 double ***PopLTE; 00208 00210 double ***ColIoniz; 00211 00214 double pop_ion_ov_neut[NISO][LIMELM]; 00215 00217 double FreeBnd_net_Cool_Rate[NISO][LIMELM]; 00218 00220 double coll_ion[NISO][LIMELM]; 00221 00223 double cRest_cool[NISO][LIMELM]; 00224 00226 double xLineTotCool[NISO][LIMELM]; 00227 00229 double dLTot[NISO][LIMELM]; 00230 00232 double RadRecCool[NISO][LIMELM]; 00233 00235 double cBal_cool[NISO][LIMELM]; 00236 00238 double cLyrest_cool[NISO][LIMELM]; 00239 00241 double cLya_cool[NISO][LIMELM]; 00242 00244 double ***gamnc; 00245 00251 double ***RecomInducRate; 00252 00257 double ***RecomInducCool_Coef; 00258 00260 double RecomInducCool_Rate[NISO][LIMELM]; 00261 00263 double ****Boltzmann; 00264 00266 double ***PhotoHeat; 00267 00272 float SmallA; 00273 00277 long int ***ipSym2nu; 00278 00280 float ***As2nu; 00281 00284 long ipTwoPhoE[NISO][LIMELM]; 00285 long ipHalfTwoPhoE[NISO][LIMELM]; 00286 00288 int ipLyaRedist[NISO] , ipResoRedist[NISO] , ipSubRedist[NISO]; 00289 00291 int nLyaLevel[NISO]; 00292 00294 char chTypeAtomSet[NISO][10]; 00296 char chTypeAtomUsed[NISO][LIMELM][10]; 00297 00298 } iso;