120 double VolComputed , VolExpected , ConComputed , ConExpected;
147 " !This is beta test version %ld and is intended for testing only.",
153 for (vector<module*>::iterator mi = mods.begin(); mi != mods.end(); ++mi)
162 sprintf(
warnings.
chRgcln[0],
" W-Calculation stopped because %s Iteration%3ld of %ld",
164 sprintf( chLine,
" W-Calculation stopped because %s",
167 sprintf( chLine,
" W-This was not intended." );
177 " Calculation stopped because %s Iteration %ld of %ld, not converged due to %s",
186 " Calculation stopped because %s Iteration %ld of %ld",
197 " W-Calculation stopped because default number of zones reached. Was this intended???" );
200 " W-Default limit can be increased while retaining this check with the SET NEND command." );
211 " W-Calculation stopped zone thickness became too thin. This was not intended." );
214 " W-The most likely reason was an uncontrolled oscillation." );
222 " W-This happened because the globule scale became very small relative to the depth." );
225 " W-This problem is described in Hazy." );
245 else if( rel >= 0.1 && rel < 3. )
264 sprintf( chLine,
" C-The assumed electron density was incorrect for the last zone." );
266 sprintf( chLine,
" C-Did a temperature discontinuity occur??" );
271 sprintf( chLine,
" W-The assumed electron density was incorrect during the calculation. This is bad." );
279 sprintf( chLine,
" W-The calculation aborted. Something REALLY went wrong!" );
286 sprintf( chLine,
" !The thermal map had changes in slope - check map output." );
294 sprintf( chLine,
" !Fudge factors were used or were checked. Why?" );
300 sprintf( chLine,
" !Modified data files were used in this simulation."
301 " This is fine if it was done intentionally." );
309 sprintf( chLine,
" C-Density greater than 10**15, heavy elements are very uncertain." );
314 sprintf( chLine,
" C-Density greater than 10**13" );
320 if(
cdLine(
"Pump",4861.33f,&relfl,&absint)<=0 )
322 fprintf(
ioQQQ,
" PROBLEM Did not find Pump H-beta, set to unity\n" );
332 fprintf(
ioQQQ,
" NOTE Did not find H 1 H-beta - set intensity to unity, "
333 "will not check on importance of H 1 pumping.\n" );
345 sprintf( chLine,
" !Continuum fluorescent production of H-beta was very important." );
348 else if(flur > 0.01 )
350 sprintf( chLine,
" Continuum fluorescent production of H-beta was significant." );
359 sprintf( chLine ,
" Iteration not converged because %s.",
368 sprintf( chLine,
" C-Iterate to convergence did not converge in %li iterations.",
374 sprintf( chLine,
" C-Iterate to convergence requested but sim stopped due to too-low temperature.");
376 sprintf( chLine,
" C-This may have convergence problems due to outer radius changing.");
378 sprintf( chLine,
" C-Consider setting a different stop criterion.");
386 sprintf( chLine,
" C-Wind velocity below sonic point; solution is not valid." );
394 if( fabs(1.-rel)> 0.02 )
396 sprintf( chLine,
" C-Wind mass flux error is %g%%",fabs(1.-rel)*100. );
414 fprintf(
ioQQQ,
"\n\n Enable per zone energy conservation check by setting "
415 "CHECK_ENERGY_EVERY_ZONE=true in cloudy.cpp, recompile, then rerun.\n");
423 " !Magnetic field & cosmic rays both present. Their interactions are not treated." );
431 " !Background cosmic rays are not included - is this physical? It affects the chemistry." );
439 " C-Model is thick to cosmic rays, which are on." );
447 " !Ionization rate fell below background cosmic ray ionization rate. Should this be added too?" );
450 " ! Use the COSMIC RAY BACKGROUND command." );
457 sprintf( chLine,
" !Test code is in place." );
465 " !Compton cooling rate underflows to zero. Is this important?" );
473 " !Some input lines contained underscores, these were changed to spaces." );
481 " !Some input lines contained [ or ], these were changed to spaces." );
489 " !There is no hydrogen-ionizing radiation. Was this intended?" );
497 " Derivative of net cooling negative and so possibly thermally unstable in%4ld zones.",
507 " !A large fraction of the zones were possibly thermally unstable,%4ld out of%4ld",
516 " !Negative cooling reached %6.1f%% of the local heating, due to %4.4s %.1f",
523 " Negative cooling reached %6.1f%% of the local heating, due to %4.4s %.2f",
532 " !Advection heating reached %.2f%% of the local heating.",
539 " Advection heating reached %.2f%% of the local heating.",
548 " !Advection cooling reached %.2f%% of the local cooling.",
555 " Advection cooling reached %.2f%% of the local heating.",
567 " W-Time dependent ionization front cannot now handle strong-R cases - the ionization parameter is too large." );
573 " C-Time dependent ionization front cannot now handle strong-R cases - the ionization parameter is too large." );
582 " !Thermal collisional ionization of H reached %.2f%% of the local ionization rate.",
589 " Thermal collisional ionization of H reached %.2f%% of the local ionization rate.",
598 " Te-ne bounds of Case B lookup table exceeded, H I Case B line intensities set to zero." );
604 " Te-ne bounds of Case B lookup table exceeded, He II Case B line intensities set to zero." );
611 " !The high electron density makes the Nussbaumer/Storey CNO recombination predictions unreliable." );
619 " !Suprathermal collisional ionization of H reached %.2f%% of the local H ionization rate.",
626 " Suprathermal collisional ionization of H reached %.2f%% of the local H ionization rate.",
635 " !H2 vib deexec heating reached %.2f%% of the local heating.",
642 " H2 vib deexec heating reached %.2f%% of the local heating.",
651 " !H2 deexec cooling reached %.2f%% of the local heating.",
658 " H2 deexec cooling reached %.2f%% of the local heating.",
667 " !Charge transfer H => H+ reached %.1f%% of the local H ionization rate.",
674 " Charge transfer H => H+ reached %.2f%% of the local H ionization rate.",
683 " !Charge transfer heating reached %.2f%% of the local heating.",
690 " Charge transfer heating reached %.2f%% of the local heating.",
698 " !Charge transfer cooling reached %.2f%% of the local heating.",
705 " Charge transfer cooling reached %.2f%% of the local heating.",
714 " !Photoionization of upper level of Mg II 2798 reached %.1f%% of the total Mg+ photo rate.",
721 " Photoionization of upper level of Mg II 2798 reached %.1f%% of the total Mg+ photo rate.",
730 " !Photoionization of upper levels of [O I] reached %.1f%% of the total O destruction rate.",
737 " Photoionization of upper levels of [O I] reached %.1f%% of the total O destruction rate.",
746 " !Photoionization of upper levels of [O III] reached %.1f%% of the total O++ photo rate.",
753 " Photoionization of upper levels of [O III] reached %.1f%% of the total O++ photo rate.",
762 " !Destruction of He 2TriS reached %.1f%% of the total He0 dest rate"
763 " at zone %li, %.1f%% of that was photoionization.",
772 " Destruction of He 2TriS reached %.1f%% of the total He0 dest rate"
773 " at zone %li, %.1f%% of that was photoionization.",
786 " The density is too low to l-mix the lowest %s I collapsed level. "
787 " More resolved levels are needed for accurate line ratios.",
796 for( nelem=ipISO; nelem<
LIMELM; ++nelem )
800 sprintf( chLine,
" !Continuum was lowered into model %s-like %s due to high density. Highest n is %li",
808 sprintf( chLine,
" !Continuum was lowered into model %s-like %s due to high density at SOME point but NOT at the last zone.",
816 for( nelem=ipISO; nelem<
LIMELM; ++nelem )
818 if(
iso_sp[ipISO][nelem].lgPopsRescaled )
821 sprintf( chLine,
" C-Populations were rescaled for %s-like %s due to \"element ionization\" command.",
833 " C-Continuum not defined in extreme infrared - Compton scat, grain heating, not treated properly?" );
840 " C-Continuum not defined at photon energies which ionize excited states of H, important for H- and ff heating." );
847 " C-Continuum not defined at X-Ray energies - Compton scattering and Auger ionization wrong?" );
854 " C-Continuum not defined at gamma-ray energies - pair production and Compton scattering OK?" );
860 sprintf( chLine,
" C-Continuum zero at some energies." );
866 sprintf( chLine ,
" C-CoStarInterpolate interpolated between non-adjoining tracks, this may not be valid." );
873 " !The continuum occupation number at 1 Ryd is greater than unity." );
881 " C-The thickness of the first zone was set larger than optimal by a SET DR command." );
887 " C-Consider using the STOP THICKNESS command instead." );
895 if(
cdLine(
"Blnd",4363,&t4363,&absint)<=0 )
897 fprintf(
ioQQQ,
" PrtComment could not find total O III 4363 with cdLine.\n" );
904 fprintf(
ioQQQ,
" PrtComment could not find collisional O III 4363 with cdLine, assuming intensity of zero.\n" );
915 ratio = (t4363 - c4363)/t4363;
919 " !Non-collisional excitation of [O III] 4363 reached %.2f%% of the total.",
923 else if( ratio > 0.001 )
926 " Non-collisional excitation of [O III] 4363 reached %.2f%% of the total.",
938 " !The largest plasma frequency was %.2e Ryd = %.2e micron The continuum is set to 0 below this.",
950 " !The largest continuum occupation number was %.3e at %.3e Ryd.",
959 " The largest continuum occupation number was %.3e at %.3e Ryd.",
971 " The continuum occupation number fell below 1 at %.3e microns.",
978 " The continuum occupation number fell below 1 at %.3e Angstroms.",
985 " The continuum occupation number fell below 1 at %.3e Ryd.",
994 " !The largest continuum brightness temperature was %.3eK at %.3e Ryd.",
1005 " The continuum brightness temperature fell below 10000K at %.3e microns.",
1012 " The continuum brightness temperature fell below 10000K at %.3e Angstroms.",
1019 " The continuum brightness temperature fell below 10000K at %.3e Ryd.",
1029 " !Both constant pressure and turbulence makes no physical sense?" );
1037 " !Both constant pressure and a filling factor makes no physical sense?" );
1045 " !Grains are present, but the gas phase abundances were left at the solar default. This is not physical." );
1053 " !Grains are not present, but the gas phase abundances were depleted. This is not physical." );
1059 long nBin=0L, nFail=0L;
1060 for(
size_t nd=0; nd <
gv.
bin.size(); nd++ )
1062 if(
gv.
bin[nd]->QHeatFailures > 0L )
1065 nFail +=
gv.
bin[nd]->QHeatFailures;
1071 " !The grain quantum heating treatment failed to converge %ld time(s) in %ld bin(s).", nFail, nBin );
1082 bool lgPAHsPresent_and_constant =
false;
1083 for(
size_t nd=0; nd <
gv.
bin.size(); nd++ )
1085 lgPAHsPresent_and_constant = lgPAHsPresent_and_constant ||
1087 (
gv.
bin[nd]->lgPAHsInIonizedRegion );
1089 if( lgPAHsPresent_and_constant )
1092 " C-PAH's were present in the ionized region, this has never been observed in H II regions." );
1102 " C-The continuum energy density temperature (%g K)"
1103 " is greater than the gas kinetic temperature (%g K).",
1106 sprintf( chLine,
" C-This is unphysical." );
1114 " Grains were not present but might survive in this environment (energy density temperature was %.2eK)",
1127 sprintf( chLine,
" H-eps and Ca H overlap." );
1134 sprintf( chLine,
" !A physical process has been disabled." );
1144 " !Photoionization of upper level of [O III] 5007 reached %.2e%% of the radiative lifetime.",
1151 " Photoionization of upper level of [O III] 5007 reached %.2e%% of the radiative lifetime.",
1158 " !Photoionization of upper level of [O III] 4363 reached %.2e%% of the radiative lifetime.",
1165 " Photoionization of upper level of [O III] 4363 reached %.2e%% of the radiative lifetime.",
1179 " !Heating - cooling mismatch =%5.1f%%. Caused by constant temperature assumption. ",
1187 if( error > 0.05 && error < 0.2 )
1189 sprintf( chLine,
" C-Heating - cooling mismatch =%.1f%%. What\'s wrong?",
1193 else if( error >= 0.2 )
1195 sprintf( chLine,
" W-Heating - cooling mismatch =%.2e%%. What\'s wrong????",
1205 " Photoionization of Ca+ 2D level by Ly-alpha reached %6.1f%% of the total rate out.",
1216 " !The excitation temp of Lya exceeded the electron temp, largest value was %.2eK (gas temp there was %.2eK, zone %ld)",
1226 if(
cdLine(
"Line",0,&SumNeg,&absint)<=0 )
1234 if(
cdLine(
"TotH",0,&GetHeat,&absint)<=0 )
1247 " !Line absorption heating reached %.2f%% of the global heating.",
1251 else if( SumNeg > 0.01 )
1254 " Line absorption heating reached %.2f%% of the global heating.",
1263 " !NO BUFFERING command was entered - this increases exec time by LARGE amounts.");
1274 " !G-bar cooling lines reached %.2f%% of the local cooling. Line=%.10s",
1284 " G-bar cooling lines reached %.2f%% of the local cooling. Line=%.10s",
1293 " !Hyperfine structure line cooling reached %.2f%% of the local cooling.",
1301 " Hyperfine structure line cooling reached %.2f%% of the local cooling.",
1314 " !Line absorption heating reached %.2f%% of the local heating - largest by level%2ld line %.10s",
1322 " Line absorption heating reached %.2f%% of the local heating.",
1330 for( nelem=ipISO; nelem<
LIMELM; ++nelem )
1338 for( ipHi=1; ipHi < nmax - 1; ++ipHi )
1340 for( ipLo=0; ipLo < ipHi; ++ipLo )
1346 if(
iso_sp[ipISO][nelem].trans(ipHi,ipLo).Emis().TauIn() < -0.1 )
1349 " !Some iso-structure lines mased: %s-like %s, line %li-%li had optical depth %.2e",
1373 " !Some infrared fine structure lines are optically thick: largest tau was %.2e",
1378 if( tauneg < -0.01 )
1381 " !Some fine structure lines mased: line %s had optical depth %.2e",
1382 chLbl.c_str(), tauneg );
1394 sprintf( chLine,
" C-I must iterate when SPHERE STATIC is set." );
1402 sprintf( chLine,
" C-I must iterate when save continuum output is done." );
1413 sprintf( chLine,
" !Rate of induced H 2-photon emission reached %.2e s^-1",
1419 sprintf( chLine,
" Rate of induced H 2-photon emission reached %.2e s^-1",
1429 " Induced recombination was %5.1f%% of the total for H level%3ld",
1437 " Stimulated emission was%6.1f%% of the total for H transition%3ld -%3ld",
1444 if(
cdLine(
"Fe 2",1215.67,&fedest,&absint)<=0 )
1452 if(
cdLine(
"H 1",1215.67f,&relhm,&absint)<=0 )
1461 ratio = fedest/(fedest + relhm);
1464 sprintf( chLine,
" !Fe II destruction of Ly-a removed %.1f%% of the line.",
1468 else if( ratio > 0.01 )
1470 sprintf( chLine,
" Fe II destruction of Ly-a removed %.1f%% of the line.",
1476 if(
cdLine(
"H-CT",6562.81,&relhm,&absint)<=0 )
1478 fprintf(
ioQQQ,
" Comment did not find H-CT H-alpha\n" );
1485 if( relhm/HBeta > 0.01 )
1488 " !Mutual neutralization production of H-alpha was significant." );
1497 " The population of H n=2 reached %.2e relative to the ground state.",
1505 for( nelem=ipISO; nelem <
LIMELM; nelem++ )
1507 if(
iso_sp[ipISO][nelem].CaseBCheck > 1.5 )
1510 " Ratio of computed diffuse emission to case B reached %g for iso %li element %li",
1511 iso_sp[ipISO][nelem].CaseBCheck , ipISO , nelem+1 );
1525 sprintf( chLine,
" W-Electrons were relativistic; High TE=%.2e",
1531 sprintf( chLine,
" C-Electrons were mildly relativistic; High TE=%.2e",
1547 sprintf( chLine,
" !Timescale-photoerosion of Fe=%.2e yr",
1553 sprintf( chLine,
" Timescale-photoerosion of Fe=%.2e yr",
1563 sprintf( chLine,
" Compton heating was %5.1f%% of the total.",
1572 " !Induced Compton heating was %.2e of the total Compton heating.",
1583 " C-Compton cooling is significant and the equilibrium timescale (%.2e s) is longer than the Hubble time.",
1590 " Compton cooling equilibrium timescale (%.2e s) is longer than Hubble time.",
1599 " C-Thermal equilibrium timescale, %.2e s, longer than Hubble time; this cloud is not time-steady.",
1614 " C-Cloud thicker than smallest Jeans length=%8.2ecm; stability problems? (smallest Jeans mass=%8.2eMo)",
1621 " Cloud thicker than smallest Jeans length=%8.2ecm; stability problems? (smallest Jeans mass=%8.2eMo)",
1628 for(
size_t nd=0; nd <
gv.
bin.size(); nd++ )
1633 " W-Maximum temperature of grain %s was %.2eK, above its sublimation temperature, %.2eK.",
1634 gv.
bin[nd]->chDstLab,
gv.
bin[nd]->TeGrainMax,
1635 gv.
bin[nd]->Tsublimat );
1641 " C-Maximum temperature of grain %s was %.2eK, near its sublimation temperature, %.2eK.",
1642 gv.
bin[nd]->chDstLab,
gv.
bin[nd]->TeGrainMax,
1643 gv.
bin[nd]->Tsublimat );
1650 sprintf( chLine,
" !Grain drag force <0." );
1658 " !Grains donated %5.1f%% of the total electrons in some regions.",
1665 " Grains donated %5.1f%% of the total electrons in some regions.",
1674 " !Grains contained %5.1f%% of the total electrons in some regions.",
1681 " Grains contained %5.1f%% of the total electrons in some regions.",
1690 " !Local grain-gas photoelectric heating rate reached %5.1f%% of the total.",
1697 " Local grain-gas photoelectric heating rate reached %5.1f%% of the total.",
1705 " Global grain photoelectric heating of gas was%5.1f%% of the total.",
1711 " !Grain photoelectric heating is VERY important." );
1720 " Local grain-gas cooling of gas rate reached %5.1f%% of the total.",
1731 " !The large H2 molecule - main chemistry network renormalization factor reached %.2f.",
1738 " The large H2 molecule - main chemistry network renormalization factor reached %.2f.",
1748 " !The large H2 molecule - main chemistry network renormalization factor reached %.2f.",
1755 " The large H2 molecule - main chemistry network renormalization factor reached %.2f.",
1765 " !The local H2+ photodissociation heating rate reached %5.1f%% of the total heating.",
1773 " The local H2+ photodissociation heating rate reached %.1f%% of the total heating.",
1782 " !The local H2 photodissociation heating rate reached %.1f%% of the total heating.",
1789 " The local H2 photodissociation heating rate reached %.1f%% of the total heating.",
1798 " !The local H2 cooling rate reached %.1f%% of the local cooling.",
1805 " The local H2 cooling rate reached %.1f%% of the local cooling.",
1813 " Global H2 photodissociation heating of gas was %.1f%% of the total heating.",
1818 sprintf( chLine,
" H2 photodissociation heating is VERY important." );
1827 " !Local CO photodissociation heating rate reached %.1f%% of the total.",
1834 " Local CO photodissociation heating rate reached %.1f%% of the total.",
1842 " Global CO photodissociation heating of gas was %.1f%% of the total.",
1847 sprintf( chLine,
" CO photodissociation heating is VERY important." );
1855 " Energy density of radiation field was greater than the Compton temperature. Is this physical?" );
1862 sprintf( chLine,
" Induced recombination cooling was %.1f%% of the total.",
1870 sprintf( chLine,
" !Free-free heating was %.1f%% of the total.",
1876 sprintf( chLine,
" Free-free heating was %.1f%% of the total.",
1884 sprintf( chLine,
" H- absorption heating was %.1f%% of the total.",
1892 sprintf( chLine,
" Water destruction rate zero." );
1902 for( nelem=0; nelem<
LIMELM; ++nelem )
1930 " !Some hydrogenic lines mased, species was %2s%2ld, smallest tau was %.2e, transition %li-%li",
1932 isav+1,small, imas , j );
1939 sprintf( chLine,
" !Some opacities were negative - the SET NEGOPC command will save which ones." );
1947 for( nelem=0; nelem<
LIMELM; ++nelem )
1966 sprintf( chLine,
" !Some hydrogenic (%2s%2ld) continua optical depths were negative; smallest=%.2e level=%3ld",
1991 sprintf( chLine,
" !Some continuous optical depths <0. The lowest freq was %.3e Ryd, and a total of%4ld",
1994 sprintf( chLine,
" !The smallest optical depth was %.2e",
2002 sprintf( chLine,
" The Balmer continuum optical depth was %.2e.",
2010 sprintf( chLine,
" The Lyman continuum stimulated emission correction to optical depths reached %.2e.",
2016 sprintf( chLine,
" The Balmer continuum stimulated emission correction to optical depths reached %.2e.",
2025 " The Paschen continuum optical depth was %.2e.",
2034 " The continuum optical depth at the lowest energy considered (%.3e Ryd) was %.3e.",
2044 " The optical depth to Rayleigh scattering at 1300A is %.2e",
2052 " !The optical depth to the H2+ molecular ion is %.2e",
2059 " The optical depth to the H2+ molecular ion is %.2e",
2068 " !Optical depth to negative hydrogen ion is %.2e",
2075 " Optical depth to negative hydrogen ion is %.2e",
2084 " !Incident radiation field energy density is less than 2.7K. Add background with CMB command." );
2092 " !The CMB was not included. This is added with the CMB command." );
2100 " !The intensity of the incident radiation field is less than 10 times the Habing diffuse ISM field. Is this OK?" );
2103 " ! Consider adding diffuse ISM emission with TABLE ISM command." );
2114 sprintf( chLine,
" !The C/O abundance ratio, %.1f, is greater than unity. The chemistry will be carbon dominated.",
2120 bool lgLots_of_moles =
false;
2121 bool lgLotsSolids =
false;
2129 sprintf( chLine,
" !The fraction of %s in %s reached %.1f%% at some point in the cloud.",
2134 lgLots_of_moles =
true;
2137 lgLotsSolids =
true;
2141 sprintf( chLine,
" The fraction of %s in %s reached %.2f%% at some point in the cloud.",
2146 lgLots_of_moles =
true;
2149 lgLotsSolids =
true;
2153 sprintf( chLine,
" The fraction of %s in %s reached %.3f%% at some point in the cloud.",
2160 lgLotsSolids =
true;
2166 if( lgLots_of_moles )
2176 " C-Molecules are important, but %s, part of the chemistry network, is turned off.",
2182 for( i=NUM_HEAVY_MOLEC+NUM_ELEMENTS; i<NUM_COMOLE_CALC; ++i )
2188 " C-Molecules are important, but %s, part of the chemistry network, is turned off.",
2201 sprintf( chLine,
" !A significant amount of molecules condensed onto grain surfaces." );
2203 sprintf( chLine,
" !These are the molecular species with \"grn\" above." );
2210 sprintf( chLine,
" !The cloud is optically thick at optical wavelengths, extending to %.3e Ryd =%.3eA",
2216 sprintf( chLine,
" The continuum of the computed structure may be optically thick in the near infrared." );
2223 sprintf( chLine,
" Is an outer radius of %.2e reasonable?",
2231 sprintf( chLine,
" Laser maser optical depths capped in RT_line_one_tauinc." );
2238 sprintf( chLine,
" !Line maser set zone thickness in some zones." );
2247 sprintf( chLine,
" Radiation pressure kept below gas pressure on this iteration." );
2256 " !The ratio of radiation to gas pressure reached %.2e at zone %li. Caused by Lyman alpha.",
2264 " !The ratio of radiation to gas pressure reached %.2e at zone %li. "
2265 "Caused by line number %ld, label %s",
2279 " The ratio of radiation to gas pressure reached %.2e at zone %li. Caused by Lyman alpha.",
2287 " The ratio of radiation to gas pressure reached %.2e at zone %li. "
2288 "Caused by line number %ld, label %s",
2299 sprintf( chLine,
" W-The model is optically thick to electron "
2300 "scattering; tau=%.2e Cloudy is NOT intended for this regime.",
2306 sprintf( chLine,
" C-The model is moderately optically thick to electron scattering; tau=%.1f",
2312 sprintf( chLine,
" !The model has modest optical depth to electron scattering; tau=%.2f",
2318 sprintf( chLine,
" The optical depth to electron scattering is %.3f",
2324 if(
HFLines[0].Emis().TauIn() > 0.5 )
2326 sprintf( chLine,
" !The optical depth in the H I 21 cm line is %.2e",
HFLines[0].Emis().TauIn() );
2335 sprintf( chLine,
" !The level2 lines are disabled. UV pumping of excited levels within ground terms is not treated." );
2340 for( nelem=0; nelem <
LIMELM; nelem++ )
2356 " C-This is the last iteration and %2s%2ld Bal(a) optical depth"
2357 " changed by %.1f%% (was %.2e). Use the ITERATE command to do more iterations.",
2378 " C-This is the last iteration and %2s%2ld Ly(a) optical depth"
2379 " changed by %.1f%% (was %.2e). Use the ITERATE command to do more iterations.",
2393 sprintf( chLine,
" C-R(out)/R(in)=%.2e and SPHERE was not set.",
2408 sprintf( chLine,
" C-The H Lyman continuum is thin, and I assumed"
2409 " that it was thick. Use the ITERATE command to do more iterations." );
2422 " C-The He II continuum is thin and I assumed that it was thick."
2423 " Use the ITERATE command to do more iterations." );
2435 " C-The He I continuum is thin and I assumed that it was thick."
2436 " Use the ITERATE command to do more iterations." );
2448 fprintf(
ioQQQ,
" colden_old is insane in PrtComment.\n" );
2456 if( differ > 0.1 && differ <= 0.3 )
2459 " The H column density changed by %.2e%% between this and previous iteration.",
2464 else if( differ > 0.3 )
2469 " C-The H column density changed by %.2e%% and this is the last iteration. What happened?",
2476 " !The H column density changed by %.2e%% What happened?",
2488 if( differ > 0.1 && differ <= 0.3 )
2491 " The H2 column density changed by %.2e%% between this and previous iteration.",
2496 else if( differ > 0.3 )
2501 " C-The H2 column density changed by %.2e%% and this is the last iteration. What happened?",
2508 " !The H2 column density changed by %.2e%% What happened?",
2524 sprintf( chLine,
" C-This is the last iteration, radiation pressure was significant, and the L-a optical depth changed by %7.2f%% (was %.2e)",
2535 sprintf( chLine,
" C-The Lya optical depth scale was overrun and this is the last iteration - Tspin(21 cm) is not valid." );
2537 sprintf( chLine,
" C-Another iteration is needed for Tspin(21 cm) to be valid. Use the ITERATE command." );
2544 sprintf( chLine,
" Line radiation pressure capped by thermalization length." );
2554 long _o = sprintf( chLine,
" There were %ld minor temperature failures. zones:",
2558 for( i=0; i < nline; i++ )
2560 _o += sprintf( chLine+_o,
" %ld",
conv.
ifailz[i] );
2567 " !There were %ld temperature failures, and some were large. The largest was %.1f%%. What happened?",
2573 long _o = sprintf( chLine ,
" !The zones were" );
2574 for( i=0; i < nline; i++ )
2576 _o += sprintf( chLine+_o,
" %ld",
conv.
ifailz[i] );
2582 sprintf( chLine,
" !I think they may have been caused by the change from hot to nebular gas phase. The physics of this is unclear." );
2591 for( i=1; i <
nzone; i++ )
2594 if( big > big_ion_jump )
2601 if( big_ion_jump > 0.2 )
2611 if( big_ion_jump > 0.4 )
2613 sprintf( chLine,
" C-A temperature discontinuity occurred"
2614 " from %.2eK (zone %ld) to %.2eK (zone %ld).",
2623 sprintf( chLine,
" C-This was probably due to a thermal front." );
2627 else if( big_ion_jump > 0.2 )
2629 sprintf( chLine,
" !A temperature discontinuity occurred"
2630 " from %.2eK (zone %ld) to %.2eK (zone %ld).",
2639 sprintf( chLine,
" !This was probably due to a thermal front." );
2652 sprintf( chLine,
" W-The local error in the electron density reached %.1f%% at zone %ld",
2658 sprintf( chLine,
" C-The local error in the electron density reached %.1f%% at zone %ld",
2664 sprintf( chLine,
" The local error in the electron density reached %.1f%% at zone %ld",
2673 for( i=1; i < (nzone - 1); i++ )
2682 if( rel < 0. &&
MIN2( bigm , big ) > big_ion_jump )
2685 big_ion_jump =
MIN2( bigm , big );
2689 if( big_ion_jump > 0.1 )
2699 if( big_ion_jump > 0.3 )
2702 " C-A temperature oscillation occurred by %.0f%%"
2703 " from %.2e (zone %ld) to %.2e (zone %ld) to %.2e (zone %ld)",
2708 else if( big_ion_jump > 0.1 )
2711 " !A temperature oscillation occurred by %.0f%%"
2712 " from %.2e (zone %ld) to %.2e (zone %ld) to %.2e (zone %ld)",
2724 for( i=1; i < (nzone - 1); i++ )
2732 if( big*bigm < 0. &&
2754 sprintf( chLine,
" C-An electron density oscillation occurred by %.0f%%"
2755 " from %.2e (zone %ld) to %.2e (zone %ld) to %.2e (zone %ld)",
2762 sprintf( chLine,
" !An electron density oscillation occurred by %.0f%%"
2763 " from %.2e (zone %ld) to %.2e (zone %ld) to %.2e (zone %ld)",
2782 i =
cdLine(
"Unit" , 1 , &rate , &absint );
2806 error = fabs(VolComputed - VolExpected)/
SDIV(VolExpected);
2816 if( error > 0.001 && !
lgAbort )
2819 " W-PrtComment insanity - Line unit integration did not verify \n");
2822 " PROBLEM PrtComment insanity - Line unit integration did not verify \n");
2824 " expected, derived vols were %g %g \n",
2825 VolExpected , VolComputed );
2827 " relative difference is %g, ratio is %g.\n",error,VolComputed/VolExpected);
2859 ASSERT( ConExpected > 0. );
2862 error = fabs(ConComputed - ConExpected)/ConExpected;
2877 if( error > 0.001 && !
lgAbort)
2880 " W-PrtComment insanity - Continuum unit integration did not verify \n");
2882 fprintf(
ioQQQ,
" PROBLEM PrtComment insanity - Continuum unit integration did not verify \n");
2883 fprintf(
ioQQQ,
" exact vol= %g, derived vol= %g relative difference is %g \n",
2884 ConExpected , ConComputed ,error);
2891 cdNwcns(&lgAbort_flag,&nw,&nc,&nn,&ns,&i,&j,&dum1,&dum2);
2952 fprintf(
ioQQQ,
"PROBLEM: Ca II, the species defined by nelem = %i and ion = %i could not be found.\n",
ipCALCIUM,2);
2957 static bool lgRunOnce =
true;
2962 if( it->ipLo()+1 == 1 && it->ipHi()+1 == 5)
2970 realnum ca2_3969_TauIn = it->Emis().TauIn();
2972 if( ca2_3969_TauIn > 0. &&
2976 conca = sqrt(6.1e-5*ca2_3969_TauIn);
2977 conalog = log((
double)ca2_3969_TauIn);
2978 conalog = sqrt(
MAX2(1., conalog));
2979 conca =
MAX2(conalog,conca);
2982 conalog = sqrt(
MAX2(1.,conalog));
2984 conhe =
MAX2(conalog, conhe);
2986 *totwid = 10.*conhe + 1.6*conca;
3001 double BigOscillation ,
3013 nzone_oscillation = 0;
3020 for( ion=0; ion<=nelem+1; ++ion)
3022 BigOscillation = 0.;
3023 big_ion_jump = -15.;
3042 if( rel < 0. &&
MIN2( bigm , big ) > BigOscillation )
3044 nzone_oscillation = i;
3045 BigOscillation =
MIN2( bigm , big );
3054 if( rel > big_ion_jump )
3064 if( BigOscillation > 0.2 )
3067 if( nzone_oscillation < 1 )
3069 fprintf(
ioQQQ,
" nzone_oscillation too small bigjump2 check\n" );
3074 if( BigOscillation > 3. )
3077 " C-An ionization oscillation occurred, elem %.2s%2li, by %.0f%%"
3078 " from %.2e (zone %ld) to %.2e (zone %ld) to %.2e (zone %ld)",
3080 BigOscillation*100.,
3084 nzone_oscillation+1,
3086 nzone_oscillation+2 );
3089 else if( BigOscillation > 0.7 )
3092 " !An ionization oscillation occurred, elem %.2s%2li, by %.0f%%"
3093 " from %.2e (zone %ld) to %.2e (zone %ld) to %.2e (zone %ld)",
3095 BigOscillation*100.,
3099 nzone_oscillation+1,
3101 nzone_oscillation+2 );
3108 big_ion_jump =
exp10( big_ion_jump );
3109 if( big_ion_jump > 1.5 && nzone_ion_jump > 0 )
3111 if( big_ion_jump > 10. )
3114 " C-An ionization jump occurred, elem %.2s%2li, by %.0f%%"
3115 " from %.2e (zone %ld) to %.2e (zone %ld) to %.2e (zone %ld)",
3129 " !An ionization jump occurred elem %.2s%2li, by %.0f%%"
3130 " from %.2e (zone %ld) to %.2e (zone %ld) to %.2e (zone %ld)",
3156 if( rel > big_jump )
3164 big_jump =
exp10( big_jump );
3165 if( big_jump > 1.2 )
3170 " C-The H density jumped at by %.0f%%,"
3171 " from %.2e (zone %ld) to %.2e (zone %ld) to %.2e (zone %ld)",
3184 " !An H density jump occurred by %.0f%%"
3185 " from %.2e (zone %ld) to %.2e (zone %ld) to %.2e (zone %ld)",
3210 if( rel > big_jump )
3221 big_jump =
exp10( big_jump );
3222 if( big_jump > 1.2 )
3229 " C-The radiation pressure jumped by %.0f%%"
3230 " from %.2e (zone %ld) to %.2e (zone %ld) to %.2e (zone %ld)",
3243 " !The radiation pressure jumped by %.0f%%"
3244 " from %.2e (zone %ld) to %.2e (zone %ld) to %.2e (zone %ld)",
3325 " C-The temperature varied by %.1f%% between two zones",
3332 " !The temperature varied by %.1f%% between two zones",
3340 " C-The electron density varied by %.1f%% between two zones",
3347 " !The electron density varied by %.1f%% between two zones",
3355 " C-The H2 density varied by %.1f%% between two zones",
3362 " !The H2 density varied by %.1f%% between two zones",
3370 " C-The CO density varied by %.1f%% between two zones",
3377 " !The CO density varied by %.1f%% between two zones",
3385 " !Isotropic continuum subtraction significantly"
3386 " affects line intensities" );
void bangin(const char *chLine)
t_mole_global mole_global
void cdNotes(FILE *ioOUT)
string chLineLbl(const TransitionProxy &t)
NORETURN void TotalInsanity(void)
char chCoolHeatMax[NCOLNT_LAB_LEN+1]
char chNotConverged[INPUT_LINE_LENGTH]
void cdCautions(FILE *ioOUT)
bool lgTimeDependentStatic
void cdWarnings(FILE *ioPNT)
TransitionList HFLines("HFLines",&AnonStates)
realnum colden_old[NCOLD]
bool lgTemperatureConstant
bool lgHCaseBOK[2][HS_NZ]
molezone * findspecieslocal(const char buf[])
char chRgcln[2][INPUT_LINE_LENGTH]
TransitionList TauLine2("TauLine2",&AnonStates)
double anu(size_t i) const
static t_version & Inst()
t_elementnames elementnames
t_iso_sp iso_sp[NISO][LIMELM]
void warnin(const char *chLine)
bool lgCoStarInterpolationCaution
long int n_HighestResolved_local
bool lgBallistic(void) const
bool lgOpticalDepthonverged
bool lgdBaseSourceExists[LIMELM][LIMELM+1]
const double TEMP_STOP_DEFAULT
vector< two_photon > TwoNu
double frac_he0dest_23S_photo
EmissionList::reference Emis() const
molecule * findspecies(const char buf[])
const TransitionProxy FndLineHt(long int *level)
valarray< class molezone > species
const int INPUT_LINE_LENGTH
void notein(const char *chLine)
double powi(double, long int)
diatomics h2("h2", 4100.,&hmi.H2_total, Yan_H2_CS)
realnum wlAirVac(double wlAir)
double column(const genericState &gs)
char chElementNameShort[LIMELM][CHARS_ELEMENT_NAME_SHORT]
multi_arr< long, 3 > QuantumNumbers2Index
bool lgCritDensLMix[NISO]
TransitionProxy trans(const long ipHi, const long ipLo)
char chElementSym[LIMELM][CHARS_ELEMENT_SYM]
realnum gas_phase[LIMELM]
bool foundMD5Mismatch() const
long int cdLine(const char *chLabel, realnum wavelength, double *relint, double *absint)
vector< vector< long > > ipSpecIon
#define DEBUG_ENTRY(funcname)
char chReasonStop[nCHREASONSTOP]
void cdSurprises(FILE *ioOUT)
void cdNwcns(bool *lgAbort_ret, long int *NumberWarnings, long int *NumberCautions, long int *NumberNotes, long int *NumberSurprises, long int *NumberTempFailures, long int *NumberPresFailures, long int *NumberIonFailures, long int *NumberNeFailures)
int fprintf(const Output &stream, const char *format,...)
void cdReasonGeo(FILE *ioOUT)
sys_float SDIV(sys_float x)
bool lgStatic(void) const
char chElementName[LIMELM][CHARS_ELEMENT_NAME]
t_secondaries secondaries
vector< TransitionList > dBaseTrans
const double DEPTH_OFFSET
long int nCollapsed_local
void caunin(const char *chLine)
realnum * pres_radiation_lines_curr