51 unsigned long StrLen =
min(strlen(chLine),ArrLen);
52 ASSERT( StrLen < LineLen );
53 unsigned long pad = (LineLen-StrLen)/2;
54 for(
unsigned long i=0; i < pad; ++i )
56 fprintf( io,
"%s\n", chLine );
68 double ratio = ( q2 >
SMALLFLOAT ) ? q1/q2 : 0.;
69 fprintf(
ioQQQ,
" " );
80 long int *ipSortLines;
81 double *xLog_line_lumin;
161 fprintf(
ioQQQ,
"\f\n");
162 fprintf(
ioQQQ,
"%23c",
' ' );
164 int repeat = (72-len)/2;
165 for( i=0; i < repeat; ++i )
166 fprintf(
ioQQQ,
"*" );
168 for( i=0; i < 72-repeat-len; ++i )
169 fprintf(
ioQQQ,
"*" );
170 fprintf(
ioQQQ,
"\n" );
186 if( (strcmp(chCKey,
"CONT")!= 0) && !
nMatch(
"HIDE" , chCard) )
201 " *********************************> Log(U):%6.2f <*********************************\n",
207 "\n This is a beta test version of the code, and is intended for testing only.\n\n" );
212 fprintf(
ioQQQ,
" \n" );
213 fprintf(
ioQQQ,
" >>>>>>>>>> Warning!\n" );
214 fprintf(
ioQQQ,
" >>>>>>>>>> Warning!\n" );
215 fprintf(
ioQQQ,
" >>>>>>>>>> Warning! Warnings exist, this calculation has serious problems.\n" );
216 fprintf(
ioQQQ,
" >>>>>>>>>> Warning!\n" );
217 fprintf(
ioQQQ,
" >>>>>>>>>> Warning!\n" );
218 fprintf(
ioQQQ,
" \n" );
223 " >>>>>>>>>> Cautions are present.\n" );
229 " >>>>>>>>>> The calculation stopped for unintended reasons.\n" );
235 " >>>>>>>>>> Another iteration is needed.\n" );
241 strcpy( chGeo,
"Closed" );
245 strcpy( chGeo,
" Open" );
251 strcpy( chPlaw,
" Constant Pressure " );
256 strcpy( chPlaw,
" Constant Density " );
262 strcpy( chPlaw,
" Power Law Density " );
267 strcpy( chPlaw,
" Rapid Fluctuations " );
272 strcpy( chPlaw,
" Special Density Lw " );
277 strcpy( chPlaw,
" Hydrostatic Equlib " );
282 strcpy( chPlaw,
" Radia Driven Wind " );
287 strcpy( chPlaw,
" Dynamical Flow " );
292 strcpy( chPlaw,
" Globule " );
297 strcpy( chPlaw,
" UNRECOGNIZED CPRES " );
301 "\n Emission Line Spectrum. %20.20sModel. %6.6s geometry. Iteration %ld of %ld.\n",
311 chUnit =
"/arcsec^2";
315 sprintf( chLine,
"Flux observed at the Earth (erg/s/cm^2%s).", chUnit );
326 sprintf( chLine,
"Surface brightness (erg/s/cm^2/%s).", chUnit );
337 chUnit =
"erg/s/cm^2";
343 sprintf( chCoverage,
"with full coverage" );
345 sprintf( chCoverage,
"with a covering factor of %.1f%%",
geometry.
covgeo*100. );
348 sprintf( chLine,
"Luminosity (%s) emitted by a partial cylinder %s.", chUnit, chCoverage );
350 sprintf( chLine,
"Luminosity (%s) emitted by a shell %s.", chUnit, chCoverage );
357 chAper =
"long slit";
359 chAper =
"pencil beam";
363 sprintf( chLine,
"Observed through a %s with aperture covering factor %.1f%%.",
371 sprintf( chLine,
"Intensity (erg/s/cm^2)." );
375 fprintf(
ioQQQ,
"\n" );
384 static const int NWLH = 21;
386 realnum wlh[NWLH] = {6563.e0f, 4861.e0f, 4340.e0f, 4102.e0f, 1.875e4f, 1.282e4f,
387 1.094e4f, 1.005e4f, 2.625e4f, 2.166e4f, 1.945e4f, 7.458e4f,
388 4.653e4f, 3.740e4f, 4.051e4f, 7.458e4f, 3.296e4f, 1216.e0f,
389 1026.e0f, 972.5e0f, 949.7e0f };
397 if( (strcmp(
LineSv[i].chALab,
"Ca B" )==0) ||
398 (strcmp(
LineSv[i].chALab,
"Ca A" )==0) )
405 for( j=0; j<NWLH; ++j )
421 static const int NWLHE = 20;
422 realnum wlhe[NWLHE] = {1640.e0f, 1215.e0f, 1085.e0f, 1025.e0f, 4686.e0f, 3203.e0f,
423 2733.e0f, 2511.e0f, 1.012e4f, 6560.e0f, 5412.e0f, 4860.e0f,
424 1.864e4f, 1.163e4f, 9345.e0f, 8237.e0f, 303.8e0f, 256.3e0f,
428 if( (strcmp(
LineSv[i].chALab,
"Ca B" )==0) ||
429 (strcmp(
LineSv[i].chALab,
"Ca A" )==0) )
436 for( j=0; j<NWLHE; ++j )
455 if(
cdLine(
"TOTL",4861.36f,&hbeta,&absint)<=0 )
460 fprintf(
ioQQQ,
" PrtFinal could not find TOTL 4861 with cdLine.\n" );
469 if(
cdLine(
"He 1",5875.61f,&he5876,&absint)<=0 )
475 fprintf(
ioQQQ,
" PrtFinal could not find He 1 5876 with cdLine.\n" );
482 if(
cdLine(
"He 2",4686.01f,&he4686,&absint)<=0 )
489 fprintf(
ioQQQ,
" PrtFinal could not find He 2 4686 with cdLine.\n" );
503 heabun = (he4686*0.078 + he5876*0.739)/hbeta;
521 if(
cdLine(
"O 3",5007.,&o5007,&absint)<=0 )
526 fprintf(
ioQQQ,
" PrtFinal could not find O 3 5007 with cdLine.\n" );
531 if(
cdLine(
"TOTL",4363.,&o4363,&absint)<=0 )
536 fprintf(
ioQQQ,
" PrtFinal could not find TOTL 4363 with cdLine.\n" );
542 if( (o4363 != 0.) && (o5007 != 0.) )
586 if(
cdLine(
"Bac ",3646.,&bacobs,&absint)<=0 )
588 fprintf(
ioQQQ,
" PrtFinal could not find Bac 3546 with cdLine.\n" );
628 tel = -4.827969400906710 + x*(33.08493347410885 + x*(-56.08886262205931 +
629 x*(52.44759454803217 + x*(-25.07958990094209 + x*(4.815046760060006)))));
631 if( tel > 1. && tel < 5. )
648 if(
cdLine(
"thin",3646.,&bacthn,&absint)<=0 )
650 fprintf(
ioQQQ,
" PrtFinal could not find thin 3646 with cdLine.\n" );
655 if(
cdLine(
"Ca B",4861.36f,&hbcab,&absint)<=0 )
657 fprintf(
ioQQQ,
" PrtFinal could not find Ca B 4861 with cdLine.\n" );
695 x = 1.e0/log10(bacthn);
696 tel = -4.827969400906710 + x*(33.08493347410885 + x*(-56.08886262205931 +
697 x*(52.44759454803217 + x*(-25.07958990094209 + x*(4.815046760060006)))));
699 if( tel > 1. && tel < 5. )
760 chSLab[i] = (
char*)
MALLOC(5*
sizeof(
char));
774 for( ipEmType=0; ipEmType<nEmType; ++ipEmType )
782 fprintf(
ioQQQ,
"\n\n >>PROBLEM Normalization line has small or zero intensity, its value was %.2e and its intensity was set to 1."
783 "\n >>Please consider using another normalization line (this is set with the NORMALIZE command).\n" , snorm);
784 fprintf(
ioQQQ,
" >>The relative intensities will be meaningless, and many lines may appear too faint.\n" );
802 if(
LineSv[i].SumLine[ipEmType] > 0. )
808 xLog_line_lumin[i] = -38.;
816 if( (strcmp(
LineSv[i].chALab,
"Unit") == 0) || (strcmp(
LineSv[i].chALab,
"UntD") == 0) )
834 for(i=0; i< 32; i++ )
836 ipNegIntensity[i] = LONG_MAX;
845 const char chIntensityType[4][100]=
846 {
" Intrinsic" ,
" Emergent" ,
"Cumulative intrinsic" ,
"Cumulative emergent" };
847 ASSERT( ipEmType==0 || ipEmType==1 || ipEmType==2 || ipEmType==3 );
850 fprintf(
ioQQQ,
"\n" );
852 fprintf(
ioQQQ,
" " );
853 fprintf(
ioQQQ,
"%s" , chIntensityType[ipEmType] );
854 fprintf(
ioQQQ,
" line intensities\n" );
858 fprintf(
ioQQQ,
" Caution: emergent intensities are not reliable on the "
859 "first iteration.\n");
872 if( ipEmType==1 &&
LineSv[i].chSumTyp!=
't' )
882 sclsav[iprnt] = scaled[i];
887 strcpy( chSLab[iprnt],
LineSv[i].chALab );
894 ipNegIntensity[nNegIntenLines] = i;
895 nNegIntenLines =
MIN2(32,nNegIntenLines+1);
901 strcpy( chSLab[iprnt],
LineSv[i].chALab );
902 xLog_line_lumin[iprnt] = 0.;
917 if( strcmp(
LineSv[i].chALab,
"####" ) == 0 )
919 strcpy( chSLab[i],
LineSv[i].chALab );
920 xLog_line_lumin[i] = 0.;
927 sclsav[i] = scaled[i];
929 strcpy( chSLab[i],
LineSv[i].chALab );
934 ipNegIntensity[nNegIntenLines] = i;
935 nNegIntenLines =
MIN2(32,nNegIntenLines+1);
955 for( i=0; i<iprnt; ++i )
961 sclsav[j] = sclsav[i];
962 chSTyp[j] = chSTyp[i];
963 strcpy( chSLab[j], chSLab[i] );
967 xLog_line_lumin[j] = xLog_line_lumin[i];
1007 for( i=0; i<iprnt; ++i )
1022 nline = (iprnt + 2)/3;
1028 nline = (iprnt + 3)/4;
1039 fprintf(
ioQQQ,
"\n === No lines above selection threshold to print ===\n");
1042 for( i=0; i < nline; i++ )
1044 fprintf(
ioQQQ,
" " );
1048 for( j=i; j<iprnt; j = j + nline)
1051 long ipLin = ipSortLines[j];
1054 if( strcmp( chSLab[ipLin],
"####" ) == 0 )
1064 fprintf(
ioQQQ,
"%4.4s ",chSLab[ipLin] );
1073 fprintf(
ioQQQ,
" %7.3f", xLog_line_lumin[ipLin] );
1078 fprintf(
ioQQQ,
" %.2e ", xLog_line_lumin[ipLin] );
1084 if( sclsav[ipLin] < 9999.5 )
1086 fprintf(
ioQQQ,
"%9.4f",sclsav[ipLin] );
1088 else if( sclsav[ipLin] < 99999.5 )
1090 fprintf(
ioQQQ,
"%9.3f",sclsav[ipLin] );
1092 else if( sclsav[ipLin] < 999999.5 )
1094 fprintf(
ioQQQ,
"%9.2f",sclsav[ipLin] );
1096 else if( sclsav[ipLin] < 9999999.5 )
1098 fprintf(
ioQQQ,
"%9.1f",sclsav[ipLin] );
1102 fprintf(
ioQQQ,
"*********" );
1106 fprintf(
ioQQQ,
" " );
1110 fprintf(
ioQQQ,
" \n" );
1113 if( nNegIntenLines > 0 )
1115 fprintf(
ioQQQ,
" Lines with negative intensities - Linear intensities relative to normalize line.\n" );
1116 fprintf(
ioQQQ,
" " );
1118 for( i=0; i < nNegIntenLines; ++i )
1120 fprintf(
ioQQQ,
"%ld %s %.0f %.1e, ",
1122 LineSv[ipNegIntensity[i]].chALab,
1124 scaled[ipNegIntensity[i]] );
1126 fprintf(
ioQQQ,
"\n" );
1137 ipNegIntensity[j] = i;
1146 fprintf(
ioQQQ,
" Cooling: " );
1147 for( i=0; i < j; i++ )
1149 fprintf(
ioQQQ,
" %4.4s ",
1150 LineSv[ipNegIntensity[i]].chALab);
1154 fprintf(
ioQQQ,
":%5.3f",
1157 fprintf(
ioQQQ,
" \n" );
1167 ipNegIntensity[j] = i;
1175 fprintf(
ioQQQ,
" Heating: " );
1176 for( i=0; i < j; i++ )
1178 fprintf(
ioQQQ,
" %4.4s ",
1179 LineSv[ipNegIntensity[i]].chALab);
1183 fprintf(
ioQQQ,
":%5.3f",
1186 fprintf(
ioQQQ,
" \n" );
1192 fprintf(
ioQQQ,
"\n" );
1286 "\n IONIZE PARMET: U(1-)%8.4f U(4-):%8.4f U(sp):%6.2f "
1287 "Q(ion): %7.3f L(ion)%7.3f Q(low):%7.3f L(low)%7.3f\n",
1288 uhl, uhel, usp, qion, pion, qlow, plow );
1331 " ENERGY BUDGET: Heat:%8.3f Coolg:%8.3f Error:%5.1f%% Rec Lin:%8.3f F-F H%7.3f P(rad/tot)max ",
1338 fprintf(
ioQQQ,
"\n");
1351 fprintf(
ioQQQ,
"\n Col(Heff): ");
1353 fprintf(
ioQQQ,
" snd travl time ");
1355 fprintf(
ioQQQ,
" sec Te-low: ");
1357 fprintf(
ioQQQ,
" Te-hi: ");
1362 fprintf(
ioQQQ,
" G0TH85: ");
1366 fprintf(
ioQQQ,
" G0DB96:");
1369 fprintf(
ioQQQ,
"\n");
1371 fprintf(
ioQQQ,
" Emiss Measure n(e)n(p) dl ");
1373 fprintf(
ioQQQ,
" n(e)n(He+)dl ");
1375 fprintf(
ioQQQ,
" En(e)n(He++) dl ");
1377 fprintf(
ioQQQ,
" ne nC+:");
1379 fprintf(
ioQQQ,
"\n");
1392 fprintf(
ioQQQ,
" He/Ha:");
1396 fprintf(
ioQQQ,
" =%7.2f*true Lthin:",hescal);
1419 fprintf(
ioQQQ,
" itr/zn:%5.2f",znit);
1425 fprintf(
ioQQQ,
" File Opacity: F" );
1438 chUnit =
"(gm/cm^2)";
1441 fprintf(
ioQQQ,
" MassTot %.2e %s", xmass, chUnit );
1442 fprintf(
ioQQQ,
"\n");
1447 if(
cdTemp(
"opti",0,&THI,
"volume" ) )
1449 fprintf(
ioQQQ,
"\n>>>>>>>>>>>>>>>>> PrtFinal, impossible problem getting 21cm opt.\n");
1452 fprintf(
ioQQQ,
" Temps(21 cm) T(21cm/Ly a) ");
1459 if(
cdTemp(
"21cm",0,&THI,
"radius" ) )
1461 fprintf(
ioQQQ,
"\n>>>>>>>>>>>>>>>>> PrtFinal, impossible problem getting 21cm temp.\n");
1464 fprintf(
ioQQQ,
" T(<nH/Tkin>) ");
1469 if(
cdTemp(
"spin",0,&THI,
"radius" ) )
1471 fprintf(
ioQQQ,
"\n>>>>>>>>>>>>>>>>> PrtFinal, impossible problem getting 21cm spin.\n");
1474 fprintf(
ioQQQ,
" T(<nH/Tspin>) ");
1479 fprintf(
ioQQQ,
" TB21cm:");
1481 fprintf(
ioQQQ,
"\n");
1483 fprintf(
ioQQQ,
" N(H0/Tspin) ");
1485 fprintf(
ioQQQ,
" N(OH/Tkin) ");
1490 fprintf(
ioQQQ,
" B(21cm) ");
1494 fprintf(
ioQQQ,
"\n");
1525 fprintf(
ioQQQ,
" <a>:");
1527 fprintf(
ioQQQ,
" erdeFe");
1529 fprintf(
ioQQQ,
" Tcompt");
1531 fprintf(
ioQQQ,
" Tthr");
1533 fprintf(
ioQQQ,
" <Tden>: ");
1535 fprintf(
ioQQQ,
" <dens>:");
1537 fprintf(
ioQQQ,
" <MolWgt>");
1539 fprintf(
ioQQQ,
"\n");
1555 rjeans = (double)pow(10.,rjeans);
1561 ajmass = pow(10.,ajmass);
1578 ajmin = pow(10.,ajmin);
1600 if( bottom > 1e-30 && top > 1e-30 )
1602 ratio = log10(top) - log10(bottom);
1603 if( ratio < 36. && ratio > -36. )
1605 ratio = pow(10.,ratio);
1622 alfox = log(ratio)/log(freq_ratio);
1643 fprintf(
ioQQQ,
" Mean Jeans l(cm)");
1645 fprintf(
ioQQQ,
" M(sun)");
1647 fprintf(
ioQQQ,
" smallest: len(cm):");
1649 fprintf(
ioQQQ,
" M(sun):");
1651 fprintf(
ioQQQ,
" a_ox tran:%6.2f\n" , alfox);
1653 fprintf(
ioQQQ,
" Rion:");
1660 fprintf(
ioQQQ,
" Dist:");
1662 fprintf(
ioQQQ,
" Diam:");
1667 fprintf(
ioQQQ,
"\n");
1683 " Hatom level%3ld HatomType:%4.4s HInducImp %2c"
1684 " He tot level:%3ld He2 level: %3ld ExecTime%8.1f\n",
1697 " ConvrgError(%%) <eden>%7.3f MaxEden%7.3f <H-C>%7.2f Max(H-C)%8.2f <Press>%8.3f MaxPrs er%7.3f\n",
1706 " Continuity(%%) chng Te%6.1f elec den%6.1f n(H2)%7.1f n(CO) %7.1f\n",
1713 fprintf(
ioQQQ,
"\n Averaged Quantities\n" );
1714 fprintf(
ioQQQ,
" Te Te(Ne) Te(NeNp) Te(NeHe+)Te(NeHe2+) Te(NeO+) Te(NeO2+)"
1715 " Te(H2) N(H) Ne(O2+) Ne(Np)\n" );
1716 static const char* weight[3] = {
"Radius",
"Area",
"Volume" };
1718 for(
int dim=0; dim < dmax; ++dim )
1720 fprintf(
ioQQQ,
" %6s:", weight[dim] );
1738 fprintf(
ioQQQ,
"\n" );
1745 fprintf(
ioQQQ,
" \n" );
1748 fprintf(
ioQQQ,
" Peimbert T(OIIIr)");
1752 fprintf(
ioQQQ,
" T(Bac)");
1756 fprintf(
ioQQQ,
" T(Hth)");
1760 fprintf(
ioQQQ,
" t2(Hstrc)");
1764 fprintf(
ioQQQ,
" T(O3-BAC)");
1768 fprintf(
ioQQQ,
" t2(O3-BC)");
1772 fprintf(
ioQQQ,
" t2(O3str)");
1775 fprintf(
ioQQQ,
"\n");
1779 fprintf(
ioQQQ,
" Be careful: grains exist. This spectrum was not corrected for reddening before analysis.\n" );
1789 double total_dust2gas = 0.;
1791 fprintf(
ioQQQ,
"\n Average Grain Properties (over radius):\n" );
1793 for(
size_t i0=0; i0 <
gv.
bin.size(); i0 += 10 )
1796 fprintf(
ioQQQ,
"\n" );
1799 size_t i1 =
min(i0+10,
gv.
bin.size());
1801 fprintf(
ioQQQ,
" " );
1802 for(
size_t nd=i0; nd < i1; nd++ )
1804 chQHeat = (char)(
gv.
bin[nd]->lgEverQHeat ?
'*' :
' ');
1805 fprintf(
ioQQQ,
"%-12.12s%c",
gv.
bin[nd]->chDstLab, chQHeat );
1807 fprintf(
ioQQQ,
"\n" );
1809 fprintf(
ioQQQ,
" nd:" );
1810 for(
size_t nd=i0; nd < i1; nd++ )
1812 if( nd != i0 ) fprintf(
ioQQQ,
" " );
1813 fprintf(
ioQQQ,
"%7ld ", (
unsigned long)nd );
1815 fprintf(
ioQQQ,
"\n" );
1817 fprintf(
ioQQQ,
" <Tgr>:" );
1818 for(
size_t nd=i0; nd < i1; nd++ )
1820 if( nd != i0 ) fprintf(
ioQQQ,
" " );
1823 fprintf(
ioQQQ,
"\n" );
1825 fprintf(
ioQQQ,
" <Vel>:" );
1826 for(
size_t nd=i0; nd < i1; nd++ )
1828 if( nd != i0 ) fprintf(
ioQQQ,
" " );
1831 fprintf(
ioQQQ,
"\n" );
1833 fprintf(
ioQQQ,
" <Pot>:" );
1834 for(
size_t nd=i0; nd < i1; nd++ )
1836 if( nd != i0 ) fprintf(
ioQQQ,
" " );
1839 fprintf(
ioQQQ,
"\n" );
1841 fprintf(
ioQQQ,
" <D/G>:" );
1842 for(
size_t nd=i0; nd < i1; nd++ )
1844 if( nd != i0 ) fprintf(
ioQQQ,
" " );
1849 fprintf(
ioQQQ,
"\n" );
1852 fprintf(
ioQQQ,
" Dust to gas ratio (by mass):");
1862 fprintf(
ioQQQ,
", A(V)/N(H)(pnt):%.3e, (ext):%.3e",
1867 fprintf(
ioQQQ,
", R:");
1872 fprintf(
ioQQQ,
"%.3e", AV/(AB-AV) );
1876 fprintf(
ioQQQ,
"%.3e", 0. );
1878 fprintf(
ioQQQ,
" AV(ext):%.3e (pnt):%.3e\n",
1885 free( ipSortLines );
1898 free( xLog_line_lumin );
1943 fprintf(
ioQQQ,
" Too many comments have been entered into line array; increase the value of NHOLDCOMMENTS.\n" );
1948 static const int NWIDTH = 33;
1953 for( i=0; i<NWIDTH-n-1-6; ++i )
1960 for( i=0; i<6; ++i )
1990 for( i=0; i <
nzone; i++ )
2010 for( i=0; i <
nzone; i++ )
2039 for( i=0; i <
nzone; i++ )
2060 for( i=0; i <
nzone; i++ )
sys_float sexp(sys_float x)
long nMatch(const char *chKey, const char *chCard)
void PrintE93(FILE *, double)
void PrintE82(FILE *, double)
const int INPUT_LINE_LENGTH
void cap4(char *chCAP, const char *chLab)
void PrintE71(FILE *, double)
bool fp_equal(sys_float x, sys_float y, int n=3)
void spsort(realnum x[], long int n, long int iperm[], int kflag, int *ier)
NORETURN void TotalInsanity(void)
sys_float SDIV(sys_float x)
#define DEBUG_ENTRY(funcname)
long int cdLine(const char *chLabel, realnum wavelength, double *relint, double *absint)
int cdTemp(const char *chLabel, long int IonStage, double *TeMean, const char *chWeight)
static t_version & Inst()
char chVersion[INPUT_LINE_LENGTH]
long ipoint(double energy_ryd)
UNUSED const realnum BIGFLOAT
diatomics h2("h2", 4100., &hmi.H2_total, Yan_H2_CS)
t_iso_sp iso_sp[NISO][LIMELM]
double totlin(int chInfo)
realnum WavlenErrorGet(realnum wavelength)
static realnum * wavelength
UNUSED const double SOLAR_MASS
UNUSED const double AS1RAD
UNUSED const double EN1RYD
UNUSED const double RYDLAM
void prt_wl(FILE *ioOUT, realnum wl)
void PrtMeanIon(char chType, bool lgDensity, FILE *)
void DatabasePrintReference()
void PrtColumns(FILE *ioMEAN, const char *chType, long int ipPun)
long int StuffComment(const char *chComment)
void PrintCenterLine(FILE *io, const char chLine[], size_t ArrLen, size_t LineLen)
STATIC void gett2o3(realnum *tsqr)
void PrintRatio(double q1, double q2)
STATIC void gett2(realnum *tsqr)
char chHoldComments[NHOLDCOMMENTS][INPUT_LINE_LENGTH]
bool lgHCaseBOK[2][HS_NZ]
long int nTotalIoniz_start
realnum AverHeatCoolError
realnum gas_phase[LIMELM]
realnum UV_Cont_rel2_Habing_TH85_face
realnum UV_Cont_rel2_Draine_DB96_face
multi_arr< double, 4 > TempIonEdenMean
multi_arr< double, 4 > xIonMean
multi_arr< double, 2 > TempMean
multi_arr< double, 2 > TempEdenMean
multi_arr< double, 4 > TempIonMean
bool lgPrintLineCumulative
bool lgSortLineWavelength
bool lgSurfaceBrightness_SR
double extin_mag_V_extended
TransitionList HFLines("HFLines", &AnonStates)