00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00027 #ifndef m_nc_h
00028 #define m_nc_h
00029
00030 #if HAVE_CONFIG_H
00031 #include <config.h>
00032 #else
00033 #error "Please run ./configure in the top arts directory before compiling."
00034 #endif
00035
00036 #include "exceptions.h"
00037 #include "workspace_ng.h"
00038 #include "agenda_class.h"
00039
00040
00041 #ifdef ENABLE_NETCDF
00042
00043 #include "nc_io.h"
00044
00045
00046 template<typename T> void
00047 ReadNetCDF (
00048 T& v,
00049 const String& v_name _U_,
00050 const String& f,
00051
00052 const String& f_name _U_)
00053
00054 {
00055 nc_read_from_file (f, v);
00056 }
00057
00058
00059 template<typename T> void
00060 WriteNetCDF (
00061 const T& v,
00062 const String& f,
00063
00064 const String& v_name,
00065 const String& f_name _U_)
00066
00067 {
00068 String filename = f;
00069
00070
00071 filename_nc (filename, v_name);
00072
00073 nc_write_to_file (filename, v);
00074 }
00075
00076 #else // NetCDF not enabled
00077
00078
00079 template<typename T> void
00080 ReadNetCDF (
00081 T& v _U_,
00082 const String& v_name _U_,
00083 const String& f _U_,
00084
00085 const String& f_name _U_)
00086
00087 {
00088 throw runtime_error("This version of arts was compiled without NetCDF support.");
00089 }
00090
00091
00092 template<typename T> void
00093 WriteNetCDF (
00094 const T& v _U_,
00095 const String& f _U_,
00096
00097 const String& v_name _U_,
00098 const String& f_name _U_)
00099
00100 {
00101 throw runtime_error("This version of arts was compiled without NetCDF support.");
00102 }
00103
00104 #endif // ENABLE_NETCDF
00105
00106
00107 template<typename T> void
00108 ReadNetCDF (Workspace& ws _U_,
00109
00110 T& v,
00111 const String& v_name,
00112 const String& f,
00113
00114 const String& f_name)
00115
00116 {
00117 ReadNetCDF (v, f, v_name, f_name);
00118 }
00119
00120
00121 void
00122 WriteNetCDF (Workspace& ws _U_,
00123
00124 const Agenda& v,
00125 const String& f,
00126
00127 const String& v_name,
00128 const String& f_name)
00129 {
00130 WriteNetCDF (v, f, v_name, f_name);
00131 }
00132
00133 #endif // m_nc_h
00134