/home66/gary/public_html/cloudy/c10_branch/source/mole_h2_io.cpp File Reference

#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"
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_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 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 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 
)

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

Here is the call graph for this function:

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

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:
*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().

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

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

Here is the call graph for this function:

void H2_Punch_line_data ( FILE *  ioPUN,
bool  lgDoAll 
)

save H2 line data

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

Todo:
1 add logic to deduce cs

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

Here is the call graph for this function:

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

save some properties of the large H2 molecule

Parameters:
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().

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 SaveLineStuff

Parameters:
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().

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

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

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

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

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

Definition at line 51 of file mole_h2_io.cpp.

Referenced by H2_ParseSave(), and H2_PunchDo().

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 15 Nov 2012 for cloudy by  doxygen 1.6.1