00001 /* Copyright (C) 2000-2008 00002 Stefan Buehler <sbuehler@ltu.se> 00003 Patrick Eriksson <Patrick.Eriksson@rss.chalmers.se> 00004 Oliver Lemke <olemke@core-dump.info> 00005 00006 This program is free software; you can redistribute it and/or modify it 00007 under the terms of the GNU General Public License as published by the 00008 Free Software Foundation; either version 2, or (at your option) any 00009 later version. 00010 00011 This program is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU General Public License for more details. 00015 00016 You should have received a copy of the GNU General Public License 00017 along with this program; if not, write to the Free Software 00018 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 00019 USA. */ 00020 00099 #ifndef arts_h 00100 #define arts_h 00101 00102 #include <cstddef> 00103 #include <cstdlib> 00104 #include "matpack.h" 00105 #include "mystring.h" 00106 00107 //----------< First of all, include the configuration header >---------- 00108 // This header is generated by the configure script. 00109 #if HAVE_CONFIG_H 00110 #include <config.h> 00111 #else 00112 #error "Please run ./configure in the top arts directory before compiling." 00113 #endif 00114 00115 // C Assert macro: 00116 #include <cassert> 00117 00118 #ifdef HAVE_NAMESPACES 00119 // We need those to support ansi-compliant compilers (gcc-3x) 00120 namespace std {} 00121 using namespace std; 00122 #endif 00123 00124 //---------------< Global variable declarations >--------------- 00125 // (Definitions of these are in FIXME: where?) 00126 00127 00128 //---------------< Global function declarations: >--------------- 00129 // Documentations are with function definitions. 00130 // FIXME OLE: These should be moved to a separate header file. 00131 void define_wsv_group_names(); 00132 Index get_wsv_id(const String& name); 00133 bool is_valid_keyword_group(const Index name); 00134 void define_species_data(); 00135 void define_lineshape_data(); 00136 void define_lineshape_norm_data(); 00137 00138 void arts_exit (int status = EXIT_FAILURE); 00139 void arts_exit_with_error_message(const String& m); 00140 void exit_or_rethrow(const String& m); 00141 00142 // 00143 // Physical constants are now in constants.cc 00144 // 00145 00146 //---------------< Global macro definitions: >--------------- 00147 00148 // Use this macro around function parameter names and variable definitions 00149 // which are only used in assertions 00150 #ifndef NDEBUG 00151 #define DEBUG_ONLY(...) __VA_ARGS__ 00152 #else 00153 #define DEBUG_ONLY(...) 00154 #endif 00155 00156 #endif // arts_h 00157