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 _RFIELD_H_ 00005 #define _RFIELD_H_ 00006 00007 /* rfield.h */ 00008 00010 #define WL_V_FILT 5500. 00011 00013 #define WL_B_FILT 4400. 00014 00016 void rfield_opac_zero( long lo , long ihi ); 00017 00019 extern bool lgRfieldMalloced; 00020 00021 EXTERN struct t_rfield { 00022 00031 long int nflux; 00032 00034 long int nupper; 00035 00037 realnum emm; 00038 00040 realnum egamry; 00041 00043 realnum FluxFaint; 00044 00046 realnum *anu; 00047 00050 realnum *AnuOrg; 00051 00053 realnum *widflx; 00054 00056 long int *line_count; 00057 00059 realnum *OccNumbBremsCont; 00060 00062 realnum *OccNumbContEmitOut; 00063 00065 realnum *anulog, 00066 *anusqr, 00067 *anu2, 00068 *anu3; 00069 00074 realnum *flux; 00075 00077 realnum *flux_isotropic; 00078 00080 realnum *flux_beam_time , *flux_beam_const; 00081 00083 realnum *flux_accum; 00084 00088 bool lgMustBlockHIon; 00089 00090 /* this is set true if H-ionizing radiation is blocked with extinguish 00091 * command */ 00092 bool lgBlockHIon; 00093 00095 bool lgDoLineTrans; 00096 00099 bool lgOpacityReevaluate; 00100 00102 bool lgCMB_set; 00103 00106 bool lgIonizReevaluate; 00107 00109 realnum *convoc; 00110 00113 realnum *OccNumbIncidCont; 00114 00116 realnum *OccNumbDiffCont; 00117 00120 double *ContBoltz; 00121 00124 realnum **ConEmitLocal/* [depth][energy]*/; 00125 00127 realnum *ConEmitReflec; 00128 00132 realnum *ConEmitOut; 00133 00135 realnum *ConInterOut; 00136 00138 realnum *ConRefIncid; 00139 00142 realnum *SummedCon; 00143 realnum *SummedDif; 00144 realnum *SummedOcc; 00145 realnum *SummedDifSave; 00146 00149 realnum *ConOTS_local_photons, 00151 *ConOTS_local_OTS_rate; 00152 00154 realnum *TotDiff2Pht; 00155 00158 realnum 00160 *otslin/*[NC_ELL]*/, 00162 *otscon/*[NC_ELL]*/, 00163 00166 *otslinNew/*[NC_ELL]*/, 00167 *otsconNew/*[NC_ELL]*/, 00168 **otssav/*[NC_ELL][2]*/; 00169 00171 realnum *outlin, 00172 *outlin_noplot; 00173 00175 realnum *reflin/*[NC_ELL]*/; 00176 00178 realnum *flux_total_incident; 00179 realnum *flux_beam_const_save , *flux_time_beam_save , *flux_isotropic_save; 00180 00182 realnum time_continuum_scale; 00183 00186 realnum DiffPumpOn; 00187 00189 char **chLineLabel/*[NC_ELL][5]*/; 00190 00192 char **chContLabel/*[NC_ELL][5]*/; 00193 00196 realnum **gff/*[LIMELM][NC_ELL]*/; 00197 00201 bool lgCompileGauntFF; 00202 00205 char chDffTrns[4]; 00206 00210 bool lgOutOnly; 00211 00214 long int ipEnergyBremsThin; 00215 realnum EnergyBremsThin; 00216 00218 long int ipMaxBolt; 00219 00221 bool lgInducProcess; 00222 00224 double *comup, 00225 *comdn; 00226 00228 long int ipB_filter , ipV_filter; 00229 00232 long int ipG0_TH85_lo , ipG0_TH85_hi; 00233 00236 long int ipG0_DB96_lo , ipG0_DB96_hi; 00237 00239 long int ipG0_spec_lo , ipG0_spec_hi; 00240 00242 long int ip1000A; 00243 00246 double extin_mag_B_point , extin_mag_V_point; 00247 00250 double extin_mag_B_extended , extin_mag_V_extended; 00251 00253 double opac_mag_B_point, opac_mag_V_point, opac_mag_B_extended , opac_mag_V_extended; 00254 00257 realnum *csigh, 00258 *csigc; 00259 00260 double comtot, 00261 cmheat, 00262 cmcool, 00263 comoff, 00264 cinrat; 00265 00267 bool lgComUndr; 00268 00271 # define LIMSPC 100 00272 00274 # define NCELL 130000 00275 00276 double totpow[LIMSPC], 00277 slope[LIMSPC], 00278 cutoff[LIMSPC][3], 00279 spfac[LIMSPC]; 00280 00282 bool lgTimeVary[LIMSPC]; 00283 00284 /* beamed or isotropic continuum? if isotropic then does not vary 00285 * with time */ 00286 bool lgBeamed[LIMSPC]; 00287 00288 long int nspec, 00289 ipspec; 00290 00297 realnum **tNuRyd , 00298 **tslop , 00300 **tFluxLog ; 00301 00304 int *lgContMalloc; 00305 00308 double range[LIMSPC][2]; 00309 00311 realnum *ConTabRead; 00312 00315 char chSpNorm[LIMSPC][5], 00316 chRSpec[LIMSPC][5], 00317 chSpType[LIMSPC][6]; 00318 00320 string ioTableRead[LIMSPC]; 00321 00323 realnum qhtot, 00324 qhe, 00325 qheii, 00326 qbal, 00327 qrad, 00328 qtot; 00329 00331 realnum uh; 00332 00334 realnum uheii; 00335 00337 bool lgUSphON; 00339 realnum rstrom; 00340 00343 bool lgHabing; 00344 00352 long int fine_opac_nelem; 00353 00355 long int fine_opac_nresolv; 00356 00358 realnum fine_opac_velocity_width; 00359 00362 realnum *trans_coef_zone; 00364 realnum *trans_coef_total; 00365 00368 long int *ipnt_coarse_2_fine; 00369 00371 realnum fine_ener_lo, fine_ener_hi; 00373 long nfine; 00375 long nfine_malloc; 00377 double fine_resol; 00379 realnum *fine_opac_zone; 00381 realnum *fine_opt_depth; 00383 realnum *fine_anu; 00384 00389 long int ipFineConVelShift; 00390 00392 bool lgOpacityFine; 00394 bool lgPunchOpacityFine; 00395 00397 bool lgFine_opac_update; 00398 00401 bool lgLyaOTS; 00402 00405 bool lgHeIIOTS; 00406 00408 bool lgKillOutLine; 00409 00411 bool lgKillOutCont; 00412 00414 bool lgKillOTSLine; 00415 00417 bool lgTableRead; 00418 00422 bool lgPlasNu; 00424 realnum plsfrq, 00426 plsfrqmax; 00428 long int ipPlasma, 00430 ipPlasmax; 00431 00434 bool lgMMok, 00435 lgHPhtOK, 00436 lgXRayOK, 00437 lgGamrOK; 00438 00440 realnum EnerGammaRay; 00441 long int ipEnerGammaRay; 00442 00444 bool lgHionRad; 00445 00447 realnum occmax, 00448 occmnu, 00449 tbrmax, 00450 tbrmnu, 00451 tbr4nu, 00452 occ1nu; 00453 00455 bool lgOcc1Hi; 00456 00457 } rfield; 00458 00459 00460 #endif /* _RFIELD_H_ */