65                                 const long magicExp );
 
   67                                 const long yearExp, 
const long monthExp, 
const long dayExp );
 
   72 inline int irsl2ind(vector<t_BadnellLevel>& level, 
int irsl);
 
   80         static bool lgFirstCall = 
true;
 
   88                 bool lgTooBig = 
false;
 
   96                         fprintf(
ioQQQ,
" This is the second or later calculation in a grid.\n");
 
   97                         fprintf(
ioQQQ,
" The number of zones has been increased beyond what it was on the first calculation.\n");
 
   98                         fprintf(
ioQQQ,
" This can\'t be done since space has already been allocated.\n");
 
   99                         fprintf(
ioQQQ,
" Have the first calculation do the largest number of zones so that an increase is not needed.\n");
 
  173         for( 
long nelem=0; nelem < 
LIMELM; nelem++ )
 
  174                 for( 
long ion=0; ion < 
LIMELM; ion++ )
 
  181         for( 
long nelem=2; nelem < LIMELM; nelem++ )
 
  184                 for( 
long ion=0; ion <= nelem; ion++ )
 
  187                         long nelec = nelem - ion + 1;
 
  200                         ASSERT( imax > 0 && imax <= 10 );
 
  335                 for( 
long ipZ=0; ipZ<
LIMELM;++ipZ )
 
  352                                 for( 
long ion=0; ion<nelem+1; ion++ )
 
  354                                         long ipISO = nelem-ion;
 
  361                                                 fixit(
"for now, point non-iso ions to NULL");
 
  421         FILE *ioDATA = 
open_data( 
"level2.dat", 
"r" );
 
  434                                 fprintf( 
ioQQQ, 
" level2.dat error getting line  %li\n", i );
 
  438                 } 
while ( chLine[0]==
'#' );
 
  441                 double tt[7] = { 0 };
 
  443                 sscanf( chLine , 
"%lf %lf %lf %lf %lf %lf %lf " , 
 
  453                 (*
TauLine2[i].Hi()).nelem() = (int)tt[0];
 
  454                 (*
TauLine2[i].Hi()).IonStg() = (int)tt[1];
 
  465                 fprintf( 
ioQQQ, 
" level2.dat error getting last magic number\n" );
 
  469         sscanf( chLine , 
"%ld" , &magic );
 
  472                 fprintf( 
ioQQQ, 
" level2.dat ends will wrong magic number=%ld \n", 
 
  486                 fprintf( 
ioQQQ,
" atmdat_readin reading mewe_gbar.dat\n");
 
  488         FILE *ioDATA = 
open_data( 
"mewe_gbar.dat", 
"r" );
 
  495         for( 
long i=1; i < 210; i++ )
 
  499                         fprintf( 
ioQQQ, 
" mewe_gbar.dat error getting line  %li\n", i );
 
  504                 sscanf( chLine, 
"%lf %lf %lf %lf ", &help[0], &help[1], &help[2], &help[3] );
 
  505                 for( 
int l=0; l < 4; ++l )
 
  512                 fprintf( 
ioQQQ, 
" mewe_gbar.dat error getting last magic number\n" );
 
  517         sscanf( chLine , 
"%ld" , &magic );
 
  521                 fprintf( 
ioQQQ, 
" mewe_gbar.dat ends will wrong magic number=%ld \n", 
 
  539         for( 
long ipZ=0; ipZ<
HS_NZ; ++ipZ )
 
  542                 if( ipZ>1 && ipZ<5 ) 
continue;
 
  544                 for( 
long iCase=0; iCase<2; ++iCase )
 
  553                         sprintf( chFilename, 
"HS_e%ld%c.dat", ipZ+1, ( iCase == 0 ) ? 
'a' : 
'b' );
 
  556                                 fprintf( 
ioQQQ,
" atmdat_readin reading Hummer Storey emission file %s\n",chFilename );
 
  559                         FILE *ioDATA = 
open_data( chFilename, 
"r" );
 
  563                                 int nread = fscanf( ioDATA, 
"%li %li ", 
 
  568                                         fprintf(
ioQQQ, 
"atmdat_readin: bad input file format\n");
 
  579                         for( 
long ipTemp=0; ipTemp < 
atmdat.
ntemp[iCase][ipZ]; ipTemp++ )
 
  581                                 for( 
long ipDens=0; ipDens < 
atmdat.
nDensity[iCase][ipZ]; ipDens++ )
 
  584                                         long int junk, junk2;
 
  586                                            int nread = fscanf( ioDATA, 
" %lf %li %lf %c %li %ld ", 
 
  594                                                         fprintf(
ioQQQ, 
"atmdat_readin: bad input file format\n");
 
  601                                         for( 
long j=0; j < ne; j++ )
 
  603                                            int nread = fscanf( ioDATA, 
"%lf ",
 
  608                                                         fprintf(
ioQQQ, 
"atmdat_readin: bad input file format\n");
 
  627                         for( ipTemp=0; ipTemp<
atmdat.
ntemp[iCase][ipZ]; ipTemp++ )
 
  648         const int ipNUM_FILES = 10;
 
  650         char chFileNames[ipNUM_FILES][10] = {
 
  669         for( 
long in = 1; in<=25; in++ )
 
  674                 for( 
long il = 0; il<
MIN2(5,in); il++ )
 
  687         strcpy( chDirectory, 
"sh98_he1\\pi\\" );
 
  689         strcpy( chDirectory, 
"sh98_he1/pi/" );
 
  694         for( 
long ipFile=0; ipFile<ipNUM_FILES; ipFile++ )
 
  696                 long S, L, index, 
N=0;
 
  699                 strcpy( chPath, chDirectory );
 
  700                 strcat( chPath, chFileNames[ipFile] );
 
  703                 while( 
read_whole_line( chLine , (
int)
sizeof(chLine) , ioDATA ) != NULL )
 
  710                         i1 = (long)
FFmtRead( chLine, &i, 
sizeof(chLine), &lgEOL );
 
  711                         i2 = (long)
FFmtRead( chLine, &i, 
sizeof(chLine), &lgEOL );
 
  712                         i3 = (long)
FFmtRead( chLine, &i, 
sizeof(chLine), &lgEOL );
 
  713                         if( i1==0 && i2==0 && i3==0 )
 
  723                         S = (long)
FFmtRead( chLine, &i, 
sizeof(chLine), &lgEOL );
 
  724                         L = (long)
FFmtRead( chLine, &i, 
sizeof(chLine), &lgEOL );
 
  725                         P = (long)
FFmtRead( chLine, &i, 
sizeof(chLine), &lgEOL );
 
  726                         index = (long)
FFmtRead( chLine, &i, 
sizeof(chLine), &lgEOL );
 
  753                         FFmtRead( chLine, &i, 
sizeof(chLine), &lgEOL );
 
  754                         numDataPoints = (long)
FFmtRead( chLine, &i, 
sizeof(chLine), &lgEOL );
 
  794         char chFileName[23] = 
"helike_pcs_topbase.dat";
 
  822                 for( 
long in = 1; in<=MaxN; in++ )
 
  828                         for( 
long il = 0; il<in; il++ )
 
  854         for( 
long i=0; i<3; i++)
 
  858                         fprintf( 
ioQQQ,
"PROBLEM corruption in TOPbase Helike pcs datafile.\nSorry\n" );
 
  863         while( 
read_whole_line( chLine , (
int)
sizeof(chLine) , ioDATA ) != NULL )
 
  867                 long i1, i2, i3, i4, i5, i7;
 
  870                 i1 = (long)
FFmtRead( chLine, &i, 
sizeof(chLine), &lgEOL );
 
  871                 i2 = (long)
FFmtRead( chLine, &i, 
sizeof(chLine), &lgEOL );
 
  872                 i3 = (long)
FFmtRead( chLine, &i, 
sizeof(chLine), &lgEOL );
 
  873                 i4 = (long)
FFmtRead( chLine, &i, 
sizeof(chLine), &lgEOL );
 
  874                 i5 = (long)
FFmtRead( chLine, &i, 
sizeof(chLine), &lgEOL );
 
  875                 i6 = (double)
FFmtRead( chLine, &i, 
sizeof(chLine), &lgEOL );
 
  876                 i7 = (long)
FFmtRead( chLine, &i, 
sizeof(chLine), &lgEOL );
 
  880                         fprintf( 
ioQQQ,
"PROBLEM corruption in TOPbase Helike pcs datafile.\nSorry\n" );
 
  885                 if( i1==i2 && i1==i3 && i1==i4 && i1==i5 && i1==i7 && i1==-1 )
 
  890                 if( ! ( i1 > 0 && i1 == (last_i1 + 1) && i1 <= 795 ) )
 
  892                         fprintf( 
ioQQQ, 
"syntax error found in %s\n", chFileName );
 
  901                 ASSERT( i4>=100 && i4<400 );
 
  906                 l = (i4 - (2*s+1)*100)/10;
 
  910                 ASSERT( i5>=1 && i5<=10 );
 
  920                         fprintf( 
ioQQQ, 
"invalid threshold energy in %s\n", chFileName );
 
  936                 for( 
long k=0; k<i7; k++ )
 
  951                         FFmtRead( chLine, &i, 
sizeof(chLine), &lgEOL );
 
  970                         for( 
int ns=0; ns < 7; ns++ )
 
  973                                 for( 
int nelec=0; nelec < 10; nelec++ )
 
  987         const char* chFilename;
 
 1016         chFilename = 
"mewe_nelectron.dat";
 
 1019                 fprintf( 
ioQQQ, 
" init_yield reading %s\n", chFilename );
 
 1039                                 while( ch1 == 
'#' || ch1 == 
'*' )
 
 1043                                                 fprintf( 
ioQQQ, 
" %s error getting line %i\n", chFilename, ns );
 
 1049                                 if( sscanf( chLine, 
"%lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf", 
 
 1050                                             &temp[0], &temp[1], &temp[2], &temp[3], &temp[4],
 
 1051                                             &temp[5], &temp[6], &temp[7], &temp[8], &temp[9],
 
 1052                                             &temp[10],&temp[11],&temp[12],&temp[13] ) != 14 )
 
 1054                                         fprintf( 
ioQQQ, 
"failed to read correct number of arguments in %s\n",
 
 1063                                 for( 
int j=0; j < 10; j++ )
 
 1086         chFilename = 
"mewe_fluor.dat";
 
 1089                 fprintf( 
ioQQQ, 
" init_yield reading %s\n", chFilename );
 
 1101                         fprintf( 
ioQQQ, 
" %s error getting line %i\n", chFilename, 0 );
 
 1105         while( chLine[0] == 
'#' );
 
 1113                 int nDima[NKM] = { 0, 1, 2, 2, 3, 4, 4, 5, 5, 6 };
 
 1120                 sscanf( chLine, 
"%lf %lf %lf %lf %lf %lf %lf", 
 
 1121                         &temp[0], &temp[1], &temp[2], &temp[3], &temp[4], 
 
 1122                         &temp[5], &temp[6] );
 
 1139                 nAuger = (int)temp[3];
 
 1164                 while( chLine[0]==
'#' && !lgEOL );
 
 1178                               bitset<IS_TOP> Skip)     
 
 1183                 fprintf( 
ioQQQ,
" ReadBadnellAIData reading %s\n", fnam.c_str() );
 
 1189         getline( ioDATA, line );
 
 1190         ASSERT( line.substr(0,4) == 
"SEQ=" );
 
 1191         getline( ioDATA, line );
 
 1192         getline( ioDATA, line );
 
 1194         ASSERT( line.substr(3,21) == 
"PARENT LEVEL INDEXING" );
 
 1196         istringstream iss( line.substr(65,4) );
 
 1199         int nMulti = (nParent+5)/6;
 
 1200         for( 
int i=0; i < nParent+5; ++i )
 
 1201                 getline( ioDATA, line );
 
 1204         ASSERT( line.substr(3,26) == 
"IC RESOLVED LEVEL INDEXING" );
 
 1206         istringstream iss2( line.substr(63,6) );
 
 1209         for( 
int i=0; i < 3; ++i )
 
 1210                 getline( ioDATA, line );
 
 1213         vector<t_BadnellLevel> level( nLevel );
 
 1214         for( 
int i=0; i < nLevel; ++i )
 
 1216                 getline( ioDATA, line );
 
 1217                 istringstream iss3( line );
 
 1219                 iss3 >> indx >> irsl;
 
 1220                 level[indx-1].irsl = irsl;
 
 1221                 level[indx-1].config = line.substr(16,20);
 
 1222                 istringstream iss4( line.substr(37,1) );
 
 1223                 iss4 >> level[indx-1].S;
 
 1224                 istringstream iss5( line.substr(39,1) );
 
 1225                 iss5 >> level[indx-1].L;
 
 1226                 istringstream iss6( line.substr(41,4) );
 
 1229                 level[indx-1].g = 
nint(2.*J + 1.);
 
 1230                 istringstream iss7( line.substr(46,11) );
 
 1231                 iss7 >> level[indx-1].energy;
 
 1234                 level[indx-1].lgAutoIonizing = ( line[57] == 
'*' );
 
 1235                 if( level[indx-1].lgAutoIonizing )
 
 1237                         if( level[indx-1].config.find( 
"1S1" ) != string::npos )
 
 1239                         else if( level[indx-1].config.find( 
"2S1" ) != string::npos )
 
 1241                         else if( level[indx-1].config.find( 
"2P5" ) != string::npos )
 
 1248                         level[indx-1].WhichShell = 
IS_NONE;
 
 1254         while( getline( ioDATA, line ) )
 
 1256                 if( line.find( 
"IRSL  IRSL" ) != string::npos )
 
 1260         for( 
int i=0; i < nMulti-1; ++i )
 
 1261                 getline( ioDATA, line );
 
 1264         qList BlankStates(
"BlankStates",1);
 
 1267         (*BlankLine).Junk();
 
 1270         while( getline( ioDATA, line ) )
 
 1273                 if( line.size() < 10 )
 
 1278                 if( line.size() < 50 )
 
 1284                 int irsl_lo, irsl_hi, dum;
 
 1285                 double edif, Bij, Rji, Aai;
 
 1286                 istringstream iss8( line );
 
 1293                 iss8 >> irsl_lo >> irsl_hi >> dum >> dum >> edif >> Bij >> Rji >> Aai;
 
 1295                 int ind_lo = 
irsl2ind( level, irsl_lo );
 
 1296                 int ind_hi = 
irsl2ind( level, irsl_hi );
 
 1297                 ASSERT( level[ind_hi].lgAutoIonizing );
 
 1299                 for( 
int i=0; i < nMulti-1; ++i )
 
 1300                         getline( ioDATA, line );
 
 1303                 if( ind_lo == 0 && !Skip[level[ind_hi].WhichShell] )
 
 1309                         (*UTA.
back().
Hi()).nelem() = nelem+1;
 
 1310                         (*UTA.
back().
Hi()).IonStg() = ion+1;
 
 1315                         double WavNum = edif*RYD_INF;
 
 1322                         double frac_ioniz = Aai/(Rji + Aai);
 
 1323                         ASSERT( frac_ioniz >= 0. &&  frac_ioniz <= 1. );
 
 1347         getline( ioDATA, line );
 
 1348         ASSERT( line.substr(3,7) == 
"NRSLMX=" );
 
 1363 inline int irsl2ind(vector<t_BadnellLevel>& level, 
int irsl)
 
 1365         for( 
unsigned int i=0; i < level.size(); ++i )
 
 1367                 if( level[i].irsl == irsl )
 
 1379         while( 
read_whole_line( chLine , (
int)
sizeof(chLine) , ioFile ) != NULL )
 
 1382                 if( chLine[0] != 
'#')
 
 1387         sscanf( chLine, 
"%ld", &magic );
 
 1389         if( magic != magicExp )
 
 1392                         " atmdat_readin: the version of '%s' is not the current version.\n",
 
 1395                         " I expected to find the number %ld and got %ld instead.\n" ,
 
 1397                 fprintf( 
ioQQQ, 
"Here is the line image:\n==%s==\n", chLine );
 
 1403                                 const long yearExp, 
const long monthExp, 
const long dayExp )
 
 1412         while( 
read_whole_line( chLine , (
int)
sizeof(chLine) , ioFile ) != NULL )
 
 1415                 if( chLine[0] != 
'#')
 
 1419         sscanf( chLine, 
"%ld %ld %ld", &year, &month, &day );
 
 1421         if( year != yearExp || month != monthExp || day != dayExp )
 
 1424                         " atmdat_readin: the version of '%s' is not the current version.\n",
 
 1427                         " I expected to find the number %ld %ld %ld and got %ld %ld %ld instead.\n" ,
 
 1428                         yearExp, monthExp, dayExp, year, month, day );
 
 1429                 fprintf( 
ioQQQ, 
"Here is the line image:\n==%s==\n", chLine );
 
 1443         const char* chElmSymLC[] =
 
 1444                 { 
"h", 
"he", 
"li", 
"be", 
"b", 
"c", 
"n", 
"o", 
"f", 
"ne", 
"na", 
"mg", 
"al", 
"si", 
"p",
 
 1445                   "s", 
"cl", 
"ar", 
"k", 
"ca", 
"sc", 
"ti", 
"v", 
"cr", 
"mn", 
"fe", 
"co", 
"ni", 
"cu", 
"zn" };
 
 1449         for( 
long nelem=0; nelem < 
LIMELM; ++nelem )
 
 1450                 for( 
long ion=0; ion <= nelem; ++ion )
 
 1451                         strcpy( chUTA_ref[nelem][ion] , 
"" );
 
 1456                 for( 
long nelem=ipISO; nelem < 
LIMELM; ++nelem )
 
 1459                         long ion = nelem - ipISO;
 
 1460                         strcpy( chUTA_ref[nelem][ion] , 
"B" );
 
 1462                         bitset<IS_TOP> Skip;
 
 1468                                 oss << 
"UTA/nrb00_" << chElmSymLC[ipISO-1] << 
"_";
 
 1470                                 oss << chElmSymLC[nelem] << ion+1 << 
"ic1-2.dat";
 
 1479                                 oss << 
"UTA/nrb00_" << chElmSymLC[ipISO-1] << 
"_";
 
 1480                                 oss << chElmSymLC[nelem] << ion+1 << 
"ic1-3.dat";
 
 1485                                     ipISO >= 
ipNA_LIKE && ipISO <= ipAL_LIKE )
 
 1492                                 oss2 << 
"UTA/nrb00_" << chElmSymLC[ipISO-1] << 
"_";
 
 1493                                 oss2 << chElmSymLC[nelem] << ion+1 << 
"ic2-3.dat";
 
 1500         const realnum StatWeightGroundLevelIron[] =
 
 1501                 { 9.f, 10.f, 9.f, 6.f, 1.f, 4.f, 5.f, 4.f, 1.f, 4.f, 5.f, 4.f, 1.f,
 
 1502                   2.f, 1.f, 2.f, 1.f, 4.f, 5.f, 4.f, 1.f, 2.f, 1.f, 2.f, 1.f, 2.f };
 
 1505         qList BlankStates(
"BlankStates",1);
 
 1508         (*BlankLine).Junk();
 
 1515                         fprintf( 
ioQQQ,
" atmdat_readin reading UTA_Gu06.dat\n");
 
 1517                 FILE *ioGU06 = 
open_data( 
"UTA/UTA_Gu06.dat", 
"r" );
 
 1521                 int nelemGu =-1, ionGu=-1;
 
 1524                 while( 
read_whole_line( chLine, (
int)
sizeof(chLine), ioGU06 ) != NULL )
 
 1526                         if( chLine[0] != 
'#' )
 
 1530                                 double EnergyAng, Aul, oscill, Aauto;
 
 1532                                 sscanf( chLine, 
"%4li%5li%8lf%13lf%12lf",
 
 1533                                         &ion, &i2, &EnergyAng, &Aul, &Aauto );
 
 1534                                 sscanf( &chLine[54], 
"%13lf", &oscill );
 
 1539                                 int ipISO = 
ipIRON - ion + 1;
 
 1541                                 if( ipISO <= ipThres )
 
 1555                                 if( 
ipIRON!=nelemGu || ion!=ionGu )
 
 1560                                         strcpy( chUTA_ref[
ipIRON][ion-1] , 
"G" );
 
 1565                                 if( 
strstr_s( chLine, 
"(J=1/2)" ) != NULL )
 
 1567                                 else if( 
strstr_s( chLine, 
"(J=1)" ) != NULL )
 
 1569                                 else if( 
strstr_s( chLine, 
"(J=3/2)" ) != NULL )
 
 1571                                 else if( 
strstr_s( chLine, 
"(J=2)" ) != NULL )
 
 1573                                 else if( 
strstr_s( chLine, 
"(J=5/2)" ) != NULL )
 
 1575                                 else if( 
strstr_s( chLine, 
"(J=3)" ) != NULL )
 
 1577                                 else if( 
strstr_s( chLine, 
"(J=7/2)" ) != NULL )
 
 1579                                 else if( 
strstr_s( chLine, 
"(J=4)" ) != NULL )
 
 1581                                 else if( 
strstr_s( chLine, 
"(J=9/2)" ) != NULL )
 
 1583                                 else if( 
strstr_s( chLine, 
"(J=5)" ) != NULL )
 
 1585                                 else if( 
strstr_s( chLine, 
"(J=11/2)" ) != NULL )
 
 1592                                 double fenergyWN = 1e8/EnergyAng;
 
 1597                                 double frac_ioniz = Aauto/(Aul + Aauto);
 
 1598                                 ASSERT( frac_ioniz >= 0. &&  frac_ioniz <= 1. );
 
 1636                         fprintf( 
ioQQQ,
" atmdat_readin reading UTA_Kisielius.dat\n");
 
 1638                 FILE *ioROMAS = 
open_data( 
"UTA/UTA_Kisielius.dat", 
"r" );
 
 1642                 long int nRomasUsed = 0 , nRomasTotal = 0;
 
 1643                 int nelemRomas=-1 , ionRomas=-1;
 
 1645                 bool lgSaveRomasUsed = 
false;
 
 1646                 if( lgSaveRomasUsed )
 
 1648                         if( (ioROMASused = 
open_data(
"RomasUsed.txt",
"w")) == NULL )
 
 1657                 while( 
read_whole_line( chLine, (
int)
sizeof(chLine), ioROMAS ) != NULL )
 
 1660                         if( chLine[0] != 
'#' )
 
 1662                                 long int i1, i2, i3;
 
 1663                                 double f1, f2, oscill;
 
 1667                                 sscanf( chLine, 
"%li\t%li\t%li\t%lf\t%lf\t%lf\t%lf",
 
 1668                                         &i1,&i2,&i3,&f1,&f2,&frac_relax,&oscill );
 
 1676                                 if( lgSaveRomasUsed )
 
 1677                                         fprintf(ioROMASused , 
"%s" , chLine);
 
 1683                                 const bool lgAllowSplitFe14 = 
false;
 
 1684                                 if( lgAllowSplitFe14 || i2 == StatWeightGroundLevelIron[i1] )
 
 1704                                                 if( lgAllowSplitFe14 )
 
 1706                                                         if( i2 == StatWeightGroundLevelIron[i1] )
 
 1713                                                         if( i2 == StatWeightGroundLevelIron[i1] )
 
 1719                                         if( 
ipIRON!=nelemRomas || i1!=ionRomas )
 
 1724                                                 strcpy( chUTA_ref[
ipIRON][i1] , 
"K" );
 
 1735                                         if( i1==13 && f1>15.35 && f1<15.55)
 
 1737                                                 fprintf(
ioQQQ,
"DEBUG %li\t%.5f\t%.3e\n",i2, f1 , oscill * facpop);
 
 1752                                         ASSERT( frac_relax >= 0.f &&  frac_relax <= 1.f );
 
 1767                 if( lgSaveRomasUsed )
 
 1768                         fclose( ioROMASused );
 
 1771                         fprintf( 
ioQQQ, 
" reading UTA_Kisielius.dat OK,used %li lines from a total of %li\n" , nRomasUsed , nRomasTotal );
 
 1777                 FILE *ioUTA = 
ioQQQ;
 
 1781                 fprintf(ioUTA, 
"##################################################\n");
 
 1782                 fprintf(ioUTA,
"UTA data sources; B=Badnell 05; G==Gu 06, K=Kisielius 03, 13\n");
 
 1784                 for( 
long ion=0; ion<=
LIMELM; ++ion )
 
 1787                 for( 
long nelem=0; nelem<
LIMELM; ++nelem )
 
 1790                         for( 
long ion=0; ion<=nelem; ++ion )
 
 1792                                 fprintf(ioUTA,
"%4s",chUTA_ref[nelem][ion] );
 
 1797                 for( 
long ion=0; ion<=
LIMELM; ++ion )
 
 1800                 fprintf(ioUTA,
"Badnell 05=2005MNRAS.360..458B; Gu 06=2006ApJ...641.1227G; Kisielius 03, 13= 2003MNRAS.344..696K, 2013ApJ...767..123F\n");
 
 1801                 fprintf(ioUTA, 
"##################################################\n\n");
 
 1809                         dprintf( 
ioQQQ, 
"%5ld %s wavl %7.3f glo %2g gup %2g Aul %.2e gf %.2e ai branch %.3f\n",
 
realnum fl_energy[MEWE_FLUOR]
t_mole_global mole_global
STATIC void read_UTA_lines()
FILE * open_data(const char *fname, const char *mode, access_scheme scheme)
realnum fl_yield[MEWE_FLUOR]
string chIonLbl(const TransitionProxy &t)
STATIC void read_level2_lines()
TransitionList UTALines("UTALines",&AnonStates)
const int FILENAME_PATH_LENGTH_2
NORETURN void TotalInsanity(void)
int irsl2ind(vector< t_BadnellLevel > &level, int irsl)
void DynaCreateArrays(void)
int nfl_nshell[MEWE_FLUOR]
double eina(double gf, double enercm, double gup)
void reserve(size_t newsize)
bool fp_equal_tol(sys_float x, sys_float y, sys_float tol)
const char * strstr_s(const char *haystack, const char *needle)
double RefIndex(double EnergyWN)
STATIC void validate_magic_number_1arg(const char *chFilename, FILE *ioFile, const long magicExp)
TransitionList TauLine2("TauLine2",&AnonStates)
void HyperfineCreate(void)
t_elementnames elementnames
t_iso_sp iso_sp[NISO][LIMELM]
int nfl_nelem[MEWE_FLUOR]
void resize(size_t newsize)
int dprintf(FILE *fp, const char *format,...)
long int nDensity[2][HS_NZ]
realnum & EnergyWN() const 
long int nsShells[LIMELM][LIMELM]
const ios_base::openmode mode_r
#define NUM_HS98_DATA_POINTS
STATIC void validate_magic_number_3arg(const char *chFilename, FILE *ioFile, const long yearExp, const long monthExp, const long dayExp)
void push_back(const TransitionProxy &tr)
realnum & dampXvel() const 
EmissionList::reference Emis() const 
int nfl_nLine[MEWE_FLUOR]
double **** HS_He1_Xsectn
double ***** OP_Helike_Xsectn
qList::iterator Hi() const 
STATIC void read_SH98_He1_cross_sections(void)
STATIC void ReadBadnellAIData(const string &fnam, long nelem, long ion, TransitionList &UTA, bitset< IS_TOP > Skip)
double Density[2][HS_NZ][NHSDIM]
double Emiss[2][HS_NZ][NHSDIM][NHSDIM][NLINEHS]
STATIC void read_Hummer_Storey()
void atmdat_2phot_setSplineCoefs()
void atmdat_outer_shell(long int iz, long int in, long int *imax, long int *ig0, long int *ig1)
const TransitionProxy back(void)
char chElementSym[LIMELM][CHARS_ELEMENT_SYM]
int nfl_ion_emit[MEWE_FLUOR]
qList::iterator Lo() const 
bool lgInnerShell_Kisielius
realnum * AccelTotalOutward
double GetGF(double trans_prob, double enercm, double gup)
long int n_elec_eject[30][30][7]
double **** HS_He1_Energy
#define DEBUG_ENTRY(funcname)
double ***** OP_Helike_Energy
long **** OP_Helike_NumPts
realnum frac_elec_eject[30][30][7][10]
void database_readin(void)
int fprintf(const Output &stream, const char *format,...)
STATIC void read_mewe_gbar()
vector< TransitionList > AllTransitions
char * read_whole_line(char *chLine, int nChar, FILE *ioIN)
realnum & AutoIonizFrac() const 
void InitTransition(const TransitionProxy &t)
STATIC void read_Helike_cross_sections(void)
double ElecTemp[2][HS_NZ][NHSDIM]
void AddLine2Stack() const 
double FFmtRead(const char *chCard, long int *ipnt, long int last, bool *lgEOL)
realnum * pres_radiation_lines_curr