Cloudy
Spectral Synthesis Code for Astrophysics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
save_do.cpp File Reference
#include "cddefines.h"
#include "cddrive.h"
#include "mean.h"
#include "taulines.h"
#include "struc.h"
#include "iso.h"
#include "hyperfine.h"
#include "rt.h"
#include "magnetic.h"
#include "hydrogenic.h"
#include "secondaries.h"
#include "grainvar.h"
#include "lines.h"
#include "dynamics.h"
#include "colden.h"
#include "ionbal.h"
#include "yield.h"
#include "prt.h"
#include "iterations.h"
#include "heavy.h"
#include "conv.h"
#include "geometry.h"
#include "called.h"
#include "helike.h"
#include "opacity.h"
#include "phycon.h"
#include "timesc.h"
#include "radius.h"
#include "monitor_results.h"
#include "thermal.h"
#include "wind.h"
#include "hmi.h"
#include "pressure.h"
#include "elementnames.h"
#include "ipoint.h"
#include "hcmap.h"
#include "input.h"
#include "save.h"
#include "warnings.h"
#include "grid.h"
#include "atmdat.h"
#include "h2.h"
#include "gammas.h"
#include "mole.h"
#include "rfield.h"
#include "doppvel.h"
#include "freebound.h"
#include "dense.h"
#include "atmdat_gaunt.h"
#include "generic_state.h"

Enumerations

enum  cont_type {
  CT_INCI, CT_OUTW_INCI, CT_REFL_INCI, CT_OUTW_DIFF,
  CT_REFL_DIFF, CT_OUTW_LIN, CT_REFL_LIN, CT_GRN_SIL,
  CT_GRN_GRA, CT_GRN_TOT
}
 

Functions

double PrettyTransmission (long j, double transmission)
 
double flxCell (long j, long nEmType, cont_type ct, bool lgForceConserve=false, bool lgPrtIsotropicCont=true, const realnum *trans_coef_total=NULL)
 
void cdSPEC2 (int nOption, realnum ReturnedSpectrum[])
 
STATIC void FindStrongestLineLabels (void)
 
double PrtLogLin (double value)
 
STATIC void SaveGaunts (FILE *ioPUN)
 
STATIC void SaveResults (FILE *ioPUN)
 
STATIC void SaveLineStuff (FILE *ioPUN, const char *chJob, realnum xLimit)
 
STATIC void AGN_Hemis (FILE *ioPUN)
 
STATIC void SaveLineIntensity (FILE *ioPUN, long int ipPun, realnum Threshold)
 
void SaveDo (const char *chTime)
 
void Save1Line (const TransitionProxy &t, FILE *ioPUN, realnum xLimit, long index, realnum DopplerWidth)
 
void SaveGrid (FILE *pnunit, exit_type status)
 

Variables

STATIC long int ipPun
 
char * chDummy
 
static bool lgPopsFirstCall
 
static bool lgSaveOpticalDepths
 

Enumeration Type Documentation

enum cont_type
Enumerator
CT_INCI 
CT_OUTW_INCI 
CT_REFL_INCI 
CT_OUTW_DIFF 
CT_REFL_DIFF 
CT_OUTW_LIN 
CT_REFL_LIN 
CT_GRN_SIL 
CT_GRN_GRA 
CT_GRN_TOT 

Function Documentation

void cdSPEC2 ( int  Option,
realnum  ReturnedSpectrum[] 
)

this routine returns the spectrum needed for Keith Arnaud's XSPEC X-Ray analysis code. It should be called after cdDrive has successfully computed a model. The calling routine must ensure that the vectors have enough space to store the resulting spectrum, given the bounds and energy resolution

Parameters
Option
the type of spectrum to be returned (in photons/s/bin)
      0 the total continuum, all components outward and reflected
     
      1 the incident continuum
     
      2 the attenuated incident continuum
      3 the reflected incident continuum
     
      4 diffuse emission, lines + continuum, outward
      5 diffuse emission, lines + continuum, reflected
     
      6 diffuse continuous emission, outward
      7 diffuse continuous emission, reflected
     
      8 total transmitted, incident + lines and continuum
      9 total reflected, incident + lines and continuum
     
     10 exp(-tau) to the illuminated face
ReturnedSpectrum[]the returned spectrum, should have rfield.nflux elements

References t_mesh::anu2(), ASSERT, cdEXIT, CT_INCI, CT_OUTW_DIFF, CT_OUTW_INCI, CT_OUTW_LIN, CT_REFL_DIFF, CT_REFL_INCI, CT_REFL_LIN, DEBUG_ENTRY, EXIT_FAILURE, t_opac::ExpmTau, flxCell(), fprintf(), t_rfield::getCoarseTransCoef(), ioQQQ, t_rfield::nflux, NULL, opac, t_radius::PI4_rinner_sq, radius, rfield, and t_mesh::widflx().

Referenced by GridRetrieveXSPECData(), and punchFITS_GenericData().

Here is the call graph for this function:

STATIC void FindStrongestLineLabels ( void  )
double PrettyTransmission ( long  j,
double  transmission 
)
inline

References t_mesh::anu(), max(), t_save::ResolutionAbs, rfield, save, and t_mesh::widflx().

Referenced by flxCell().

Here is the call graph for this function:

double PrtLogLin ( double  value)

SAVE command has option LOG to print log quantities as in <= C13

References ipPun, t_save::lgPrtOldStyleLogs, save, and SDIV().

Referenced by save_average(), and SaveDo().

Here is the call graph for this function:

void Save1Line ( const TransitionProxy t,
FILE *  io,
realnum  xLimit,
long  index,
realnum  DopplerWidth 
)
void SaveDo ( const char *  chTime)

SaveDo produce save output during calculation

Parameters
chTimechTime is null terminated 4 char string, either "MIDL" or "LAST"

lgLastOnly true, print after iteration is complete, false, evey zone

References abund, Wind::AccelCont, Wind::AccelGravity, Wind::AccelLine, Wind::AccelTotalOutward, AGN_He1_CS(), AGN_Hemis(), t_opac::albedo, t_mesh::anu(), t_mesh::anu2(), AnuUnit(), ASSERT, TransitionProxy::associated(), EmissionProxy::Aul(), t_cpu_i::big_endian(), GrainVar::bin, called, cdColm(), cdExecTime(), cdEXIT, cdLine(), ChargTranPun(), t_rfield::chContLabel, t_elementnames::chElementSym, t_save::chGridDelimeter(), t_save::chHashString, CHIANTI_Upsilon(), TransitionProxy::chLabel(), t_rfield::chLineLabel, t_save::chSave, t_save::chSaveArgs, t_save::chSaveSpecies, t_Heavy::chShell, t_save::chSpeciesDominantRates, colden, t_colden::colden, TransitionProxy::Coll(), colliders, CollisionProxy::ColUL(), column(), t_rfield::comdn, t_rfield::comup, t_rfield::ConEmitLocal, t_rfield::ConEmitOut, t_rfield::ConEmitReflec, t_rfield::ConInterOut, t_rfield::ConRefIncid, t_rfield::ConSourceFcnLocal, conv, t_radius::Conv2PrtInten, t_dynamics::Cool(), CoolSave(), cpu, t_secondaries::csupra, CT_GRN_GRA, CT_GRN_SIL, CT_GRN_TOT, CT_INCI, CT_OUTW_DIFF, CT_OUTW_INCI, CT_OUTW_LIN, CT_REFL_DIFF, CT_REFL_INCI, CT_REFL_LIN, t_thermal::ctot, EmissionProxy::damp(), dBaseSpecies, dBaseTrans, t_thermal::dCooldT, DEBUG_ENTRY, molezone::den, dense, density(), t_radius::depth, t_radius::depth_mid_zone, t_rfield::DiffuseLineEmission, DoppVel, t_radius::drad, t_radius::drad_x_fillfac, GrainVar::dstab, GrainVar::dstsc, Wind::dvdr, dynamics, DynaPunchTimeDep(), DynaSave(), t_dense::eden, t_dense::EdenHCorr, t_dense::EdenTrue, t_mesh::egamry(), t_yield::elec_eject_frac(), elementnames, TransitionProxy::Emis(), TransitionList::Emis(), t_save::emisfreq, t_mesh::emm(), energy(), t_phycon::EnergyBinding, t_phycon::EnergyExcitation, t_phycon::EnergyIonization, t_magnetic::EnthalpyDensity, t_phycon::EnthalpyDensity, EXIT_FAILURE, EXIT_SUCCESS, exp10(), t_rfield::extin_mag_V_extended, t_rfield::extin_mag_V_point, t_iso_sp::fb, t_geometry::FillFac, t_LineSave::findline(), t_mole_local::findrk(), findspecies(), findspecieslocal(), FindStrongestLineLabels(), t_rfield::fine_anu, t_rfield::fine_lstack, t_rfield::fine_opac_zone, t_rfield::fine_opt_depth, t_rfield::flux, t_rfield::flux_total_incident, flxCell(), Wind::fmul, fp_equal(), fprintf(), GammaPrt(), t_dense::gas_phase, GrainVar::GasCoolColl, geometry, t_rfield::getCoarseTransCoef(), t_conv::getCounterName(), t_conv::getCounterZone(), t_ADfA::getEthresh(), t_mesh::getResolutionScaleFactor(), grid, gv, t_colden::H0_21cm_lower, t_colden::H0_21cm_upper, t_colden::H0_ov_Tspin, h2, t_hmi::H2_photodissoc_used_H2g, diatomics::H2_PunchDo(), t_hmi::H2_Solomon_dissoc_rate_used_H2g, t_hmi::H2_total, hcmap, t_dynamics::Heat(), t_hmi::HeatH2Dexc_used, t_hmi::HeatH2Dish_used, t_thermal::heating(), Heavy, HFLines, TransitionProxy::Hi(), t_conv::hist_pres_current, t_conv::hist_pres_density, t_conv::hist_pres_error, t_conv::hist_temp_cool, t_conv::hist_temp_heat, t_conv::hist_temp_temp, hmi, t_thermal::htot, hyperfine, t_cpu::i(), molecule::index, Singleton< t_ADfA >::Inst(), Singleton< t_yield >::Inst(), t_pressure::IntegRhoGravity, ion_recombAGN(), ionbal, ioQQQ, ipALUMINIUM, ipCARBON, ipCOL_elec, ipCOL_HTOT, t_save::ipConPun, TransitionProxy::ipCont(), ipELECTRON, t_opac::ipElement, t_save::ipEmisFreq, ipFineCont(), t_rfield::ipFineConVelShift, ipH1s, ipH2p, ipH2s, ipH_LIKE, ipHe1s1S, ipHe2p1P, ipHe2p3P0, ipHe2p3P1, ipHe2p3P2, ipHe2s3S, ipHE_LIKE, ipHELIUM, ipHYDROGEN, ipIRON, ipMAGNESIUM, t_rfield::ipMaxBolt, ipoint(), ipOXYGEN, SaveParams::ipPnunit, ipPun, ipRecEsc, ipRecNetEsc, ipRecRad, ipSILICON, ipSODIUM, ipSULPHUR, t_rfield::ipV_filter, is_odd(), iso_Max_Emitting_Level(), iso_RRCoef_Te(), iso_sp, iteration, iterations, t_save::lg_separate_iterations, lgCheckMonitors(), t_conv::lgConvPres, t_conv::lgConvTemp, t_save::lgCumulative, t_dense::lgElmtOn, t_save::lgEmergent, diatomics::lgEnabled, t_save::lgFITS, t_save::lgFLUSH, t_grid::lgGrid, t_save::lgHashEndIter, t_iterations::lgLastIt, t_save::lgLineListRatio, t_save::lgLinEvery, t_hcmap::lgMapBeingDone, t_hcmap::lgMapDone, t_cpu_i::lgMPI_talk(), lgMustPrintHeader, t_grid::lgOutputTypeOn, t_prt::lgPrnIsoCollapsed, t_save::lgPrtIsotropicCont, t_save::lgPunLstIter, t_radius::lgRadiusKnown, t_save::lgRealSave, t_save::lgSaveEveryZone, t_save::lgSaveHeader(), t_geometry::lgSphere, t_geometry::lgStatic, t_dynamics::lgStatic_completed, t_called::lgTalk, t_dynamics::lgTimeDependentStatic, t_DoppVel::lgTurb_pressure, LIMELM, t_rfield::line_count, t_save::LineList, t_LineSave::lines, LineSave, t_save::LinEvery, t_mole_global::list, TransitionProxy::Lo(), magnetic, map_do(), t_hcmap::MapZone, matchGeneric(), MAX2, mean, t_mesh::mesh_md5sum(), MIN2, mole, mole_dominant_rates(), mole_global, mole_save(), NCHLAB, t_iso_sp::nCollapsed_max, t_save::ncSaveSkip, t_yield::nelec_eject(), t_rfield::nfine, t_rfield::nflux, t_rfield::nflux_with_check, t_save::nLineList, t_optimize::nOptimiz, t_conv::nPres2Ioniz, t_save::nsave, t_save::nSaveEveryZone, nSpecies, t_Heavy::nsShells, t_LineSave::nsum, t_conv::ntypes(), null_mole, t_mole_global::num_calc, NUM_OUTPUT_TYPES, t_iso_sp::numLevels_local, t_iso_sp::numLevels_max, nzone, t_rfield::OccNumbIncidCont, OccupationNumberLine(), opac, t_opac::opacity_abs, t_opac::opacity_sct, optimize, t_save::optname, t_rfield::otscon, t_rfield::otslin, t_rfield::outlin, t_rfield::outlin_noplot, t_save::params, t_dense::pden, EmissionProxy::Pdest(), EmissionProxy::Pesc(), t_ionbal::PhotoRate_Shell, phycon, t_radius::PI4_Radius_sq, t_pressure::pinzon, t_pressure::pinzon_PresIntegElecThin, plankf(), EmissionProxy::Ploss(), POW2, t_pressure::pres_radiation_lines_curr, t_pressure::PresGasCurr, t_pressure::PresInteg, t_pressure::PresIntegElecThin, t_pressure::PresRamCurr, pressure, t_magnetic::pressure, t_pressure::PresTotlCurr, t_pressure::PresTotlError, t_pressure::PresTotlInit, t_pressure::PresTurbCurr, prt, prt_line_inlist(), prt_LineLabels(), prt_wl(), PrtLinePres(), PrtLogLin(), PrtMeanIon(), EmissionProxy::pump(), t_save::punarg, radius, t_radius::Radius, t_radius::Radius_mid_zone, t_iso_sp::RadRec_caseB, t_dynamics::Rate, GrainVar::rate_h2_form_grains_used_total, t_ionbal::RateIonizTot(), t_ionbal::RateRecomTot, t_rfield::reflin, t_save::Resolution, rfield, Energy::Ryd(), safe_div(), save, save_average(), save_line(), Save_Line_RT(), save_opacity(), saveFITSfile(), SaveGaunts(), t_save::SaveHeaderDone(), SaveHeat(), SaveLineData(), SaveLineIntensity(), SaveLineStuff(), SaveResults(), SaveSpecial(), SaveSpecies(), SaveSpeciesBands(), SaveSpeciesOptDep(), SaveSpeciesPseudoCont(), SDIV(), secondaries, sexp(), ShowMe(), SMALLFLOAT, t_timesc::sound_speed_adiabatic, t_dynamics::Source, t_mole_local::species, t_save::SpeciesBandFile, sprt_wl(), t_iso_sp::st, struc, t_opac::TauAbsFace, t_opac::TauAbsGeo, EmissionProxy::TauCon(), EmissionProxy::TauIn(), EmissionProxy::TauInSpecific(), t_opac::TauScatFace, EmissionProxy::TauTot(), t_phycon::te, t_phycon::te03, t_phycon::te10, t_phycon::te70, t_phycon::TeInit, TempChange(), t_phycon::TeProp, t_struc::testr, TexcLine(), thermal, t_dynamics::time_elapsed, t_timesc::time_H2_Dest_here, timesc, TorF(), GrainVar::TotalEden, TotalInsanity(), t_rfield::TotDiff2Pht, t_iso_sp::trans(), t_hyperfine::Tspin21cm, t_DoppVel::TurbVel, t_hmi::UV_Cont_rel2_Draine_DB96_depth, t_hmi::UV_Cont_rel2_Habing_TH85_depth, VERSION_TRNCON, t_save::whichDiatomToPrint, t_mesh::widflx(), wind, Wind::windv, TransitionProxy::WLAng(), t_secondaries::x12tot, t_dense::xIonDense, t_mean::xIonMean, and t_dense::xMassDensity.

Referenced by cloudy().

STATIC void SaveGaunts ( FILE *  ioPUN)

References DEBUG_ENTRY, exp10(), fprintf(), t_gaunt::gauntff(), Singleton< t_gaunt >::Inst(), and LIMELM.

Referenced by SaveDo().

Here is the call graph for this function:

void SaveGrid ( FILE *  pnunit,
exit_type  status 
)

SaveGrid implements the SAVE GRID command

Parameters
pnunit: file descriptor to write to
status: exit status of the grid point

References t_cpu_i::chExitStatus(), t_save::chFileName, t_optimize::chVarFmt, cpu, DEBUG_ENTRY, ES_SUCCESS, ES_WARNINGS, fprintf(), grid, GridPointPrefix(), t_cpu::i(), t_grid::interpParameters, t_save::ipSaveGrid, t_warnings::lgWarngs, t_grid::nintparm, t_optimize::nOptimiz, t_cpu_i::nRANK(), NULL, open_data(), optimize, save, t_grid::seqNum, TorF(), and warnings.

Referenced by cdPrepareExit().

Here is the call graph for this function:

STATIC void SaveLineIntensity ( FILE *  ioPUN,
long int  ipPun,
realnum  Threshold 
)
STATIC void SaveResults ( FILE *  ioPUN)

Variable Documentation

char* chDummy
bool lgPopsFirstCall
static
bool lgSaveOpticalDepths
static