#include "cddefines.h"
#include "physconst.h"
#include "save.h"
#include "hmi.h"
#include "prt.h"
#include "secondaries.h"
#include "grainvar.h"
#include "input.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 "doppvel.h"
#include "parser.h"
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_ParseSave (Parser &p, char *chHeader) |
void | H2_Prt_Zone (void) |
void | H2_Prt_column_density (FILE *ioMEAN) |
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, realnum 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 realnum | thresh_punline_h2 |
#define FRAC 0.01 |
#define H2HMINUS_PRT false |
Referenced by H2_Read_hminus_distribution().
#define NSOL 100 |
Referenced by H2_PunchDo().
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
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 2222 of file mole_h2_io.cpp.
References ASSERT, t_radius::Conv2PrtInten, DEBUG_ENTRY, energy_wn, H2_lgOrtho, H2_SaveLine, t_LineSave::ipNormWavL, lgH2_line_exists, LineSave, LineSv, radius, t_LineSave::ScaleNormLine, and t_tag_LineSv::SumLine.
STATIC char chMolBranch | ( | long | iRotHi, | |
long int | iRotLo | |||
) |
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, t_radius::dVeffAper, 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(), and radius.
Referenced by lines_molecules().
void H2_ParseSave | ( | Parser & | p, | |
char * | chHeader | |||
) |
H2_ParseSave parse the save h2 command
Definition at line 149 of file mole_h2_io.cpp.
References cdEXIT, chH2ColliderLabels, chN_X_COLLIDER, t_save::chSave, DEBUG_ENTRY, Parser::getNumberDefault(), Parser::getNumberDefaultNegImplLog(), h2, ioQQQ, N_X_COLLIDER, t_h2::nElecLevelOutput, Parser::nMatch(), t_save::nsave, t_save::punarg, save, and thresh_punline_h2.
Referenced by ParseSave().
void H2_Prt_column_density | ( | FILE * | ioMEAN | ) |
H2_Prt_column_density print H2 info into zone results, called from prtzone for each printed zone
*ioMEAN | this is stream used for io, is stdout when called by final, is save unit when save output generated |
Definition at line 421 of file mole_h2_io.cpp.
References t_colden::colden, colden, DEBUG_ENTRY, 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().
void H2_Prt_line_tau | ( | void | ) |
print line optical depths, called from premet in response to print line optical depths command
Definition at line 1184 of file mole_h2_io.cpp.
References DEBUG_ENTRY, 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().
void H2_Prt_Zone | ( | void | ) |
H2_Prt_Zone print H2 info into zone results, called from prtzone for each printed zone
Definition at line 387 of file mole_h2_io.cpp.
References DEBUG_ENTRY, 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().
void H2_Punch_line_data | ( | FILE * | ioPUN, | |
bool | lgDoAll | |||
) |
save H2 line data
ioPUN | io unit for save | |
lgDoAll | save all levels if true, only subset if false |
Definition at line 1059 of file mole_h2_io.cpp.
References cdEXIT, DEBUG_ENTRY, 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 Save1LineData().
Referenced by SaveLineData().
void H2_PunchDo | ( | FILE * | io, | |
char | chJOB[], | |||
const char | chTime[], | |||
long int | ipPun | |||
) |
save some properties of the large H2 molecule
io | ||
chJOB[] | ||
chTime[] | ||
ipPun |
Definition at line 1254 of file mole_h2_io.cpp.
References ASSERT, t_hmi::assoc_detach, t_hmi::assoc_detach_backwards_exct, t_hmi::assoc_detach_backwards_grnd, multi_arr< T, d, ALLOC, lgBC >::begin(), 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, 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, H2_CollRate, 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, lgH2_line_exists, t_h2::lgH2ON, LineSave, LineSv, MAX2, MIN2, mole, t_mole::n_h2_elec_states, N_X_COLLIDER, t_h2::nCallH2_this_zone, t_h2::nElecLevelOutput, nLevels_per_elec, t_h2::nRot_hi, NSOL, t_LineSave::nsum, t_h2::nVib_hi, t_h2::ortho_colden, t_h2::ortho_density, t_h2::para_colden, t_h2::para_density, phycon, pops_per_elec, prt_wl(), t_save::punarg, t_hmi::radasc, radius, GrainVar::rate_h2_form_grains_used_total, rfield, t_hmi::rh2dis, t_hmi::rh2h2p, t_hmi::rheph2hpheh, save, t_LineSave::ScaleNormLine, SDIV(), secondaries, SMALLFLOAT, spsort(), t_tag_LineSv::SumLine, T1CM, 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, and t_dense::xIonDense.
Referenced by SaveDo().
void H2_PunchLineStuff | ( | FILE * | io, | |
realnum | xLimit, | |||
long | index | |||
) |
include H2 lines in punched optical depths, etc, called from SaveLineStuff
io | ||
xLimit | ||
index |
Definition at line 1130 of file mole_h2_io.cpp.
References t_dense::AtomicWeight, DEBUG_ENTRY, dense, GetDopplerWidth(), h2, H2Lines, ipHYDROGEN, t_h2::Jlowest, t_h2::lgH2ON, mole, t_mole::n_h2_elec_states, t_h2::nRot_hi, t_h2::nVib_hi, and Save1Line().
Referenced by SaveLineStuff().
void H2_Read_hminus_distribution | ( | void | ) |
H2_Read_hminus_distribution read distribution function for H2 population following formation from H minus
Definition at line 911 of file mole_h2_io.cpp.
References ASSERT, BadRead(), cdEXIT, t_input::chDelimiter, DEBUG_ENTRY, FFmtRead(), FILENAME_PATH_LENGTH_2, h2, H2_te_hminus, H2_X_hminus_formation_distribution, H2HMINUS_PRT, input, INPUT_LINE_LENGTH, ioQQQ, t_h2::Jlowest, t_h2::nRot_hi, nTE_HMINUS, t_h2::nVib_hi, open_data(), pow(), and read_whole_line().
Referenced by H2_Create().
void H2_ReadDissprob | ( | long int | nelec | ) |
read dissociation probabilities and kinetic energies for all electronic levels
nelec |
Definition at line 810 of file mole_h2_io.cpp.
References ASSERT, COmole_rate_s::b, BadRead(), cdEXIT, t_input::chDelimiter, DEBUG_ENTRY, FFmtRead(), FILENAME_PATH_LENGTH_2, h2, H2_disske, H2_dissprob, input, INPUT_LINE_LENGTH, ioQQQ, t_h2::Jlowest, N_H2_ELEC, t_h2::nRot_hi, t_h2::nVib_hi, open_data(), and read_whole_line().
Referenced by H2_Create().
void H2_ReadEnergies | ( | long int | nelec | ) |
read energies for all electronic levels
nelec |
Definition at line 710 of file mole_h2_io.cpp.
References ASSERT, BadRead(), cdEXIT, t_input::chDelimiter, DEBUG_ENTRY, energy_wn, FFmtRead(), FILENAME_PATH_LENGTH_2, h2, input, INPUT_LINE_LENGTH, ioQQQ, t_h2::Jlowest, N_H2_ELEC, nLevels_per_elec, t_h2::nRot_hi, t_h2::nVib_hi, open_data(), and read_whole_line().
Referenced by H2_Create().
void H2_ReadTransprob | ( | long int | nelec | ) |
read transition probabilities
nelec |
Definition at line 464 of file mole_h2_io.cpp.
References AddLine2Stack(), ASSERT, BadRead(), cdEXIT, t_input::chDelimiter, DEBUG_ENTRY, energy_wn, FFmtRead(), FILENAME_PATH_LENGTH_2, h2, H2Lines, input, INPUT_LINE_LENGTH, ioQQQ, lgH2_line_exists, N_H2_ELEC, t_h2::nRot_hi, t_h2::nVib_hi, open_data(), read_whole_line(), and ShowMe().
Referenced by H2_Create().
char chlgPara[2] = {'P','O'} [static] |
Definition at line 48 of file mole_h2_io.cpp.
Referenced by H2_PunchDo().
realnum thresh_punline_h2 [static] |
Definition at line 51 of file mole_h2_io.cpp.
Referenced by H2_ParseSave(), and H2_PunchDo().