cloudy  trunk
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Macros | Functions | Variables
mole_h2_io.cpp File Reference
#include "cddefines.h"
#include "physconst.h"
#include "punch.h"
#include "hmi.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.

Macros

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

Functions

void H2_LinesAdd (void)
 
void H2_ParsePunch (char *chCard, 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
 

Macro Definition 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
iElecHiindices for the upper level
iVibHiindices for the upper level
iRotHiindices for the upper level
iElecLoindices for lower level
iVibLoindices for lower level
iRotLoindices for lower level
*relintlinear intensity relative to normalization line
*absintlog of luminosity or intensity of line

Definition at line 2228 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, t_LineSave::lgLineEmergent, LineSave, LineSv, radius, t_LineSave::ScaleNormLine, and t_tag_LineSv::sumlin.

STATIC char chMolBranch ( long  iRotHi,
long int  iRotLo 
)

Definition at line 1246 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 51 of file mole_h2_io.cpp.

References DEBUG_ENTRY, 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(), and radius.

Referenced by lines_molecules().

Here is the call graph for this function:

void H2_ParsePunch ( char *  chCard,
char *  chHeader 
)

H2_ParsePunch parse the punch h2 command

Definition at line 160 of file mole_h2_io.cpp.

References cdEXIT, chH2ColliderLabels, chN_X_COLLIDER, t_punch::chPunch, DEBUG_ENTRY, FFmtRead(), h2, INPUT_LINE_LENGTH, ioQQQ, N_X_COLLIDER, t_h2::nElecLevelOutput, nMatch(), t_punch::npunch, t_punch::punarg, punch, and thresh_punline_h2.

Referenced by ParsePunch().

Here is the call graph for this function:

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
*ioMEANthis is stream used for io, is stdout when called by final, is punch unit when punch output generated

Definition at line 452 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().

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 1193 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().

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 418 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().

Here is the call graph for this function:

void H2_Punch_line_data ( FILE *  ioPUN,
bool  lgDoAll 
)
punch H2 line data 
Parameters
ioPUNio unit for punch
lgDoAllpunch all levels if true, only subset if false
Todo:
1 add logic to deduce cs

Definition at line 1069 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 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 1263 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, t_LineSave::lgLineEmergent, 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_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, 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 PunchDo().

Here is the call graph for this function:

void H2_PunchLineStuff ( FILE *  io,
realnum  xLimit,
long  index 
)
include H2 lines in punched optical depths, etc, called from PunchLineStuff 
Parameters
io
xLimit
index

Definition at line 1140 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 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 925 of file mole_h2_io.cpp.

References ASSERT, BadRead(), cdEXIT, DEBUG_ENTRY, FFmtRead(), FILENAME_PATH_LENGTH_2, h2, H2_te_hminus, H2_X_hminus_formation_distribution, H2HMINUS_PRT, INPUT_LINE_LENGTH, ioQQQ, t_h2::Jlowest, t_h2::nRot_hi, nTE_HMINUS, t_h2::nVib_hi, open_data(), and read_whole_line().

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 828 of file mole_h2_io.cpp.

References COmole_rate_s::a, ASSERT, COmole_rate_s::b, BadRead(), cdEXIT, DEBUG_ENTRY, FFmtRead(), FILENAME_PATH_LENGTH_2, h2, H2_disske, H2_dissprob, 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().

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 732 of file mole_h2_io.cpp.

References ASSERT, BadRead(), cdEXIT, DEBUG_ENTRY, energy_wn, FFmtRead(), FILENAME_PATH_LENGTH_2, h2, 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().

Here is the call graph for this function:

void H2_ReadTransprob ( long int  nelec)
read transition probabilities 
Parameters
nelec
Todo:
2 the "50" here and in h2.h should be made a macro.

Definition at line 495 of file mole_h2_io.cpp.

References AddLine2Stack(), ASSERT, BadRead(), cdEXIT, DEBUG_ENTRY, energy_wn, FFmtRead(), FILENAME_PATH_LENGTH_2, h2, H2Lines, 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().

Here is the call graph for this function:

Variable Documentation

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

Definition at line 45 of file mole_h2_io.cpp.

Referenced by H2_PunchDo().

realnum thresh_punline_h2
static

Definition at line 48 of file mole_h2_io.cpp.

Referenced by H2_ParsePunch(), and H2_PunchDo().


Generated for cloudy by doxygen 1.8.4