ARTS
2.4.0(git:4fb77825)
|
Namespace to contain things required for absorption calculations. More...
Namespaces | |
PredefinedModel | |
Classes | |
class | Lines |
class | SingleLine |
Computations and data for a single absorption line. More... | |
struct | SingleLineExternal |
Single line reading output. More... | |
Enumerations | |
enum | MirroringType : Index { MirroringType::None, MirroringType::Lorentz, MirroringType::SameAsLineShape, MirroringType::Manual } |
Describes the type of mirroring line effects. More... | |
enum | NormalizationType : Index { NormalizationType::None, NormalizationType::VVH, NormalizationType::VVW, NormalizationType::RosenkranzQuadratic } |
Describes the type of normalization line effects. More... | |
enum | PopulationType : Index { PopulationType::ByLTE, PopulationType::ByNLTEVibrationalTemperatures, PopulationType::ByNLTEPopulationDistribution, PopulationType::ByHITRANRosenkranzRelmat, PopulationType::ByHITRANFullRelmat } |
Describes the type of population level counter. More... | |
enum | CutoffType : Index { CutoffType::None, CutoffType::LineByLineOffset, CutoffType::BandFixedFrequency } |
Describes the type of cutoff calculations. More... | |
Functions | |
MirroringType | string2mirroringtype (const String &in) |
String | mirroringtype2string (MirroringType in) |
String | mirroringtype2metadatastring (MirroringType in) |
NormalizationType | string2normalizationtype (const String &in) |
String | normalizationtype2string (NormalizationType in) |
String | normalizationtype2metadatastring (NormalizationType in) |
PopulationType | string2populationtype (const String &in) |
String | populationtype2string (PopulationType in) |
String | populationtype2metadatastring (PopulationType in) |
bool | relaxationtype_relmat (PopulationType in) |
CutoffType | string2cutofftype (const String &in) |
String | cutofftype2string (CutoffType in) |
String | cutofftype2metadatastring (CutoffType in, Numeric cutoff) |
std::ostream & | operator<< (std::ostream &, const SingleLine &) |
std::istream & | operator>> (std::istream &, SingleLine &) |
std::ostream & | operator<< (std::ostream &, const Lines &) |
std::istream & | operator>> (std::istream &, Lines &) |
SingleLineExternal | ReadFromArtscat3Stream (istream &is) |
Read from ARTSCAT-3. More... | |
SingleLineExternal | ReadFromArtscat4Stream (istream &is) |
Read from ARTSCAT-4. More... | |
SingleLineExternal | ReadFromArtscat5Stream (istream &is) |
Read from ARTSCAT-5. More... | |
SingleLineExternal | ReadFromLBLRTMStream (istream &is) |
Read from LBLRTM. More... | |
SingleLineExternal | ReadFromHitran2004Stream (istream &is) |
Read from newer HITRAN. More... | |
SingleLineExternal | ReadFromHitranOnlineStream (istream &is) |
Read from HITRAN online. More... | |
SingleLineExternal | ReadFromHitran2001Stream (istream &is) |
Read from HITRAN before 2004. More... | |
SingleLineExternal | ReadFromMytran2Stream (istream &is) |
Read from Mytran2 The MYTRAN2 format is as follows (directly taken from the abs_my.c documentation): More... | |
SingleLineExternal | ReadFromJplStream (istream &is) |
Read from JPL. More... | |
std::vector< Lines > | split_list_of_external_lines (std::vector< SingleLineExternal > &external_lines, const std::vector< QuantumNumberType > &localquantas={}, const std::vector< QuantumNumberType > &globalquantas={}) |
Splits a list of lines into proper Lines. More... | |
Lines | createEmptyCopy (const Lines &al) noexcept |
Creates a copy of the input lines structure. More... | |
bool | line_in_id (const Lines &band, const QuantumIdentifier &id, size_t line_index) |
Checks if the external quantum identifier match a line's ID. More... | |
bool | line_is_id (const Lines &band, const QuantumIdentifier &id, size_t line_index) |
Checks if the external quantum identifier is equal to a line's identifier. More... | |
bool | id_in_line (const Lines &band, const QuantumIdentifier &id, size_t line_index) |
Checks if the external quantum identifier match a line's ID. More... | |
bool | line_upper_in_id (const Lines &band, const QuantumIdentifier &id, size_t line_index) |
Checks if the external quantum identifier match a line's ID. More... | |
bool | line_lower_in_id (const Lines &band, const QuantumIdentifier &id, size_t line_index) |
Checks if the external quantum identifier match a line's ID. More... | |
bool | id_in_line_upper (const Lines &band, const QuantumIdentifier &id, size_t line_index) |
Checks if the external quantum identifier match a line's ID. More... | |
bool | id_in_line_lower (const Lines &band, const QuantumIdentifier &id, size_t line_index) |
Checks if the external quantum identifier match a line's ID. More... | |
Index | nelem (const Lines &l) |
Number of lines. More... | |
Index | nelem (const Array< Lines > &l) |
Number of lines in list. More... | |
Index | nelem (const Array< Array< Lines >> &l) |
Number of lines in lists. More... | |
Numeric | reduced_rovibrational_dipole (Rational Jf, Rational Ji, Rational lf, Rational li, Rational k=Rational(1)) |
Compute the reduced rovibrational dipole moment. More... | |
Numeric | reduced_magnetic_quadrapole (Rational Jf, Rational Ji, Rational N) |
Compute the reduced magnetic quadrapole moment. More... | |
Namespace to contain things required for absorption calculations.
|
strong |
Describes the type of cutoff calculations.
Enumerator | |
---|---|
None | |
LineByLineOffset | |
BandFixedFrequency |
Definition at line 207 of file absorptionlines.h.
|
strong |
Describes the type of mirroring line effects.
Each type but None has to have an implemented effect
Enumerator | |
---|---|
None | |
Lorentz | |
SameAsLineShape | |
Manual |
Definition at line 49 of file absorptionlines.h.
|
strong |
Describes the type of normalization line effects.
Each type but None has to have an implemented effect
Enumerator | |
---|---|
None | |
VVH | |
VVW | |
RosenkranzQuadratic |
Definition at line 97 of file absorptionlines.h.
|
strong |
Describes the type of population level counter.
The types here might require that different data is available at runtime absorption calculations
Enumerator | |
---|---|
ByLTE | |
ByNLTEVibrationalTemperatures | |
ByNLTEPopulationDistribution | |
ByHITRANRosenkranzRelmat | |
ByHITRANFullRelmat |
Definition at line 148 of file absorptionlines.h.
|
noexcept |
Creates a copy of the input lines structure.
The output will have zero lines but be otherwise a copy of the input
[in] | al | Lines which structure is copied |
Definition at line 2701 of file absorptionlines.cc.
Referenced by abs_lines_per_speciesCreateFromLines().
|
inline |
Definition at line 234 of file absorptionlines.h.
References None.
Referenced by Absorption::Lines::MetaData().
|
inline |
Definition at line 224 of file absorptionlines.h.
References None.
Referenced by xml_write_to_stream().
bool Absorption::id_in_line | ( | const Lines & | band, |
const QuantumIdentifier & | id, | ||
size_t | line_index | ||
) |
Checks if the external quantum identifier match a line's ID.
The check demands that all defined quantum numbers for the id are the same as for the line
[in] | band | The band of lines |
[in] | id | An identifier |
[in] | line_index | The local line |
Definition at line 2840 of file absorptionlines.cc.
References QuantumIdentifier::ALL, QuantumIdentifier::ENERGY_LEVEL, Absorption::Lines::Isotopologue(), J, Absorption::Lines::LowerQuantumNumber(), QuantumIdentifier::NONE, Absorption::Lines::Species(), and Absorption::Lines::UpperQuantumNumber().
Referenced by Linefunctions::apply_lineshapemodel_jacobian_scaling(), Linefunctions::apply_rosenkranz_quadratic_scaling(), Linefunctions::apply_VVH_scaling(), Linefunctions::apply_VVW_scaling(), line_is_id(), Linefunctions::set_doppler(), Linefunctions::set_lorentz(), and Linefunctions::set_voigt().
bool Absorption::id_in_line_lower | ( | const Lines & | band, |
const QuantumIdentifier & | id, | ||
size_t | line_index | ||
) |
Checks if the external quantum identifier match a line's ID.
The check demands that all defined quantum numbers for the id are the same as for the line's lower numbers
[in] | band | The band of lines |
[in] | id | An identifier |
[in] | line_index | The local line |
Definition at line 2904 of file absorptionlines.cc.
References QuantumIdentifier::ALL, Absorption::Lines::Isotopologue(), J, Absorption::Lines::LowerQuantumNumber(), QuantumIdentifier::NONE, Absorption::Lines::Species(), and QuantumIdentifier::TRANSITION.
Referenced by EnergyLevelMap::get_ratio_params(), and EnergyLevelMap::get_vibtemp_params().
bool Absorption::id_in_line_upper | ( | const Lines & | band, |
const QuantumIdentifier & | id, | ||
size_t | line_index | ||
) |
Checks if the external quantum identifier match a line's ID.
The check demands that all defined quantum numbers for the id are the same as for the line's upper numbers
[in] | band | The band of lines |
[in] | id | An identifier |
[in] | line_index | The local line |
Definition at line 2877 of file absorptionlines.cc.
References QuantumIdentifier::ALL, Absorption::Lines::Isotopologue(), J, QuantumIdentifier::NONE, Absorption::Lines::Species(), QuantumIdentifier::TRANSITION, and Absorption::Lines::UpperQuantumNumber().
Referenced by EnergyLevelMap::get_ratio_params(), and EnergyLevelMap::get_vibtemp_params().
bool Absorption::line_in_id | ( | const Lines & | band, |
const QuantumIdentifier & | id, | ||
size_t | line_index | ||
) |
Checks if the external quantum identifier match a line's ID.
The check demands that all defined quantum numbers for the line are the same as for the id
[in] | band | The band of lines |
[in] | id | An identifier |
[in] | line_index | The local line |
Definition at line 2749 of file absorptionlines.cc.
References QuantumIdentifier::ALL, QuantumIdentifier::ENERGY_LEVEL, Absorption::Lines::Isotopologue(), J, Absorption::Lines::LowerQuantumNumber(), QuantumIdentifier::NONE, Absorption::Lines::Species(), and Absorption::Lines::UpperQuantumNumber().
Referenced by line_is_id().
bool Absorption::line_is_id | ( | const Lines & | band, |
const QuantumIdentifier & | id, | ||
size_t | line_index | ||
) |
Checks if the external quantum identifier is equal to a line's identifier.
[in] | band | The band of lines |
[in] | id | An identifier |
[in] | line_index | The local line |
Definition at line 2931 of file absorptionlines.cc.
References id_in_line(), and line_in_id().
bool Absorption::line_lower_in_id | ( | const Lines & | band, |
const QuantumIdentifier & | id, | ||
size_t | line_index | ||
) |
Checks if the external quantum identifier match a line's ID.
The check demands that all defined lower quantum numbers for the line are the same as for the id
[in] | band | The band of lines |
[in] | id | An identifier |
[in] | line_index | The local line |
Definition at line 2813 of file absorptionlines.cc.
References QuantumIdentifier::ALL, Absorption::Lines::Isotopologue(), J, Absorption::Lines::LowerQuantumNumber(), QuantumIdentifier::NONE, Absorption::Lines::Species(), and QuantumIdentifier::TRANSITION.
bool Absorption::line_upper_in_id | ( | const Lines & | band, |
const QuantumIdentifier & | id, | ||
size_t | line_index | ||
) |
Checks if the external quantum identifier match a line's ID.
The check demands that all defined upper quantum numbers for the line are the same as for the id
[in] | band | The band of lines |
[in] | id | An identifier |
[in] | line_index | The local line |
Definition at line 2786 of file absorptionlines.cc.
References QuantumIdentifier::ALL, Absorption::Lines::Isotopologue(), J, QuantumIdentifier::NONE, Absorption::Lines::Species(), QuantumIdentifier::TRANSITION, and Absorption::Lines::UpperQuantumNumber().
|
inline |
Definition at line 81 of file absorptionlines.h.
References None.
Referenced by Absorption::Lines::MetaData().
|
inline |
Definition at line 69 of file absorptionlines.h.
References None.
Referenced by xml_write_to_stream().
Number of lines in lists.
Definition at line 1826 of file absorptionlines.h.
References nelem(), and ARTS::Var::x().
Number of lines in list.
Definition at line 1823 of file absorptionlines.h.
References nelem(), and ARTS::Var::x().
Number of lines.
Definition at line 1820 of file absorptionlines.h.
References Absorption::Lines::NumLines().
Referenced by abs_lines_per_speciesCreateFromLines(), abs_xsec_per_speciesAddLines(), SourceText::AdvanceChar(), SourceText::AdvanceLine(), AgendaAppend(), ArrayOfIndexExtractFromArrayOfArrayOfIndex(), ArrayOfIndexSetConstant(), batch_atm_fields_compactAddSpecies(), check_abs_species(), checkIsotopologueRatios(), GriddedField1::checksize_strict(), GriddedField2::checksize_strict(), GriddedField3::checksize_strict(), GriddedField4::checksize_strict(), GriddedField5::checksize_strict(), GriddedField6::checksize_strict(), chk_scat_species(), create_sparse_covariance_matrix_1D(), createAij(), createBij(), createCji(), Extract(), XsecRecord::Extract(), f_gridFromAbsorptionLines(), f_gridFromSensorAMSU(), fillSpeciesAuxDataWithIsotopologueRatiosFromSpeciesData(), fillSpeciesAuxDataWithPartitionFunctionsFromSpeciesData(), PropagationMatrix::FittingShape(), FlattenedIndex(), get_angs(), IndexSetToLast(), SourceText::Init(), jacobianFromYbatch(), jacobianSetAffineTransformation(), line_irradianceCalcForSingleSpeciesNonOverlappingLinesPseudo2D(), main(), MdRecord::MdRecord(), nca_def_dim(), nca_get_data_ArrayOfIndex(), nca_get_data_Vector(), nca_read_from_file(), nelem(), nelemGet(), nlte_fieldForSingleSpeciesNonOverlappingLines(), nlte_positions_in_statistical_equilibrium_matrix(), operator<<(), operator>>(), Array< base >::operator[](), my_basic_string< charT >::operator[](), opt_prop_ScatSpecBulk(), option_input(), option_methods(), option_workspacevariables(), parse_a5_hitran(), ArtsParser::parse_agenda(), parse_f51_hitran(), ArtsParser::parse_generic_input(), ArtsParser::parse_generic_output(), ArtsParser::parse_method_args(), pnd_fieldCalcFromParticleBulkProps(), pndFromPsd(), MRecord::print(), MdRecord::PrintTemplate(), propmat_clearskyAddHitranLineMixingLines(), psd_mono_common(), random_fill_matrix(), ReadArrayOfARTSCAT(), ReadARTSCAT(), ReadFromArtscat3Stream(), ReadFromArtscat4Stream(), ReadFromArtscat5Stream(), ReadFromHitran2001Stream(), ReadFromHitran2004Stream(), ReadFromHitranOnlineStream(), ReadFromJplStream(), ReadFromLBLRTMStream(), ReadFromMytran2Stream(), SpeciesAuxData::ReadFromStream(), ScatElementsPndAndScatAdd(), ScatElementsToabs_speciesAdd(), Absorption::Lines::SelfVMR(), sensor_responseMixerBackendPrecalcWeights(), Linefunctions::set_cross_section_of_band(), QuantumIdentifier::SetFromString(), SpeciesAuxData::setParam(), sorted_index_of_ppath_field(), SpeciesTag::SpeciesTag(), my_basic_string< charT >::split(), surface_props_check(), write_method_header(), write_method_header_documentation(), xml_parse_from_stream(), xml_read_from_stream(), xml_write_to_stream(), yCalcAppend(), and zeeman_on_the_fly().
|
inline |
Definition at line 129 of file absorptionlines.h.
References None.
Referenced by Absorption::Lines::MetaData().
|
inline |
Definition at line 117 of file absorptionlines.h.
References None.
Referenced by xml_write_to_stream().
std::ostream & Absorption::operator<< | ( | std::ostream & | os, |
const Lines & | lines | ||
) |
Definition at line 2484 of file absorptionlines.cc.
References Absorption::Lines::AllLines().
std::ostream & Absorption::operator<< | ( | std::ostream & | os, |
const SingleLine & | line | ||
) |
Definition at line 2497 of file absorptionlines.cc.
References Absorption::SingleLine::A(), Absorption::SingleLine::E0(), Absorption::SingleLine::F0(), Absorption::SingleLine::g_low(), Absorption::SingleLine::g_upp(), Absorption::SingleLine::I0(), Absorption::SingleLine::LineShape(), Absorption::SingleLine::LowerQuantumNumbers(), Absorption::SingleLine::UpperQuantumNumbers(), and Absorption::SingleLine::Zeeman().
std::istream & Absorption::operator>> | ( | std::istream & | is, |
Lines & | lines | ||
) |
Definition at line 2491 of file absorptionlines.cc.
References Absorption::Lines::AllLines().
std::istream & Absorption::operator>> | ( | std::istream & | is, |
Absorption::SingleLine & | line | ||
) |
Definition at line 2514 of file absorptionlines.cc.
References Absorption::SingleLine::A(), Absorption::SingleLine::E0(), Absorption::SingleLine::F0(), Absorption::SingleLine::g_low(), Absorption::SingleLine::g_upp(), Absorption::SingleLine::I0(), Absorption::SingleLine::LineShape(), Absorption::SingleLine::LowerQuantumNumbers(), Absorption::SingleLine::UpperQuantumNumbers(), and Absorption::SingleLine::Zeeman().
|
inline |
Definition at line 186 of file absorptionlines.h.
References ByLTE.
Referenced by Absorption::Lines::MetaData().
|
inline |
Definition at line 171 of file absorptionlines.h.
References ByLTE.
Referenced by xml_write_to_stream().
Absorption::SingleLineExternal Absorption::ReadFromArtscat3Stream | ( | istream & | is | ) |
Read from ARTSCAT-3.
[in] | is | Input stream |
Definition at line 155 of file absorptionlines.cc.
References data, SpeciesRecord::Isotopologue(), SpeciesRecord::Name(), my_basic_string< charT >::nelem(), nelem(), and global_data::species_data.
Absorption::SingleLineExternal Absorption::ReadFromArtscat4Stream | ( | istream & | is | ) |
Read from ARTSCAT-4.
[in] | is | Input stream |
Definition at line 317 of file absorptionlines.cc.
References data, SpeciesRecord::Isotopologue(), SpeciesRecord::Name(), my_basic_string< charT >::nelem(), nelem(), and global_data::species_data.
Absorption::SingleLineExternal Absorption::ReadFromArtscat5Stream | ( | istream & | is | ) |
Read from ARTSCAT-5.
[in] | is | Input stream |
Definition at line 513 of file absorptionlines.cc.
References data, SpeciesRecord::Isotopologue(), SpeciesRecord::Name(), my_basic_string< charT >::nelem(), nelem(), and global_data::species_data.
Absorption::SingleLineExternal Absorption::ReadFromHitran2001Stream | ( | istream & | is | ) |
Read from HITRAN before 2004.
See ReadFromLBLRTMStream for details on format
[in] | is | Input stream |
Definition at line 1560 of file absorptionlines.cc.
References data, extract(), iso(), SpeciesRecord::Isotopologue(), max, Array< base >::nelem(), my_basic_string< charT >::nelem(), nelem(), and global_data::species_data.
Referenced by ReadHITRAN().
Absorption::SingleLineExternal Absorption::ReadFromHitran2004Stream | ( | istream & | is | ) |
Read from newer HITRAN.
The HITRAN format is as follows:
Each line consists of 160 ASCII characters, followed by a line feed (ASCII 10) and carriage return (ASCII 13) character, for a total of 162 bytes per line. Each item is defined below, with its Fortran format shown in parenthesis. (I2) molecule number (I1) isotopologue number (1 = most abundant, 2 = second, etc) (F12.6) vacuum wavenumbers (cm-1) (E10.3) intensity in cm-1/(molec * cm-2) at 296 Kelvin (E10.3) Einstein-A coefficient (s-1) (F5.4) air-broadened halfwidth (HWHM) in cm-1/atm at 296 Kelvin (F5.4) self-broadened halfwidth (HWHM) in cm-1/atm at 296 Kelvin (F10.4) lower state energy (cm-1) (F4.2) coefficient of temperature dependence of air-broadened halfwidth (F8.6) air-broadened pressure shift of line transition at 296 K (cm-1) (A15) upper state global quanta (A15) lower state global quanta (A15) upper state local quanta (A15) lower state local quanta (I1) uncertainty index for wavenumber (I1) uncertainty index for intensity (I1) uncertainty index for air-broadened half-width (I1) uncertainty index for self-broadened half-width (I1) uncertainty index for temperature dependence (I1) uncertainty index for pressure shift (I2) index for table of references correspond. to wavenumber (I2) index for table of references correspond. to intensity (I2) index for table of references correspond. to air-broadened half-width (I2) index for table of references correspond. to self-broadened half-width (I2) index for table of references correspond. to temperature dependence (I2) index for table of references correspond. to pressure shift (A1) flag (*) for lines supplied with line-coupling algorithm (F7.1) upper state statistical weight (F7.1) lower state statistical weight The molecule numbers are encoded as shown in the table below: 0= Null 1= H2O 2= CO2 3= O3 4= N2O 5= CO 6= CH4 7= O2 8= NO 9= SO2 10= NO2 11= NH3 12= HNO3 13= OH 14= HF 15= HCl 16= HBr 17= HI 18= ClO 19= OCS 20= H2CO 21= HOCl 22= N2 23= HCN 24=CH3Cl 25= H2O2 26= C2H2 27= C2H6 28= PH3 29= COF2 30= SF6 31= H2S 32=HCOOH 33= HO2 34= O 35=ClONO2 36= NO+ 37= HOBr 38= C2H4 *
[in] | is | Input stream |
Definition at line 752 of file absorptionlines.cc.
References data, extract(), iso(), SpeciesRecord::Isotopologue(), max, Array< base >::nelem(), my_basic_string< charT >::nelem(), nelem(), and global_data::species_data.
Referenced by ReadHITRAN().
Absorption::SingleLineExternal Absorption::ReadFromHitranOnlineStream | ( | istream & | is | ) |
Read from HITRAN online.
The data format from online should be a .par line followed by upper state quantum numbers and then lower state quantum numbers. See ReadFromHitran2004Stream for the format of the .par-bit. The quantum numbers are parsed by name and should look as:
J=5.5;N1=2.5;parity=-;kronigParity=f [[tab]] J=6.5;N1=2.5;parity=-;kronigParity=f
[in] | is | Input stream |
Definition at line 1171 of file absorptionlines.cc.
References data, extract(), iso(), SpeciesRecord::Isotopologue(), max, Array< base >::nelem(), my_basic_string< charT >::nelem(), nelem(), and global_data::species_data.
Referenced by ReadHITRAN().
Absorption::SingleLineExternal Absorption::ReadFromJplStream | ( | istream & | is | ) |
Read from JPL.
The JPL format is as follows (directly taken from the JPL documentation):
The catalog line files are composed of 80-character lines, with one line entry per spectral line. The format of each line is: \label{lfmt} \begin{tabular}{@{}lccccccccr@{}} FREQ, & ERR, & LGINT, & DR, & ELO, & GUP, & TAG, & QNFMT, & QN${'}$, & QN${''}$\\ (F13.4, & F8.4, & F8.4, & I2, & F10.4, & I3, & I7, & I4, & 6I2, & 6I2)\\ \end{tabular} \begin{tabular}{lp{4.5in}} FREQ: & Frequency of the line in MHz.\\ ERR: & Estimated or experimental error of FREQ in MHz.\\ LGINT: &Base 10 logarithm of the integrated intensity in units of \linebreak nm$^2$$\cdot$MHz at 300 K. (See Section 3 for conversions to other units.)\\ DR: & Degrees of freedom in the rotational partition function (0 for atoms, 2 for linear molecules, and 3 for nonlinear molecules).\\ ELO: &Lower state energy in cm$^{-1}$ relative to the lowest energy spin--rotation level in ground vibronic state.\\ GUP: & Upper state degeneracy.\\ TAG: & Species tag or molecular identifier. A negative value flags that the line frequency has been measured in the laboratory. The absolute value of TAG is then the species tag and ERR is the reported experimental error. The three most significant digits of the species tag are coded as the mass number of the species, as explained above.\\ QNFMT: &Identifies the format of the quantum numbers given in the field QN. These quantum number formats are given in Section 5 and are different from those in the first two editions of the catalog.\\ QN${'}$: & Quantum numbers for the upper state coded according to QNFMT.\\ QN${''}$: & Quantum numbers for the lower state.\\ \end{tabular} *
[in] | is | Input stream |
Definition at line 3310 of file absorptionlines.cc.
References data, SpeciesRecord::Isotopologue(), nelem(), and global_data::species_data.
Referenced by ReadJPL().
Absorption::SingleLineExternal Absorption::ReadFromLBLRTMStream | ( | istream & | is | ) |
Read from LBLRTM.
LBLRTM follows the old HITRAN format from before 2004. This HITRAN format is as follows (directly from the HITRAN documentation):
Each line consists of 100 bytes of ASCII text data, followed by a line feed (ASCII 10) and carriage return (ASCII 13) character, for a total of 102 bytes per line. Each line can be read using the following READ and FORMAT statement pair (for a FORTRAN sequential access read): READ(3,800) MO,ISO,V,S,R,AGAM,SGAM,E,N,d,V1,V2,Q1,Q2,IERF,IERS, * IERH,IREFF,IREFS,IREFH 800 FORMAT(I2,I1,F12.6,1P2E10.3,0P2F5.4,F10.4,F4.2,F8.6,2I3,2A9,3I1,3I2) Each item is defined below, with its format shown in parenthesis. MO (I2) = molecule number ISO (I1) = isotopologue number (1 = most abundant, 2 = second, etc) V (F12.6) = frequency of transition in wavenumbers (cm-1) S (E10.3) = intensity in cm-1/(molec * cm-2) at 296 Kelvin R (E10.3) = transition probability squared in Debyes**2 AGAM (F5.4) = air-broadened halfwidth (HWHM) in cm-1/atm at 296 Kelvin SGAM (F5.4) = self-broadened halfwidth (HWHM) in cm-1/atm at 296 Kelvin E (F10.4) = lower state energy in wavenumbers (cm-1) N (F4.2) = coefficient of temperature dependence of air-broadened halfwidth d (F8.6) = shift of transition due to pressure (cm-1) V1 (I3) = upper state global quanta index V2 (I3) = lower state global quanta index Q1 (A9) = upper state local quanta Q2 (A9) = lower state local quanta IERF (I1) = accuracy index for frequency reference IERS (I1) = accuracy index for intensity reference IERH (I1) = accuracy index for halfwidth reference IREFF (I2) = lookup index for frequency IREFS (I2) = lookup index for intensity IREFH (I2) = lookup index for halfwidth The molecule numbers are encoded as shown in the table below: 0= Null 1= H2O 2= CO2 3= O3 4= N2O 5= CO 6= CH4 7= O2 8= NO 9= SO2 10= NO2 11= NH3 12= HNO3 13= OH 14= HF 15= HCl 16= HBr 17= HI 18= ClO 19= OCS 20= H2CO 21= HOCl 22= N2 23= HCN 24=CH3Cl 25= H2O2 26= C2H2 27= C2H6 28= PH3 29= COF2 30= SF6 31= H2S 32=HCOOH *
Beyond the HITRAN pre-2004 format, there is one more tag for line mixing available in LBLRTM. This is a sign at the end of the line to indicate that the very next line gives line mixing information.
[in] | is | Input stream |
Definition at line 1922 of file absorptionlines.cc.
References data, extract(), iso(), SpeciesRecord::Isotopologue(), max, Array< base >::nelem(), my_basic_string< charT >::nelem(), nelem(), and global_data::species_data.
Referenced by ReadLBLRTM().
Absorption::SingleLineExternal Absorption::ReadFromMytran2Stream | ( | istream & | is | ) |
Read from Mytran2 The MYTRAN2 format is as follows (directly taken from the abs_my.c documentation):
The MYTRAN format is as follows (FORTRAN notation): FORMAT(I2,I1,F13.4,1PE10.3,0P2F5.2,F10.4,2F4.2,F8.6,F6.4,2I3,2A9,4I1,3I2) Each item is defined below, with its FORMAT String shown in parenthesis. MO (I2) = molecule number ISO (I1) = isotopologue number (1 = most abundant, 2 = second, etc) * F (F13.4) = frequency of transition in MHz * errf (F8.4) = error in f in MHz S (E10.3) = intensity in cm-1/(molec * cm-2) at 296 K * AGAM (F5.4) = air-broadened halfwidth (HWHM) in MHz/Torr at Tref * SGAM (F5.4) = self-broadened halfwidth (HWHM) in MHz/Torr at Tref E (F10.4) = lower state energy in wavenumbers (cm-1) N (F4.2) = coefficient of temperature dependence of air-broadened halfwidth * N_self (F4.2) = coefficient of temperature dependence of self-broadened halfwidth * Tref (F7.2) = reference temperature for AGAM and SGAM * d (F9.7) = shift of transition due to pressure (MHz/Torr) V1 (I3) = upper state global quanta index V2 (I3) = lower state global quanta index Q1 (A9) = upper state local quanta Q2 (A9) = lower state local quanta IERS (I1) = accuracy index for S IERH (I1) = accuracy index for AGAM * IERN (I1) = accuracy index for N The asterisks mark entries that are different from HITRAN. Note that AGAM and SGAM are for the temperature Tref, while S is still for 296 K! The molecule numbers are encoded as shown in the table below: 0= Null 1= H2O 2= CO2 3= O3 4= N2O 5= CO 6= CH4 7= O2 8= NO 9= SO2 10= NO2 11= NH3 12= HNO3 13= OH 14= HF 15= HCl 16= HBr 17= HI 18= ClO 19= OCS 20= H2CO 21= HOCl 22= N2 23= HCN 24=CH3Cl 25= H2O2 26= C2H2 27= C2H6 28= PH3 29= COF2 30= SF6 31= H2S 32=HCOOH 33= HO2 34= O 35= CLONO2 36= NO+ 37= Null 38= Null 39= Null 40=H2O_L 41= Null 42= Null 43= OCLO 44= Null 45= Null 46=BRO 47= Null 48= H2SO4 49=CL2O2 All molecule numbers are from HITRAN, except for species with id's greater or equals 40, which are not included in HITRAN. (E.g.: For BrO, iso=1 is Br-79-O,iso=2 is Br-81-O.) *
[in] | is | Input stream |
Definition at line 2953 of file absorptionlines.cc.
References data, extract(), iso(), SpeciesRecord::Isotopologue(), max, Array< base >::nelem(), my_basic_string< charT >::nelem(), nelem(), global_data::species_data, and SPEED_OF_LIGHT.
Referenced by ReadMytran2().
Compute the reduced magnetic quadrapole moment.
[in] | Jf | Final J |
[in] | Ji | Initial J |
[in] | N | The quantum number (upper should be equal to lower) |
Definition at line 2946 of file absorptionlines.cc.
References even(), N, sqrt(), and wigner6j().
Numeric Absorption::reduced_rovibrational_dipole | ( | Rational | Jf, |
Rational | Ji, | ||
Rational | lf, | ||
Rational | li, | ||
Rational | k = Rational(1) |
||
) |
Compute the reduced rovibrational dipole moment.
[in] | Jf | Final J |
[in] | Ji | Initial J |
[in] | lf | Final l2 |
[in] | li | Initial l2 |
[in] | k | Type of transition |
Definition at line 2939 of file absorptionlines.cc.
|
inline |
Definition at line 201 of file absorptionlines.h.
References ByLTE.
Referenced by Linefunctions::set_cross_section_of_band().
std::vector< Absorption::Lines > Absorption::split_list_of_external_lines | ( | std::vector< SingleLineExternal > & | external_lines, |
const std::vector< QuantumNumberType > & | localquantas = {} , |
||
const std::vector< QuantumNumberType > & | globalquantas = {} |
||
) |
Splits a list of lines into proper Lines.
Ensures that all but SingleLine list in Lines is the same in a full Lines
[in] | lines | A list of lines |
[in] | localquantas | List of quantum numbers to be presumed local |
[in] | globalquantas | List of quantum numbers to be presumed global |
Definition at line 2435 of file absorptionlines.cc.
References transform().
Referenced by ReadHITRAN(), ReadJPL(), ReadLBLRTM(), and ReadMytran2().
|
inline |
Definition at line 213 of file absorptionlines.h.
References None.
Referenced by abs_linesSetCutoff(), abs_linesSetCutoffForMatch(), and xml_read_from_stream().
|
inline |
Definition at line 56 of file absorptionlines.h.
References None.
Referenced by abs_linesSetMirroring(), abs_linesSetMirroringForMatch(), and xml_read_from_stream().
|
inline |
Definition at line 104 of file absorptionlines.h.
References None.
Referenced by abs_linesSetNormalization(), abs_linesSetNormalizationForMatch(), and xml_read_from_stream().
|
inline |
Definition at line 156 of file absorptionlines.h.
References ByLTE.
Referenced by abs_linesSetPopulation(), abs_linesSetPopulationForMatch(), and xml_read_from_stream().