00001 /* Copyright (C) 2003-2008 Oliver Lemke <olemke@core-dump.info> 00002 00003 This program is free software; you can redistribute it and/or modify it 00004 under the terms of the GNU General Public License as published by the 00005 Free Software Foundation; either version 2, or (at your option) any 00006 later version. 00007 00008 This program is distributed in the hope that it will be useful, 00009 but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00011 GNU General Public License for more details. 00012 00013 You should have received a copy of the GNU General Public License 00014 along with this program; if not, write to the Free Software 00015 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 00016 USA. */ 00017 00018 00020 // File description 00022 00032 #ifndef nc_io_instantiation_h 00033 #define nc_io_instantiation_h 00034 00035 #include <stdexcept> 00036 #include <cfloat> 00037 #include "nc_io.h" 00038 #include "nc_io_types.h" 00039 00040 #define TMPL_NC_READ_WRITE_FILE(what) \ 00041 template void nc_write_to_file<what> (const String&, const what&); \ 00042 template void nc_read_from_file<what> (const String&, what&); 00043 00044 00046 // Overloaded reading/writing routines for NetCDF streams 00048 00049 //=== Basic Types ========================================================== 00050 00051 TMPL_NC_READ_WRITE_FILE( Index ) 00052 TMPL_NC_READ_WRITE_FILE( Matrix ) 00053 TMPL_NC_READ_WRITE_FILE( Numeric ) 00054 TMPL_NC_READ_WRITE_FILE( Sparse ) 00055 TMPL_NC_READ_WRITE_FILE( String ) 00056 TMPL_NC_READ_WRITE_FILE( Tensor3 ) 00057 TMPL_NC_READ_WRITE_FILE( Tensor4 ) 00058 TMPL_NC_READ_WRITE_FILE( Tensor5 ) 00059 TMPL_NC_READ_WRITE_FILE( Tensor6 ) 00060 TMPL_NC_READ_WRITE_FILE( Tensor7 ) 00061 TMPL_NC_READ_WRITE_FILE( Timer ) 00062 TMPL_NC_READ_WRITE_FILE( Vector ) 00063 00064 //=== Compound Types ======================================================= 00065 00066 TMPL_NC_READ_WRITE_FILE( Agenda ) 00067 TMPL_NC_READ_WRITE_FILE( GField1 ) 00068 TMPL_NC_READ_WRITE_FILE( GField2 ) 00069 TMPL_NC_READ_WRITE_FILE( GField3 ) 00070 TMPL_NC_READ_WRITE_FILE( GField4 ) 00071 TMPL_NC_READ_WRITE_FILE( GasAbsLookup ) 00072 TMPL_NC_READ_WRITE_FILE( GridPos ) 00073 TMPL_NC_READ_WRITE_FILE( IsotopeRecord ) 00074 TMPL_NC_READ_WRITE_FILE( MCAntenna ) 00075 TMPL_NC_READ_WRITE_FILE( Ppath ) 00076 TMPL_NC_READ_WRITE_FILE( RetrievalQuantity ) 00077 TMPL_NC_READ_WRITE_FILE( SLIData2 ) 00078 TMPL_NC_READ_WRITE_FILE( SingleScatteringData ) 00079 TMPL_NC_READ_WRITE_FILE( SpeciesRecord ) 00080 TMPL_NC_READ_WRITE_FILE( SpeciesTag ) 00081 00082 //=== Array Types ========================================================== 00083 00084 TMPL_NC_READ_WRITE_FILE( Array<IsotopeRecord> ) 00085 TMPL_NC_READ_WRITE_FILE( Array<SpeciesRecord> ) 00086 TMPL_NC_READ_WRITE_FILE( ArrayOfArrayOfArrayOfArrayOfGridPos ) 00087 TMPL_NC_READ_WRITE_FILE( ArrayOfArrayOfGField1 ) 00088 TMPL_NC_READ_WRITE_FILE( ArrayOfArrayOfGField3 ) 00089 TMPL_NC_READ_WRITE_FILE( ArrayOfArrayOfGridPos ) 00090 TMPL_NC_READ_WRITE_FILE( ArrayOfArrayOfArrayOfGridPos ) 00091 TMPL_NC_READ_WRITE_FILE( ArrayOfArrayOfIndex ) 00092 TMPL_NC_READ_WRITE_FILE( ArrayOfArrayOfLineRecord ) 00093 TMPL_NC_READ_WRITE_FILE( ArrayOfArrayOfMatrix ) 00094 TMPL_NC_READ_WRITE_FILE( ArrayOfArrayOfSpeciesTag ) 00095 TMPL_NC_READ_WRITE_FILE( ArrayOfArrayOfTensor3 ) 00096 TMPL_NC_READ_WRITE_FILE( ArrayOfArrayOfTensor6 ) 00097 TMPL_NC_READ_WRITE_FILE( ArrayOfGField1 ) 00098 TMPL_NC_READ_WRITE_FILE( ArrayOfGField2 ) 00099 TMPL_NC_READ_WRITE_FILE( ArrayOfGField3 ) 00100 TMPL_NC_READ_WRITE_FILE( ArrayOfGField4 ) 00101 TMPL_NC_READ_WRITE_FILE( ArrayOfGridPos ) 00102 TMPL_NC_READ_WRITE_FILE( ArrayOfIndex ) 00103 TMPL_NC_READ_WRITE_FILE( ArrayOfLineRecord ) 00104 TMPL_NC_READ_WRITE_FILE( ArrayOfLineshapeSpec ) 00105 TMPL_NC_READ_WRITE_FILE( ArrayOfMatrix ) 00106 TMPL_NC_READ_WRITE_FILE( ArrayOfPpath ) 00107 TMPL_NC_READ_WRITE_FILE( ArrayOfRetrievalQuantity ) 00108 TMPL_NC_READ_WRITE_FILE( ArrayOfSingleScatteringData ) 00109 TMPL_NC_READ_WRITE_FILE( ArrayOfSpeciesTag ) 00110 TMPL_NC_READ_WRITE_FILE( ArrayOfString ) 00111 TMPL_NC_READ_WRITE_FILE( ArrayOfTensor3 ) 00112 TMPL_NC_READ_WRITE_FILE( ArrayOfTensor4 ) 00113 TMPL_NC_READ_WRITE_FILE( ArrayOfTensor6 ) 00114 TMPL_NC_READ_WRITE_FILE( ArrayOfTensor7 ) 00115 TMPL_NC_READ_WRITE_FILE( ArrayOfVector ) 00116 00117 //========================================================================== 00118 00119 // Undefine the macro to avoid it being used anywhere else 00120 #undef TMPL_NC_READ_WRITE_FILE 00121 00122 /*void 00123 xml_parse_from_stream (istream&, Vector&, bifstream *, ArtsXMLTag&); 00124 00125 void 00126 xml_read_from_stream (istream&, ArrayOfLineRecord&, 00127 const Numeric, const Numeric, bifstream * = NULL); 00128 00129 void 00130 xml_parse_from_stream (istream&, ArrayOfString&, bifstream *, ArtsXMLTag&);*/ 00131 00132 #endif /* nc_io_instantiation_h */