00001
00002
00003
00004 #ifndef _RFIELD_H_
00005 #define _RFIELD_H_
00006
00007
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
00091
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;
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,
00162 *otscon,
00163
00166 *otslinNew,
00167 *otsconNew,
00168 **otssav;
00169
00171 realnum *outlin,
00172 *outlin_noplot;
00173
00175 realnum *reflin;
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;
00190
00192 char **chContLabel;
00193
00196 realnum **gff;
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
00285
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