81 os <<
"Unknown species (1st molecule) in CIARecord: " << molecule1;
82 throw runtime_error(os.str());
87 os <<
"Unknown species (2nd molecule) in CIARecord: " << molecule2;
88 throw runtime_error(os.str());
184 "NonlinearSpecies", verbosity);
191 "NonlinearSpeciesVmrPertubations", verbosity);
194 close_tag.
set_name(
"/GasAbsLookup");
249 xml_parse_error(
"Grids must be of type <Vector> or <ArrayOfString> but <ArrayOf" 255 xml_parse_error(
"Grids must be of type <Vector> or <ArrayOfString> but <" 339 if (!name.length() && (gfield.
get_name().length()))
341 else if (name.length())
350 close_tag.
set_name(
"/GriddedField1");
404 if (!name.length() && (gfield.
get_name().length()))
406 else if (name.length())
415 close_tag.
set_name(
"/GriddedField2");
469 if (!name.length() && (gfield.
get_name().length()))
471 else if (name.length())
480 close_tag.
set_name(
"/GriddedField3");
534 if (!name.length() && (gfield.
get_name().length()))
536 else if (name.length())
545 close_tag.
set_name(
"/GriddedField4");
599 if (!name.length() && (gfield.
get_name().length()))
601 else if (name.length())
610 close_tag.
set_name(
"/GriddedField5");
664 if (!name.length() && (gfield.
get_name().length()))
666 else if (name.length())
675 close_tag.
set_name(
"/GriddedField6");
728 "OriginalGridIndexBelowInterpolationPoint", verbosity);
730 "FractionalDistanceToNextPoint_1", verbosity);
732 "FractionalDistanceToNextPoint_2", verbosity);
793 open_tag.
set_name(
"IsotopologueRecord");
806 close_tag.
set_name(
"/IsotopologueRecord");
856 open_tag.
set_name(
"LineMixingRecord");
870 close_tag.
set_name(
"/LineMixingRecord");
941 "NumberOfPositionInPropagationPath", verbosity);
943 "PropagationPathConstant", verbosity);
946 "StartPositionOfPropagationPath", verbosity);
948 "StartLOSOfPropagationPath", verbosity);
950 "StartLstepOfPropagationPath", verbosity);
952 "PropagationPathPointPositions", verbosity);
956 "PropagationPathPositionLength", verbosity);
958 "EndPositionOfPropagationPath", verbosity);
960 "EndLOSOfPropagationPath", verbosity);
962 "EndLstepPropagationPath", verbosity);
967 "LatitudeGridIndexPosition", verbosity);
969 "LongitudeGridIndexPosition", verbosity);
1003 catch (runtime_error e)
1006 os <<
"Error in upper quantum numbers while reading QuantumNumberRecord: " 1007 <<
"\n" << e.what();
1008 throw runtime_error(os.str());
1019 catch (runtime_error e)
1022 os <<
"Error in lower quantum numbers while reading QuantumNumberRecord: " 1023 <<
"\n" << e.what();
1024 throw runtime_error(os.str());
1047 open_tag.
set_name(
"QuantumNumberRecord");
1067 close_tag.
set_name(
"/QuantumNumberRecord");
1097 for (n = 0; n < nelem; n++)
1100 catch (runtime_error e)
1103 os <<
"Error reading QuantumNumbers: " 1104 <<
"\n Element: " << n
1105 <<
"\n" << e.what();
1106 throw runtime_error(os.str());
1129 open_tag.
set_name(
"QuantumNumbers");
1135 os_xml <<
" " << qn <<
" ";
1137 close_tag.
set_name(
"/QuantumNumbers");
1195 open_tag.
set_name(
"RetrievalQuantity");
1207 close_tag.
set_name(
"/RetrievalQuantity");
1234 String particle_type_string;
1240 Index particle_type;
1252 os <<
"Missing data in xml-stream. Expected za_grid: [0, 180]. " 1253 <<
"Found za_grid: [" << ssdata.
za_grid[0]
1257 throw runtime_error(os.str());
1264 throw runtime_error(
"Number of frequencies in f_grid and pha_mat_data " 1291 open_tag.
set_name(
"SingleScatteringData");
1298 pbofs,
"", verbosity);
1308 close_tag.
set_name(
"/SingleScatteringData");
1372 open_tag.
set_name(
"ScatteringMetaData");
1389 pbofs,
"", verbosity);
1392 close_tag.
set_name(
"/ScatteringMetaData");
1479 os <<
"Unknown SpeciesAuxData version " << version;
1480 throw runtime_error(os.str());
1488 for (n = 0; n < nelem; n++)
1494 artstags.push_back(artstag);
1498 os <<
"SpeciesAuxData for " << artstag <<
" already defined.\n" 1499 <<
"Duplicates are not allowed in input file.";
1500 throw runtime_error(os.str());
1504 catch (runtime_error e)
1507 os <<
"Error reading SpeciesAuxData: " 1508 <<
"\n Element: " << n
1509 <<
"\n" << e.what();
1510 throw runtime_error(os.str());
1538 for (ArrayOfMatrix::const_iterator isp = sad.
getParams().begin();
1541 nelem += isp->nrows();
1543 open_tag.
set_name(
"SpeciesAuxData");
1557 for (
Index isp = 0; isp < params.
nelem(); isp++)
1560 for (
Index iiso = 0; iiso < params[isp].nrows(); iiso++)
1562 os_xml <<
"@ " << species <<
"-" <<
species_data[isp].Isotopologue()[iiso].Name();
1563 for (
Index ip = 0; ip < params[isp].ncols(); ip++)
1564 os_xml <<
" " << params[isp](iiso, ip);
1569 close_tag.
set_name(
"/SpeciesAuxData");
1622 open_tag.
set_name(
"SpeciesRecord");
1632 close_tag.
set_name(
"/SpeciesRecord");
1659 bool string_starts_with_quotes =
true;
1671 string_starts_with_quotes =
false;
1673 }
while (is_xml.good() && dummy !=
'"' && string_starts_with_quotes);
1676 if (!string_starts_with_quotes)
1681 is_xml.get(strbuf,
'"');
1718 os_xml <<
'\"' << stag.
Name() <<
'\"';
1737 throw runtime_error(
"Method not implemented!");
1746 throw runtime_error(
"Method not implemented!");
1756 throw runtime_error(
"Method not implemented!");
1765 throw runtime_error(
"Method not implemented!");
1775 throw runtime_error(
"Method not implemented!");
1784 throw runtime_error(
"Method not implemented!");
INDEX Index
The type to use for all integer numbers and indices.
void add_attribute(const String &aname, const String &value)
Adds a String attribute to tag.
const Index & MytranTag() const
MYTRAN2 tag numbers for all isotopologues.
Index find_first(const Array< base > &x, const base &w)
Find first occurance.
const ArrayOfVector & Grids() const
Grids.
const ArrayOfGriddedField2 & Data() const
Return CIA data.
Index nelem() const
Number of elements.
Vector nls_pert
The vector of perturbations for the VMRs of the nonlinear species.
const Index & Analytical() const
Boolean to make analytical calculations (if possible).
const Numeric & Mass() const
Mass of the isotopologue.
QuantumNumberRecord & Quantum()
Vector t_pert
The vector of temperature perturbations [K].
void read_from_stream(istream &is)
Reads next XML tag.
String Name() const
Return the full name of the tag.
ConstVectorView get_numeric_grid(Index i) const
Get a numeric grid.
Declarations required for the calculation of jacobians.
Index Species() const
Molecular species index.
const ArrayOfString & get_string_grid(Index i) const
Get a string grid.
virtual void checksize_strict() const =0
Strict consistency check.
ArrayOfGriddedField2 mdata
The data itself, directly from the HITRAN file.
bool ReadFromStream(String &artsid, istream &is, Index nparams, const Verbosity &verbosity)
Read parameters from input stream.
GridType get_grid_type(Index i) const
Get grid type.
This file contains private function declarations and template instantiation to handle XML data files...
ParticleType
An attribute to classify the particle type in a SingleScatteringData structure.
ArrayOfIndex nonlinear_species
The species tags with non-linear treatment.
Structure which describes the single scattering properties of a particle or a particle distribution...
A 2D sequential linear interpolation (SLI) lookup table.
String ParticleTypeToString(const ParticleType &particle_type)
Convert particle type enum value to String.
Index nelem() const
Returns the number of elements.
const Index & HitranTag() const
HITRAN-96 tag numbers for all isotopologues.
void xml_parse_error(const String &str_error)
Throws XML parser runtime error.
const Array< SpeciesRecord > species_data
Species Data.
Structure to store a grid position.
String species_name_from_species_index(const Index spec_ind)
Return species name for given species index.
Index Isotopologue() const
Contains the data for one retrieval quantity.
const String & get_name() const
Get the name of this gridded field.
Index get_dim() const
Get the dimension of this gridded field.
const Array< IsotopologueRecord > & Isotopologue() const
The implementation for String, the ARTS string class.
Tensor4 xsec
Absorption cross sections.
Rational Lower(Index i) const
Get lower quantum number.
The global header file for ARTS.
Matrix vmrs_ref
The reference VMR profiles.
const ArrayOfIndex & JplTags() const
JPL tag numbers for all isotopologues.
void xml_set_stream_precision(ostream &os)
Vector f_grid
The frequency grid [Hz].
Record containing upper and lower quantum numbers.
Header file for sparse matrices.
void set_name(const String &new_name)
const String & Mode() const
Calculation mode.
void set_grid(Index i, const Vector &g)
Set a numeric grid.
Binary output file stream class.
Contains the lookup data for one species.
const ArrayOfMatrix & getParams() const
Return a constant reference to the parameters.
A tag group can consist of the sum of several of these.
const String & MainTag() const
Main tag.
An absorption lookup table.
NUMERIC Numeric
The type to use for all floating point numbers.
Index nlibraries() const
Returns the number of libraries.
void get_attribute_value(const String &aname, String &value)
Returns value of attribute as String.
const String & Name() const
An Antenna object used by MCGeneral.
Index species_index_from_species_name(String name)
Return species index for given species name.
Vector t_ref
The reference temperature profile [K].
void xml_write_to_stream(ostream &os_xml, const CIARecord &cr, bofstream *pbofs, const String &name, const Verbosity &verbosity)
Writes CIARecord to XML output stream.
Container class for Quantum Numbers.
void check_name(const String &expected_name)
Check tag name.
Vector p_grid
The pressure grid for the table [Pa].
This can be used to make arrays out of anything.
Contains the lookup data for one isotopologue.
const String & get_grid_name(Index i) const
Get grid name.
void SetSpecies(const Index first, const Index second)
Set CIA species.
void initParams(Index nparams)
Resize according to builtin isotopologues in species data.
const QuantumContainer & GetNumbers() const
void xml_parse_from_stream(istream &is_xml, ArrayOfString &astring, bifstream *pbifs, ArtsXMLTag &tag, const Verbosity &verbosity)
Parse ArrayOfString from XML input stream.
void set_name(const String &s)
Set name of this gridded field.
String MoleculeName(const Index i) const
Return each molecule name (as a string) that is associated with this CIARecord.
Binary output file stream class.
void set_grid_name(Index i, const String &s)
Set grid name.
CIA data for a single pair of molecules.
Implementation of gridded fields.
void xml_read_from_stream(istream &is_xml, CIARecord &cr, bifstream *pbifs, const Verbosity &verbosity)
Reads CIARecord from XML input stream.
Rational Upper(Index i) const
Get upper quantum number.
The structure to describe a propagation path and releated quantities.
const Numeric & Abundance() const
Normal abundance ( = isotopologue ratio).
const String & Subtag() const
Subtag.
Auxiliary data for isotopologues.
ParticleType particle_type
const String & Name() const
Isotopologue name.
This file contains private function declarations and template instantiation to handle XML data files...
const Numeric & Perturbation() const
Size of perturbation used for perturbation calculations.
ArrayOfArrayOfSpeciesTag species
The species tags for which the table is valid.
Index Isotopologue() const
Isotopologue species index.
ParticleType ParticleTypeFromString(const String &particle_type_string)
Convert particle name to enum value.
void write_to_stream(ostream &os)
Write XML tag.