mole_h2_io.cpp File Reference

#include "cddefines.h"
#include "physconst.h"
#include "punch.h"
#include "hmi.h"
#include "path.h"
#include "prt.h"
#include "secondaries.h"
#include "grainvar.h"
#include "phycon.h"
#include "rfield.h"
#include "hyperfine.h"
#include "thermal.h"
#include "lines.h"
#include "lines_service.h"
#include "dense.h"
#include "radius.h"
#include "colden.h"
#include "taulines.h"
#include "h2.h"
#include "h2_priv.h"
#include "cddrive.h"
#include "mole.h"

Include dependency graph for mole_h2_io.cpp:

Go to the source code of this file.

Defines

#define H2HMINUS_PRT   false
#define NSOL   100
#define FRAC   0.01

Functions

void H2_LinesAdd (void)
void H2_ParsePunch (char *chCard)
void H2_Prt_Zone (void)
void H2_Prt_column_density (FILE *ioMEAN)
void H2_ReadCollRates (long int nColl)
void H2_ReadTransprob (long int nelec)
void H2_ReadEnergies (long int nelec)
void H2_ReadDissprob (long int nelec)
void H2_Read_hminus_distribution (void)
void H2_Punch_line_data (FILE *ioPUN, bool lgDoAll)
void H2_PunchLineStuff (FILE *io, float xLimit, long index)
void H2_Prt_line_tau (void)
static char chMolBranch (long iRotHi, long int iRotLo)
void H2_PunchDo (FILE *io, char chJOB[], const char chTime[], long int ipPun)
long int cdH2_Line (long int iElecHi, long int iVibHi, long int iRotHi, long int iElecLo, long int iVibLo, long int iRotLo, double *relint, double *absint)

Variables

static char chlgPara [2] = {'P','O'}
static float thresh_punline_h2


Define Documentation

#define FRAC   0.01

#define H2HMINUS_PRT   false

#define NSOL   100

Referenced by H2_PunchDo().


Function Documentation

long int cdH2_Line ( long int  iElecHi,
long int  iVibHi,
long int  iRotHi,
long int  iElecLo,
long int  iVibLo,
long int  iRotLo,
double *  relint,
double *  absint 
)

cdH2_Line returns 1 if we found the line, or false==0 if we did not find the line because ortho-para transition or upper level has lower energy than lower level NB - this is in mole_h2_io.c

Parameters:
iElecHi indices for the upper level
iVibHi indices for the upper level
iRotHi indices for the upper level
iElecLo indices for lower level
iVibLo indices for lower level
iRotLo indices for lower level
*relint linear intensity relative to normalization line
*absint log of luminosity or intensity of line

Definition at line 2524 of file mole_h2_io.cpp.

References t_radius::Conv2PrtInten, DEBUG_ENTRY, DEBUG_EXIT, energy_wn, H2_lgOrtho, H2_SaveLine, t_LineSave::ipNormWavL, lgH2_line_exists, t_LineSave::lgLineEmergent, LineSave, LineSv, radius, t_LineSave::ScaleNormLine, and t_tag_LineSv::sumlin.

static char chMolBranch ( long  iRotHi,
long int  iRotLo 
) [static]

Definition at line 1581 of file mole_h2_io.cpp.

References ioQQQ.

Referenced by H2_PunchDo().

void H2_LinesAdd ( void   ) 

add in explicit lines from the large H2 molecule, called by lines_molecules

Definition at line 54 of file mole_h2_io.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, t_radius::dVeff, h2, H2_SaveLine, H2Lines, t_LineSave::ipass, t_h2::Jlowest, lgH2_line_exists, t_h2::lgH2ON, lindst(), LineSave, t_h2::nElecLevelOutput, t_h2::nRot_hi, t_h2::nVib_hi, PutLine(), radius, and EmLine::xIntensity.

Referenced by lines_molecules().

Here is the call graph for this function:

void H2_ParsePunch ( char *  chCard  ) 

void H2_Prt_column_density ( FILE *  ioMEAN  ) 

H2_Prt_column_density print H2 info into zone results, called from prtzone for each printed zone

Parameters:
*ioMEAN this is stream used for io, is stdout when called by final, is punch unit when punch output generated

Definition at line 462 of file mole_h2_io.cpp.

References t_colden::colden, colden, DEBUG_ENTRY, DEBUG_EXIT, h2, t_hmi::H2_total, H2_X_colden, hmi, ipCOL_H2g, ipCOL_H2s, t_h2::lgH2ON, t_h2::nCallH2_this_zone, t_h2::ortho_colden, t_h2::para_colden, pops_per_vib, PrintEfmt(), and SDIV().

Referenced by PrtColumns().

Here is the call graph for this function:

void H2_Prt_line_tau ( void   ) 

print line optical depths, called from premet in response to print line optical depths command

Definition at line 1526 of file mole_h2_io.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, h2, H2Lines, t_h2::Jlowest, t_h2::lgH2ON, mole, t_mole::n_h2_elec_states, t_h2::nRot_hi, t_h2::nVib_hi, and prme().

Referenced by prtmet().

Here is the call graph for this function:

void H2_Prt_Zone ( void   ) 

H2_Prt_Zone print H2 info into zone results, called from prtzone for each printed zone

Definition at line 426 of file mole_h2_io.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, h2, H2_populations, t_hmi::H2_total, hmi, ioQQQ, t_h2::lgH2ON, t_h2::nCallH2_this_zone, t_h2::ortho_density, t_h2::para_density, pops_per_vib, PrintEfmt(), and SDIV().

Referenced by PrtZone().

Here is the call graph for this function:

void H2_Punch_line_data ( FILE *  ioPUN,
bool  lgDoAll 
)

punch H2 line data

Parameters:
ioPUN io unit for punch
lgDoAll punch all levels if true, only subset if false

Todo:
1 add logic to deduce cs

Definition at line 1396 of file mole_h2_io.cpp.

References cdEXIT(), EmLine::cs, DEBUG_ENTRY, DEBUG_EXIT, h2, H2Lines, ioQQQ, t_h2::Jlowest, t_h2::lgH2ON, mole, t_mole::n_h2_elec_states, t_h2::nRot_hi, t_h2::nVib_hi, and Punch1LineData().

Referenced by PunchLineData().

Here is the call graph for this function:

void H2_PunchDo ( FILE *  io,
char  chJOB[],
const char  chTime[],
long int  ipPun 
)

punch some properties of the large H2 molecule

Parameters:
io 
chJOB[] 
chTime[] 
ipPun 

Definition at line 1598 of file mole_h2_io.cpp.

References t_hmi::assoc_detach, t_hmi::assoc_detach_backwards_exct, t_hmi::assoc_detach_backwards_grnd, t_hmi::bh2dis, t_hmi::bh2h22hh2, t_hmi::bh2h2p, chlgPara, chMolBranch(), co, t_colden::colden, colden, t_colden::coldenH2_ov_vel, t_radius::Conv2PrtInten, t_hmi::CR_reac_H2g, t_hmi::CR_reac_H2s, t_secondaries::csupra, t_thermal::ctot, DEBUG_ENTRY, DEBUG_EXIT, dense, t_radius::depth_mid_zone, t_hmi::eh3_h2h, energy_wn, t_rfield::extin_mag_V_point, FRAC, t_dense::gas_phase, gv, h2, t_hmi::H2_BigH2_H2g_av, t_hmi::H2_BigH2_H2s_av, t_co::H2_C_CH_H, t_co::H2_CH2_CH3_H, t_co::H2_CH2P_CH3P_H, t_co::H2_CH3_CH4_H, t_co::H2_CH4P_CH5P_H, t_co::H2_CH_CH2_H, t_hmi::H2_chem_BigH2_H2g, t_hmi::H2_chem_BigH2_H2s, t_co::H2_CHP_CH2P_H, t_co::H2_ClP_HClP_H, t_co::H2_CN_HCN_H, t_co::H2_CNP_HCNP_H, H2_col_rate_in, H2_col_rate_out, t_co::H2_COP_HCOP_H, t_co::H2_CP_CHP_H, t_co::H2_CSP_HCSP_H, t_co::H2_H2OP_H3OP_H, t_co::H2_HClP_H2ClP_H, t_co::H2_HCNP_HCNHP_H, H2_ipX_ener_sort, H2_lgOrtho, t_co::H2_N_NH_H, t_co::H2_NH2_NH3_H, t_co::H2_NH2P_NH3P_H, t_co::H2_NH3P_NH4P_H, t_co::H2_NH_NH2_H, t_co::H2_NHP_N_H3P, t_co::H2_NHP_NH2P_H, t_co::H2_NP_NHP_H, t_co::H2_O_OH_H, t_co::H2_OH_H2O_H, t_co::H2_OHP_H2OP_H, H2_old_populations, t_co::H2_OP_OHP_H, t_hmi::H2_photodissoc_used_H2g, t_hmi::H2_photodissoc_used_H2s, H2_populations, H2_populations_LTE, H2_rad_rate_in, H2_rad_rate_out, t_hmi::H2_rate_create, t_hmi::H2_rate_destroy, H2_renorm_chemistry, H2_SaveLine, t_co::H2_SiOP_SiOHP_H, t_hmi::H2_Solomon_dissoc_rate_BD96_H2g, t_hmi::H2_Solomon_dissoc_rate_BD96_H2s, t_hmi::H2_Solomon_dissoc_rate_BigH2_H2g, t_hmi::H2_Solomon_dissoc_rate_BigH2_H2s, t_hmi::H2_Solomon_dissoc_rate_ELWERT_H2g, t_hmi::H2_Solomon_dissoc_rate_TH85_H2g, t_hmi::H2_Solomon_dissoc_rate_TH85_H2s, t_hmi::H2_Solomon_dissoc_rate_used_H2g, t_hmi::H2_Solomon_dissoc_rate_used_H2s, t_hmi::H2_Solomon_elec_decay_H2g, t_hmi::H2_Solomon_elec_decay_H2s, t_co::H2_SP_HSP_H, H2_stat, t_hmi::H2_total, t_hmi::H2_total_BigH2, H2_X_colden, H2_X_colden_LTE, t_hmi::H2g_BigH2, t_hmi::h2ge2h, t_hmi::h2h22hh2, t_hmi::h2hph3p, H2Lines, t_co::H2P_C2_C2P_H2, t_co::H2P_CH2_CH2P_H2, t_co::H2P_CH4_CH3P_H2, t_co::H2P_CH4_CH4P_H2, t_co::H2P_CH_CHP_H2, t_co::H2P_CN_CNP_H2, t_co::H2P_CO_COP_H2, t_co::H2P_H2O_H2OP_H2, t_co::H2P_HCN_HCNP_H2, t_co::H2P_NH2_NH2P_H2, t_co::H2P_NH3_NH3P_H2, t_co::H2P_NH_NHP_H2, t_co::H2P_NO_NOP_H2, t_co::H2P_O2_O2P_H2, t_co::H2P_OH_OHP_H2, t_hmi::h2ph3p, t_hmi::h2phmh2h, t_hmi::H2s_BigH2, t_co::H2s_C_CH_H, t_co::H2s_CH2_CH3_H, t_co::H2s_CH3_CH4_H, t_co::H2s_CH_CH2_H, t_co::H2s_CP_CHP_H, t_co::H2s_O_OH_H, t_co::H2s_OH_H2O_H, t_co::H2s_OP_OHP_H, t_hmi::h2s_sp_decay, t_hmi::h2se2h, t_hmi::h2sh, t_hmi::h2sh2g, t_hmi::h2sh2sh2g2h, t_hmi::h2sh2sh2s2h, t_hmi::h32h2, t_co::H3P_C_CHP_H2, t_co::H3P_CH2_CH3P_H2, t_co::H3P_CH3_CH4P_H2, t_co::H3P_CH4_CH5P_H2, t_co::H3P_CH_CH2P_H2, t_co::H3P_Cl_HClP_H2, t_co::H3P_CN_HCNP_H2, t_co::H3P_CO_HCOP_H2, t_co::H3P_CS_HCSP_H2, t_co::H3P_H2O_H3OP_H2, t_co::H3P_HCl_H2ClP_H2, t_co::H3P_HCN_HCNHP_H2, t_co::H3P_NH2_NH3P_H2, t_co::H3P_NH3_NH4P_H2, t_co::H3P_NH_NH2P_H2, t_co::H3P_NO2_NOP_OH_H2, t_co::H3P_NO_HNOP_H2, t_co::H3P_O_OHP_H2, t_co::H3P_OH_H2OP_H2, t_co::H3P_S_HSP_H2, t_co::H3P_SiH_SiH2P_H2, t_co::H3P_SiO_SiOHP_H2, t_hmi::h3petc, t_hmi::h3ph2hp, t_hmi::h3ph2p, t_hmi::h3phm2h2, t_hmi::h3phmh2hh, t_co::H_CH2_CH_H2, t_co::H_CH3_CH2_H2, t_co::H_CH3P_CH2P_H2, t_co::H_CH4P_CH3P_H2, t_co::H_CH5P_CH4P_H2, t_co::H_CH_C_H2, t_co::H_CHP_CP_H2, t_co::H_HSP_SP_H2, t_co::H_OH_O_H2, t_hmi::HeatH2Dexc_BigH2, t_hmi::HeatH2Dexc_TH85, t_hmi::HeatH2Dish_BigH2, t_hmi::HeatH2Dish_TH85, t_hmi::hehph2h3phe, t_hmi::heph2heh2p, hmi, t_co::Hminus_H3OP_H2O_H2, t_co::Hminus_H3OP_OH_H2_H, t_co::Hminus_HCOP_CO_H2, t_co::Hminus_NH4P_NH3_H2, t_hmi::Hmolec, t_co::HP_CH2_CHP_H2, t_co::HP_CH4_CH3P_H2, t_co::HP_HNO_NOP_H2, t_co::HP_HS_SP_H2, t_co::HP_SiH_SiP_H2, t_thermal::htot, hyperfine, ipCOL_H2g, ipCOL_H2s, ipHELIUM, ipHYDROGEN, ipMH, ipMH2g, ipMH2p, ipMH2s, ipMH3p, ipMHeHp, ipMHm, ipMHp, t_LineSave::ipNormWavL, ipRot_H2_energy_sort, ipVib_H2_energy_sort, t_h2::Jlowest, t_hmi::lgBigH2_evaluated, t_h2::lgH2ON, t_LineSave::lgLineEmergent, LineSave, LineSv, MAX2, MIN2, mole, t_mole::n_h2_elec_states, t_h2::nCallH2_this_zone, t_h2::nElecLevelOutput, nLevels_per_elec, t_h2::nRot_hi, NSOL, t_h2::nVib_hi, t_h2::ortho_colden, t_h2::ortho_density, t_h2::para_colden, t_h2::para_density, phycon, EmLine::PopLo, pops_per_elec, prt_wl(), EmLine::pump, t_punch::punarg, punch, t_hmi::radasc, radius, t_gv::rate_h2_form_grains_used_total, rfield, t_hmi::rh2dis, t_hmi::rh2h2p, t_hmi::rheph2hpheh, t_LineSave::ScaleNormLine, SDIV(), secondaries, SMALLFLOAT, spsort(), t_tag_LineSv::sumlin, T1CM, EmLine::TauCon, EmLine::TauIn, t_phycon::te, thermal, thresh_punline_h2, t_hyperfine::Tspin21cm, t_hmi::UV_Cont_rel2_Draine_DB96_depth, t_hmi::UV_Cont_rel2_Habing_spec_depth, t_hmi::UV_Cont_rel2_Habing_TH85_depth, wl, EmLine::WLAng, and t_dense::xIonDense.

Referenced by PunchDo().

Here is the call graph for this function:

void H2_PunchLineStuff ( FILE *  io,
float  xLimit,
long  index 
)

include H2 lines in punched optical depths, etc, called from PunchLineStuff

Parameters:
io 
xLimit 
index 

Definition at line 1470 of file mole_h2_io.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, h2, H2Lines, t_h2::Jlowest, t_h2::lgH2ON, mole, t_mole::n_h2_elec_states, t_h2::nRot_hi, t_h2::nVib_hi, and pun1Line().

Referenced by PunchLineStuff().

Here is the call graph for this function:

void H2_Read_hminus_distribution ( void   ) 

H2_Read_hminus_distribution read distribution function for H2 population following formation from H minus

Definition at line 1220 of file mole_h2_io.cpp.

References ASSERT, BadRead(), cdEXIT(), chDataPath, DEBUG_EXIT, FFmtRead(), FILENAME_PATH_LENGTH_2, h2, H2_te_hminus, H2_X_hminus_formation_distribution, H2HMINUS_PRT, INPUT_LINE_LENGTH, ioQQQ, t_h2::Jlowest, lgDataPathSet, t_h2::nRot_hi, nTE_HMINUS, and t_h2::nVib_hi.

Referenced by H2_Create().

Here is the call graph for this function:

void H2_ReadCollRates ( long int  nColl  ) 

read collision rates

Parameters:
nColl 

Definition at line 507 of file mole_h2_io.cpp.

References COmole_rate_s::a, ASSERT, BadRead(), cdEXIT(), chDataPath, CollRateFit, DEBUG_ENTRY, DEBUG_EXIT, energy_wn, FFmtRead(), FILENAME_PATH_LENGTH_2, h2, H2_He_coll_init(), INPUT_LINE_LENGTH, ioQQQ, lgDataPathSet, N_X_COLLIDER, t_h2::nRot_hi, path_not_set(), and VIB_COLLID.

Referenced by H2_Create().

Here is the call graph for this function:

void H2_ReadDissprob ( long int  nelec  ) 

read dissociation probabilities and kinetic energies for all electronic levels

Parameters:
nelec 

Definition at line 1092 of file mole_h2_io.cpp.

References ASSERT, COmole_rate_s::b, BadRead(), cdEXIT(), chDataPath, DEBUG_ENTRY, FFmtRead(), FILENAME_PATH_LENGTH_2, h2, H2_disske, H2_dissprob, INPUT_LINE_LENGTH, ioQQQ, t_h2::Jlowest, lgDataPathSet, N_H2_ELEC, t_h2::nRot_hi, and t_h2::nVib_hi.

Referenced by H2_Create().

Here is the call graph for this function:

void H2_ReadEnergies ( long int  nelec  ) 

read energies for all electronic levels

Parameters:
nelec 

Definition at line 963 of file mole_h2_io.cpp.

References ASSERT, BadRead(), cdEXIT(), chDataPath, DEBUG_ENTRY, DEBUG_EXIT, energy_wn, FFmtRead(), FILENAME_PATH_LENGTH_2, h2, INPUT_LINE_LENGTH, ioQQQ, t_h2::Jlowest, lgDataPathSet, N_H2_ELEC, nLevels_per_elec, t_h2::nRot_hi, and t_h2::nVib_hi.

Referenced by H2_Create().

Here is the call graph for this function:

void H2_ReadTransprob ( long int  nelec  ) 

read transition probabilities

Parameters:
nelec 

Definition at line 667 of file mole_h2_io.cpp.

References ASSERT, EmLine::Aul, BadRead(), cdEXIT(), chDataPath, DEBUG_ENTRY, DEBUG_EXIT, energy_wn, FFmtRead(), FILENAME_PATH_LENGTH_2, h2, H2Lines, INPUT_LINE_LENGTH, ioQQQ, lgDataPathSet, lgH2_line_exists, N_H2_ELEC, t_h2::nRot_hi, t_h2::nVib_hi, and ShowMe().

Referenced by H2_Create().

Here is the call graph for this function:


Variable Documentation

char chlgPara[2] = {'P','O'} [static]

Definition at line 48 of file mole_h2_io.cpp.

Referenced by H2_PunchDo().

float thresh_punline_h2 [static]

Definition at line 51 of file mole_h2_io.cpp.

Referenced by H2_ParsePunch(), and H2_PunchDo().


Generated for cloudy by doxygen 1.5.9