00001
00002
00003
00004 #ifndef _ATOMFEII_H_
00005 #define _ATOMFEII_H_
00006
00016 void AssertFeIIDep( double *pred , double *BigError , double *StdDev );
00017
00020 void FeIIFillLow16(void);
00021
00023 void FeIICreate(void);
00025 void FeIIPrint(void);
00026
00027 void FeIILevelPops(void);
00028
00034 double FeIISumBand(realnum wl1,
00035 realnum wl2);
00036
00038 void FeII_RT_TauInc(void);
00039
00041 void FeII_RT_tau_reset(void);
00042
00044 void FeIIPoint(void);
00045
00046
00051 void FeIIAccel(double *fe2drive);
00052
00053
00059 void FeII_RT_Make( bool lgDoEsc ,
00060 bool lgUpdateFineOpac );
00061
00063 void FeIIAddLines( void );
00064
00068 void FeIIPunchLevels( FILE * ioPUN );
00069
00074 void FeIIPunchColden(
00075 FILE *ioPUN );
00076
00081 void FeII_Colden( const char *chLabel );
00082
00083
00087 void FeIIPunchLines( FILE * ioPUN );
00088
00092 void FeIIPunchOpticalDepth( FILE * ioPUN );
00093
00095 void FeII_LineZero(void);
00096
00098 void FeIIIntenZero(void);
00099
00101 double FeIIRadPress(void);
00102
00106 double FeII_InterEnergy(void);
00107
00113 void FeIIPunDepart(FILE* ioPUN ,
00114 bool lgDoAll );
00115
00116 void PunFeII( FILE * io );
00117
00123 void FeIIPun1Depart(FILE * ioPUN , long int nPUN );
00129 void FeIIPunData(
00130 FILE* ioPUN ,
00131 bool lgDoAll );
00132
00141 void FeIIPunPop(FILE* ioPUN ,
00142 bool lgPunchRange ,
00143 long int ipRangeLo ,
00144 long int ipRangeHi ,
00145 bool lgPunchDensity );
00146
00147
00154 void FeIIPunchLineStuff( FILE * io , realnum xLimit , long index);
00155
00156 #if 0
00157
00163 void FeIIPun1Pop(
00164 FILE * ioPUN ,
00165 long int nPUN );
00166 #endif
00167
00169 void FeIIZero(void);
00170
00172 void FeIIReset(void);
00173
00175 void FeII_OTS(void);
00176
00178 void FeII_RT_Out(void);
00179
00181 void ParseAtomFeII(char *chCard );
00182
00184 #define NFE2LEVN 371
00185
00189 extern bool lgFeIIMalloc;
00190
00191 EXTERN struct t_FeII {
00192
00195 long int nFeIILevel;
00197 long int nFeIILevelAlloc;
00198
00202 bool lgFeIILargeOn;
00203
00205 bool lgSlow;
00206
00208 bool lgPrint;
00209
00211 bool lgSimulate;
00212
00214 char chFeIIAtom[7];
00215
00217 bool lgShortFe2;
00218
00221 bool lgLyaPumpOn;
00222
00225 realnum fe2ener[2];
00226
00228 realnum fe2thresh;
00229
00231 realnum fe2con_wl1 , fe2con_wl2;
00233 long int nfe2con;
00234
00236 int ipRedisFcnResonance;
00237 int ipRedisFcnSubordinate;
00238
00242 double Fe2_large_cool,
00243 ddT_Fe2_large_cool,
00244 Fe2_large_heat;
00245
00248 double
00249
00250 ddT_Fe2_UVsimp_cool ,
00251 Fe2_UVsimp_cool;
00252
00254 double fe21308,
00255 fe21207,
00256 fe21106,
00257 fe21006,
00258 fe21204,
00259 fe21103,
00260 fe21104,
00261 fe21001,
00262 fe21002,
00263 fe20201,
00264 fe20302,
00265 fe20706,
00266 fe20807,
00267 fe20908,
00268 fe21007,
00269 fe21107,
00270 fe21108,
00271 fe21110,
00272 fe21507,
00273 fe21208,
00274 fe21209,
00275 fe21211,
00276 fe21406,
00277 fe21508,
00278 fe21609;
00280 double
00281 fe25to6 ,
00282 fe27to7 ,
00283 fe28to8 ,
00284 fe29to9 ,
00285 fe32to6 ,
00286 fe33to7 ,
00287 fe37to7 ,
00288 fe39to8 ,
00289 fe40to9 ,
00290 fe37to6 ,
00291 fe39to7 ,
00292 fe40to8 ,
00293 fe41to9 ,
00294 fe39to6 ,
00295 fe40to7 ,
00296 fe42to7 ,
00297 fe41to8 ,
00298 fe42to6 ,
00299 fe43to7 ,
00300 fe36to2 ,
00301 fe36to3 ,
00302 fe32to1 ,
00303 fe33to2 ,
00304 fe36to5 ,
00305 fe32to2 ,
00306 fe33to3 ,
00307 fe30to3 ,
00308 fe33to6 ,
00309 fe24to2 ,
00310 fe32to7 ,
00311 fe35to8 ,
00312 fe34to8 ,
00313 fe27to6 ,
00314 fe28to7 ,
00315 fe30to8 ,
00316 fe24to6 ,
00317 fe29to8 ,
00318 fe24to7 ,
00319 fe22to7 ,
00320 fe38to11 ,
00321 fe19to8 ,
00322 fe17to6 ,
00323 fe18to7 ,
00324 fe18to8 ,
00325 fe80to28 ,
00326 fe17to7 ,
00327 for7;
00328
00329 } FeII;
00330
00331
00332
00333
00335 const int NFEII = 373;
00337 const int NFE2PR = 61;
00338
00339 class t_fe2ovr_la : public Singleton<t_fe2ovr_la>
00340 {
00341 friend class Singleton<t_fe2ovr_la>;
00342 protected:
00343 t_fe2ovr_la();
00344 private:
00345 realnum fe2lam[NFEII];
00346 realnum fe2osc[NFEII];
00347 realnum fe2enr[NFEII];
00348 realnum fe2gs[NFEII];
00349
00350 long int ipfe2[NFEII];
00351
00353 realnum feopc[NFEII];
00354 realnum Fe2TauLte[NFEII];
00355 realnum Fe2PopLte[NFEII];
00356
00357 double fe2pt[NFE2PR];
00358 double fe2pf[NFE2PR];
00359
00361 double fe2par(double te);
00362 public:
00363 void zero_opacity();
00364
00365 void init_pointers();
00366
00368 void tau_inc();
00369
00371 void atoms_fe2ovr(void);
00372 };
00373
00374 #endif