31         for( 
long nelem=0; nelem < 
LIMELM; nelem++ )
 
   35                         vector< pair<long, long> > thisElm_skipTrans;
 
   44                                         index_of_nHi_P = ipHi;
 
   49                                 for( 
long ipLo=0; ipLo < ipHi; ipLo++ )
 
   62                                         if( ipHi == index_of_nHi_P && ipLo == index_of_nLo_S )
 
   66                                                 thisElm_skipTrans.push_back( pair<long, long>( ipLo, ipHi ) );
 
   70                                                                 "%2s\t index_of_nHi_P= %2ld (%5s)\t index_of_nLo_S= %2ld (%5s)\t" 
   71                                                                 " ipHi= %2ld (%5s)\t ipLo= %2ld (%5s)\t %10g %10g\t Dwl= %g\n",
 
   74                                                                 iso_sp[ipISO][nelem].
st[index_of_nHi_P].chConfig().c_str(),
 
   76                                                                 iso_sp[ipISO][nelem].
st[index_of_nLo_S].chConfig().c_str(),
 
   78                                                                 iso_sp[ipISO][nelem].
st[ipHi].chConfig().c_str(),
 
   80                                                                 iso_sp[ipISO][nelem].
st[ipLo].chConfig().c_str(),
 
   97 static bool isSkipped( 
const pair< long, long > level_indices )
 
   99         return level_indices.first == 
this_ipLo &&
 
  108         vector< pair<long, long> >::iterator sti;
 
  111         bool skippedTrans = 
true;
 
  113                 skippedTrans = 
false;
 
  119         string isoSeq = 
"H-like, ";
 
  121                 isoSeq = 
"He-like, ";
 
  130         long int i, nelem, ipHi, ipLo;
 
  148                 " start H -like iso sequence ");
 
  157                 "collisionally excited La cooling ");
 
  160                 "  collisionally de-excited La heating ");
 
  163                 "  cooling due to n>2 Lyman lines ");
 
  166                 "  heating due to n>2 Lyman lines ");
 
  169                 "  cooling due to n>3 Balmer lines ");
 
  172                 "  heating due to n>3 Balmer lines ");
 
  175                 "  cooling due to higher Paschen lines ");
 
  178                 "  heating due to higher Paschen lines ");
 
  191                 "Lya contribution from suprathermal secondaries from ground ");
 
  194                 "collision ionization cooling of hydrogen ");
 
  197                 "  this is the heating due to 3-body recombination ");
 
  200                 "collision ionization cooling of He+ ");
 
  203                 "  this is the heating due to 3-body recombination onto He+");
 
  205         fixit(
"why is there a zero here?");
 
  207           "  Stark broadening contribution to line ");
 
  211           "  Stark broadening contribution to line ");
 
  215           "Stark broadening contribution to line ");
 
  219                    " Stark broadening contribution to line ");
 
  227                         "Stark broadening part of line");
 
  235                 "  portion of line lost due to absorp by background opacity ");
 
  239                 "Ha destroyed by background opacity");
 
  246                         "portion of line lost due to absorb by background opacity");
 
  252                         "portion of line lost due to absorb by background opacity");
 
  257                         "portion of line lost due to absorb by background opacity");
 
  261                 "Ly-alpha destroyed by overlap with FeII " );
 
  264                 " simple high-density case b intensity of Ly-alpha, no two photon ");
 
  289                         "Case B H-beta computed from Q(H) and specified covering factor");
 
  303                         "Ly-alpha from Q(H), high-dens lim, specified covering factor" );
 
  307         for( nelem=ipISO; nelem < 
LIMELM; nelem++ )
 
  315                                 for( ipLo=0; ipLo < ipHi; ipLo++ )
 
  333         for( nelem=0; nelem < 
LIMELM; nelem++ )
 
  344                                         index_of_nHi_P = ipHi;
 
  349                                 for( ipLo=0; ipLo < ipHi; ipLo++ )
 
  362                                         if( ipHi == index_of_nHi_P && ipLo == index_of_nLo_S )
 
  391         lindst(hbetab, -4861.36 ,
"CaBo",
 
  393                 " this is old case b based on Ferland (1980) PASP ");
 
  407                         " old prediction of He II 1640, Case B at low densities");
 
  414                 lindst(em,-4686.01,
"CaBo",      1,
'i',
false,
 
  415                            " old prediction of He II 4686, Case B at low densities");
 
  421                 for(nelem=0; nelem<
HS_NZ; ++nelem )
 
  428         for( nelem=0; nelem < 
LIMELM; nelem++ )
 
  435                         if( nelem < 
HS_NZ && (nelem<2 || nelem>4) )
 
  438                                 for( iCase=0; iCase<2; ++iCase )
 
  440                                         char chAB[2]={
'A',
'B'};
 
  453                                                         double case_b_Intensity;
 
  454                                                         long int ipCHi , ipCLo;
 
  466                                                         if( case_b_Intensity<=0. )
 
  469                                                                 case_b_Intensity = 0.;
 
  474                                                         if( iCase==0 && ipLo==1 )
 
  488                                                         chLab[3] = chAB[iCase];
 
  499                                                                 else if(  ipCLo ==  2 )
 
  504                                                                 else if( ipCLo ==  1 || ipCLo == 0 )
 
  516                                                                 " case a or case b from Hummer & Storey tables" );
 
  527                                 chLabel = 
chIonLbl(nelem+1, nelem+1-ipISO);
 
  531                                 fixit(
"This was multiplied by Pesc when treated as a line, now what?  Only used for printout?");
 
  532                                 fixit(
"below should be 'i' instead of 'r' ?");
 
  534                                 string tpc_comment = 
"",
 
  539                                         tpc_comment = 
" two photon continuum, " + comment_trans;
 
  540                                         tpe_comment = 
" induced two photon emission, " + comment_trans;
 
  542                                 linadd( tnu->AulTotal * tnu->E2nu * EN1RYD * (*tnu->Pop), 
 
  543                                          0, chLabel.c_str(), 
'r', tpc_comment.c_str() );
 
  545                                 linadd( tnu->induc_dn * tnu->E2nu * EN1RYD * (*tnu->Pop), 
 
  546                                         22, chLabel.c_str() ,
'i', tpe_comment.c_str() );
 
  564                                 for( ipHi=ipLo+1; ipHi < nLoop; ipHi++ )
 
  571                                         if( ipHi==1 && ipLo==0 )
 
  577                                         string comment_trans = 
"";
 
realnum WaveLengthCaseB[8][25][24]
string chIonLbl(const TransitionProxy &t)
realnum EnergyErg() const 
realnum H_ion_frac_collis
long int IonHigh[LIMELM+1]
void set_xIntensity(const TransitionProxy &t)
void lindst(double xEmiss, realnum wavelength, const char *chLab, long int ipnt, char chInfo, bool lgOutToo, const char *chComment)
string iso_comment_tran_levels(long ipISO, long nelem, long ipLo, long ipHi)
static void collectSkipTrans(void)
bool lgHCaseBOK[2][HS_NZ]
static bool isSkipTransSet
t_elementnames elementnames
t_iso_sp iso_sp[NISO][LIMELM]
double xIonDense[LIMELM][LIMELM+1]
vector< two_photon > TwoNu
long int n_HighestResolved_max
static bool isSkipped(const pair< long, long > level_indices)
double & xIntensity() const 
EmissionList::reference Emis() const 
static vector< vector< pair< long, long > > > skipTrans(LIMELM)
LinSv * linadd(double xEmiss, realnum wavelength, const char *chLab, char chInfo, const char *chComment)
string GenerateTransitionConfiguration(const TransitionProxy &t)
double atmdat_HS_caseB(long int iHi, long int iLo, long int iZ, double TempIn, double DenIn, char chCase)
static bool isTransSkipped(long nelem, long ipLo, long ipHi)
multi_arr< long, 3 > QuantumNumbers2Index
TransitionProxy trans(const long ipHi, const long ipLo)
char chElementSym[LIMELM][CHARS_ELEMENT_SYM]
void PutLine(const TransitionProxy &t, const char *chComment, const char *chLabelTemp, const ExtraInten &extra)
string db_comment_tran_levels(long ipLoFile, long ipHiFile)
#define DEBUG_ENTRY(funcname)
int fprintf(const Output &stream, const char *format,...)
double & xObsIntensity() const 
double pow(double x, int i)
t_secondaries secondaries
long int StuffComment(const char *chComment)