32 #if defined (__ICC) && defined(__ia64) && __INTEL_COMPILER < 910
33 #pragma optimization_level 0
105 for(
long nelem=ipISO; nelem <
LIMELM; nelem++ )
121 for(
long ipLo=0; ipLo < ipHi; ipLo++ )
141 const bool lgDoChecks =
false;
153 for( vector<two_photon>::iterator tnu = sp->
TwoNu.begin(); tnu != sp->
TwoNu.end(); ++tnu )
157 for( nu=0; nu < tnu->ipTwoPhoE; nu++ )
163 conEmitZone[nu] += tnu->local_emis[nu];
169 enum {DEBUG_LOC=
false};
172 fprintf(
ioQQQ,
"Two-photon emission coefficients - ipISO, nelem = %2li, %2li\n", ipISO, nelem );
181 for(
long nelem=NISO; nelem <
LIMELM; nelem++ )
184 for(
long ion=0; ion < nelem-NISO+1; ion++ )
191 for(
long ion=
dense.
IonLow[nelem]; ion < nelem-NISO+1; ion++ )
195 long int ns, nshell,igRec , igIon,
215 gion = (double)igIon;
219 ASSERT( ns == (nshell-1) );
236 for( nu=iplow; nu < iphi; ++nu )
245 conEmitZone[nu] += (
realnum)photon*EdenAbund;
291 vector<double> TotBrems( limit );
296 for(
long ion=1; ion < LIMELM+1; ++ion )
300 for( nu=0; nu < limit; nu++ )
353 conEmitZone[nu] += (
realnum)factor;
370 conEmitZone[nu] += (
realnum)factor;
377 for(
long nelem = ipISO; nelem <
LIMELM; nelem++ )
384 (*tr).Emis().xIntensity() =
387 (*tr).Emis().Pesc_total()*
390 (*tr).outline_resonance();
404 enum {DEBUG_LOC=
false};
405 if( DEBUG_LOC && i==4821 )
425 HFLines[i].outline_resonance();
429 for(
long ipSpecies=0; ipSpecies<
nSpecies; ipSpecies++ )
436 int ipHi = (*tr).ipHi();
437 if (ipHi >=
dBaseSpecies[ipSpecies].numLevels_local || (*tr).ipCont() <= 0)
439 (*tr).outline_resonance();
446 (*diatom)->H2_RT_diffuse();
461 conEmitZone[nu] = 0.;
492 ASSERT( conEmitZone[nu] >= 0.);
533 for(
long nelem=ipISO; nelem <
LIMELM; nelem++ )
543 double SumCaseB = 0.;
553 long ipLo = sp->
fb[n].ipIsoLevNIonCon-1;
554 double thresh = sp->
fb[n].xIsoLevNIonRyd;
566 double Sum1level = 0.;
567 double RadRecCon = 0.;
575 long ipLo = sp->
fb[n].ipIsoLevNIonCon-1;
576 double thresh = sp->
fb[n].xIsoLevNIonRyd;
577 long offset = -sp->
fb[n].ipIsoLevNIonCon + sp->
fb[n].ipOpac;
578 double RadRecomb = sp->
fb[n].RadRecomb[
ipRecEsc];
582 fixit(
"need to include induced recombination in diffuse spectrum.");
586 for(
long nu=ipLo; nu < ipHi; nu++ )
610 if( photon/Sum1level < 1.e-20 )
614 conEmitZone[nu] += (
realnum)(photon*EdenAbund);
622 emergent_line( photon*EdenAbund/2., photon*EdenAbund/2., nu+1 );
626 sp->
fb[n].RadRecCon = RadRecCon*EN1RYD;
631 SumCaseB += Sum1level;
realnum ** ConSourceFcnLocal
double RadRecCon[LIMELM][LIMELM]
void DumpLine(const TransitionProxy &t)
vector< double, allocator_avx< double > > ContBoltz
long int ipElement[LIMELM][LIMELM][7][3]
realnum EnergyErg() const
double widflx(size_t i) const
multi_arr< int, 3 > ipSatelliteLines
realnum * DiffuseLineEmission
long int IonHigh[LIMELM+1]
realnum xLyaHeavy[LIMELM][LIMELM]
TransitionList HFLines("HFLines",&AnonStates)
vector< double, allocator_avx< double > > ContBoltzHelp2
TransitionList TauLine2("TauLine2",&AnonStates)
double phots(const TransitionProxy &t)
double anu(size_t i) const
t_iso_sp iso_sp[NISO][LIMELM]
long int nflux_with_check
double xIonDense[LIMELM][LIMELM+1]
vector< two_photon > TwoNu
long int IonLow[LIMELM+1]
long int nsShells[LIMELM][LIMELM]
vector< realnum > GrainEmission
void PrtTwoPhotonEmissCoef(const two_photon &tnu, const double &densityProduct)
double & xIntensity() const
EmissionList::reference Emis() const
vector< diatomics * > diatoms
double anu2(size_t i) const
sys_float safe_div(sys_float x, sys_float y, sys_float res_0by0)
vector< vector< TransitionList > > SatelliteLines
void atmdat_outer_shell(long int iz, long int in, long int *imax, long int *ig0, long int *ig1)
double anumin(size_t i) const
TransitionProxy trans(const long ipHi, const long ipLo)
long int ipLyHeavy[LIMELM][LIMELM-1]
long int ipBalHeavy[LIMELM][LIMELM-1]
void outline(double nonScatteredFraction, bool lgDoChecks) const
#define DEBUG_ENTRY(funcname)
realnum * OccNumbDiffCont
vector< double, allocator_avx< double > > ContBoltzHelp1
vector< species > dBaseSpecies
int fprintf(const Output &stream, const char *format,...)
double emergent_line(double emissivity_in, double emissivity_out, long int ipCont)
double anumax(size_t i) const
void brems_sum_ions(t_brems_den &sum) const
vector< TransitionList > dBaseTrans
realnum * flux_beam_const
void CalcTwoPhotonEmission(two_photon &tnu, bool lgDoInduced)
void vexpm1(const double x[], double y[], long nlo, long nhi)
void brems_rt(long ion, double Te, double abun, vector< double > &arr)
vector< diatomics * >::iterator diatom_iter
long int ipHeavy[LIMELM][LIMELM]
STATIC void RT_iso_integrate_RRC()