32 m.resize(nrows, ncols);
44 if ((retval = nc_def_dim(ncid,
"nrows", m.nrows(), &ncdims[0])))
46 if ((retval = nc_def_dim(ncid,
"ncols", m.ncols(), &ncdims[1])))
48 if ((retval = nc_def_var(ncid,
"Matrix", NC_DOUBLE, 2, &ncdims[0], &varid)))
50 if ((retval = nc_enddef(ncid)))
nca_error(retval,
"nc_enddef");
51 if ((retval = nc_put_var_double(ncid, varid, m.unsafe_data_handle())))
63 Index npages, nrows, ncols;
68 t.resize(npages, nrows, ncols);
80 if ((retval = nc_def_dim(ncid,
"npages", t.npages(), &ncdims[0])))
82 if ((retval = nc_def_dim(ncid,
"nrows", t.nrows(), &ncdims[1])))
84 if ((retval = nc_def_dim(ncid,
"ncols", t.ncols(), &ncdims[2])))
86 if ((retval = nc_def_var(ncid,
"Tensor3", NC_DOUBLE, 3, &ncdims[0], &varid)))
88 if ((retval = nc_enddef(ncid)))
nca_error(retval,
"nc_enddef");
89 if ((retval = nc_put_var_double(ncid, varid, t.unsafe_data_handle())))
101 Index nbooks, npages, nrows, ncols;
107 t.resize(nbooks, npages, nrows, ncols);
118 int ncdims[4], varid;
119 if ((retval = nc_def_dim(ncid,
"nbooks", t.nbooks(), &ncdims[0])))
121 if ((retval = nc_def_dim(ncid,
"npages", t.npages(), &ncdims[1])))
123 if ((retval = nc_def_dim(ncid,
"nrows", t.nrows(), &ncdims[2])))
125 if ((retval = nc_def_dim(ncid,
"ncols", t.ncols(), &ncdims[3])))
127 if ((retval = nc_def_var(ncid,
"Tensor4", NC_DOUBLE, 4, &ncdims[0], &varid)))
129 if ((retval = nc_enddef(ncid)))
nca_error(retval,
"nc_enddef");
130 if ((retval = nc_put_var_double(ncid, varid, t.unsafe_data_handle())))
142 Index nshelves, nbooks, npages, nrows, ncols;
149 t.resize(nshelves, nbooks, npages, nrows, ncols);
160 int ncdims[5], varid;
161 if ((retval = nc_def_dim(ncid,
"nshelves", t.nshelves(), &ncdims[0])))
163 if ((retval = nc_def_dim(ncid,
"nbooks", t.nbooks(), &ncdims[1])))
165 if ((retval = nc_def_dim(ncid,
"npages", t.npages(), &ncdims[2])))
167 if ((retval = nc_def_dim(ncid,
"nrows", t.nrows(), &ncdims[3])))
169 if ((retval = nc_def_dim(ncid,
"ncols", t.ncols(), &ncdims[4])))
171 if ((retval = nc_def_var(ncid,
"Tensor5", NC_DOUBLE, 5, &ncdims[0], &varid)))
173 if ((retval = nc_enddef(ncid)))
nca_error(retval,
"nc_enddef");
174 if ((retval = nc_put_var_double(ncid, varid, t.unsafe_data_handle())))
201 if ((retval = nc_def_dim(ncid,
"nelem",
v.nelem(), &ncdim)))
203 if ((retval = nc_def_var(ncid,
"Vector", NC_DOUBLE, 1, &ncdim, &varid)))
205 if ((retval = nc_enddef(ncid)))
nca_error(retval,
"nc_enddef");
206 if ((retval = nc_put_var_double(ncid, varid,
v.unsafe_data_handle())))
215#define TMPL_NC_READ_WRITE_FILE_DUMMY(what) \
216 void nca_write_to_file(const int, const what &, const Verbosity &) { \
217 ARTS_USER_ERROR("NetCDF support not yet implemented for this type!"); \
219 void nca_read_from_file(const int, what &, const Verbosity &) { \
220 ARTS_USER_ERROR("NetCDF support not yet implemented for this type!"); \
226#undef TMPL_NC_READ_WRITE_FILE_DUMMY
The global header file for ARTS.
Index nca_get_dim(const int ncid, const String &name, const bool noerror)
Read a dimension from NetCDF file.
void nca_error(const int e, const std::string_view s)
Throws a runtime error for the given NetCDF error code.
void nca_get_data(const int ncid, const String &name, int *data)
Read variable of type int from NetCDF file.
This file contains basic functions to handle NetCDF data files.
void nca_read_from_file(const int ncid, Matrix &m, const Verbosity &)
Reads a Matrix from a NetCDF file.
void nca_write_to_file(const int ncid, const Matrix &m, const Verbosity &)
Writes a Matrix to a NetCDF file.
This file contains private function declarations and template instantiation to handle NetCDF data fil...