* arts-2-1-596

* src/abs_species_tags.{h,cc} (check_abs_species):

Gather checks for abs_species in one function.

* m_abs_lookup.cc (abs_speciesSet, abs_speciesAdd, abs_speciesAdd2):

Call check_abs_species after modifying abs_species.

git-svn-id: https://www.sat.ltu.se/svn/rt/arts/trunk@8369 aaf1aab0-4228-0410-ad68-8dceda47f409
	* arts-2-1-597

        * src/gas_abs_lookup.h: Cosmetics.

        * src/gas_abs_lookup.cc (GasAbsLookup::Adapt): The current species
	list may now contain species that are not included in the original
	lookup table IF they are trivial species, such as free electrons
	or zeeman species, for which there is no lookup table absorption
	anyway. The data for these additional species is simply set to
	NAN, the same value that *GasAbsLookup::Adapt* would produce.

        * src/check_input.h (runtime_error_not_found,
	runtime_error_not_unique): Added these two new classes, which are
	public derivatives of *runtime_error*.
	(chk_contains): Use the new error classes. This makes it possible
	for the caller to selectively catch one of the two error
	conditions, which is needed in *GasAbsLookup::Adapt*.



git-svn-id: https://www.sat.ltu.se/svn/rt/arts/trunk@8370 aaf1aab0-4228-0410-ad68-8dceda47f409
* arts-2-1-598

* src/methods.cc (abs_xsec_per_speciesAddLines,
propmat_clearskyAddZeeman):

Add line mixing as input.

* src/abs_species_tags.{cc,h} (SpeciesTag):

Add line mixing type support.

(SpeciesTag::operator==): Add mtype and mline_mixing_type.

* src/m_abs.cc (abs_xsec_per_speciesAddLines):

Prepare for line mixing support.

* controlfiles/general/general.arts:

Touch line_mixing_data and line_mixing_data_lut.

git-svn-id: https://www.sat.ltu.se/svn/rt/arts/trunk@8374 aaf1aab0-4228-0410-ad68-8dceda47f409
arts-2-1-599

* src/absorption.h: Two new functions: (xsec_species_line_mixing_wrapper) 
and (xsec_species_line_mixing_2nd_order) that will act as a line mixing 
layer for (xsec_species).

* src/m_linemixing.cc: Fix to work with new ArrayOfArray* line_mixing_data*.

* src/m_abs.cc: Made line_mixing_data* active variables. Added call to
(xsec_species_line_mixing_wrapper) where appropriate.

* src/absorption.cc: (xsec_species_line_mixing_wrapper) and 
(xsec_species_line_mixing_2nd_order) added. When utilized with data from
Makarov etal 2011 these will change O2 band near 6 GHz both positively and 
negatively (I have seen at most 1 K). These are the preliminary tests.



git-svn-id: https://www.sat.ltu.se/svn/rt/arts/trunk@8375 aaf1aab0-4228-0410-ad68-8dceda47f409
2013-04-25  Patrick Eriksson  <patrick.eriksson@chalmers.se>

            * arts-2-1-600

            * src/m_fos.cc: Adding support for fos_n > 0. Work in progress.
            Don't use FOS at all!!!

            * src/m_rte.cc (iyEmissionStandard): Removed non-active code,
            moved to sub-function.

            * src/workspace.cc: Removed all FOS specific variables.



git-svn-id: https://www.sat.ltu.se/svn/rt/arts/trunk@8376 aaf1aab0-4228-0410-ad68-8dceda47f409
* arts-2-1-601

* Cleanup of global variables.

* src/global_data.h:

Gather extern const declarations of all global variables in a separate
namespace and document in which files the variables are defined.

If you need access to a global variable (e.g. md_data), include this
file and make the variable visible in the function where you need it
with:

using global_data::md_data;
(The old way was: extern const Array<MdRecord> md_data;)

Now you can access the variable as usual: md_data.bla();

To keep things clean, this file should never be included in .h files,
only in .cc files.

* src/globals_2.cc:

Removed. Moved definitions into the cc files where the initialization
function of each variables is implemented.

* src/CMakeLists.txt: Remove globals_2.cc.

* src/abs_species_tags.cc, src/absorption.{cc,h},
src/agenda_class.cc, src/agenda_record.cc, src/agendas.cc,
src/cia.cc, src/continua.cc, src/docserver.cc, src/groups.cc,
src/m_abs.cc, src/m_abs_lookup.cc, src/m_atmosphere.cc
src/make_auto_md_cc.cc, src/make_auto_md_h.cc,
src/make_auto_workspace_h.cc, src/methods.cc, src/methods_aux.cc
src/parser.cc, src/partition_function_data.cc, src/species_data.cc
src/test_quantum.cc, src/test_xml.cc, src/xml_io_compound_types.cc,
src/main.cc:

Import global_data.h where needed and replace all 'extern const...'
statements by 'using global_data::...'.

* src/abs_species_tags.{cc,h}, src/absorption.{h,cc}:

Move species_index_from_species_name and
species_name_from_species_index from a_s_t to absorption.
They act on the species, not on the species tag. Also removes the
necessity of SpeciesMap being a global variable which is defined in
absorption.cc.

* src/absorption.{h,cc} (LineRecord::BroadSpecSpecIndex):

Move implementation to cc file.

* src/matpack.h: Move isnan and isinf fix from arts.h to here.

* src/debug.h: Added. Move debug macros from arts.h to here.

* src/arts.h: See above.

git-svn-id: https://www.sat.ltu.se/svn/rt/arts/trunk@8378 aaf1aab0-4228-0410-ad68-8dceda47f409
* arts-2-1-602

* src/absorption.h (LineshapeRecord):

Add bool member to store if this lineshape calculates phase
information. Important to determine later whether this lineshape can
be used for line mixing calculations.

* src/absorption.cc (xsec_species_line_mixing_2nd_order):

Add example code for Richard on how to get LineshapeRecord::Phase().

* src/global_data.h: Declare lineshape_data and lineshape_norm_data.

* src/lineshapes.cc (define_lineshape_data):

Add PHASE or NO_PHASE to each LineshapeRecord constructor call.

Define lineshape_data and lineshape_norm_data inside global_data
namespace.

* src/m_abs.cc: extern const... -> using... for l_d and l_n_d.

git-svn-id: https://www.sat.ltu.se/svn/rt/arts/trunk@8379 aaf1aab0-4228-0410-ad68-8dceda47f409