annotate main/netcdf/src/__netcdf__.cc @ 11993:58964b699239 octave-forge

clean-up formatting
author abarth93
date Tue, 30 Jul 2013 11:57:05 +0000
parents 06b8749dbbcc
children 19477d7ae7d4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1 // Copyright (C) 2013 Alexander Barth <barth.alexander@gmail.com>
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2 //
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
3 // This program is free software; you can redistribute it and/or modify it under
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
4 // the terms of the GNU General Public License as published by the Free Software
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
5 // Foundation; either version 2 of the License, or (at your option) any later
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
6 // version.
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
7 //
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
8 // This program is distributed in the hope that it will be useful, but WITHOUT
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
9 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
10 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
11 // details.
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
12 //
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
13 // You should have received a copy of the GNU General Public License along with
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
14 // this program; if not, see <http://www.gnu.org/licenses/>.
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
15
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
16
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
17 #include <octave/oct.h>
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
18 #include <octave/ov-cell.h>
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
19
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
20 #include <netcdf.h>
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
21
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
22 #include <string>
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
23 #include <map>
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
24 #include <iostream>
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
25 #include <algorithm>
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
26 #include <vector>
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
27
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
28 std::map<std::string, octave_value> netcdf_constants;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
29
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
30 void init() {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
31 #include "netcdf_constants.h"
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
32 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
33
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
34 void check_err(int status)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
35 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
36 if (status != NC_NOERR) error("%s",nc_strerror(status));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
37 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
38
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
39 // convert name to upper-case and add "NC_" prefix if it is missing
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
40 std::string normalize_ncname(std::string name) {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
41 std::string prefix = "NC_";
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
42 std::string ncname = name;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
43 // to upper case
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
44 std::transform(ncname.begin(), ncname.end(),ncname.begin(), ::toupper);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
45
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
46 // add prefix if it is missing
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
47 if (ncname.substr(0, prefix.size()) != prefix) {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
48 ncname = prefix + ncname;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
49 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
50 return ncname;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
51 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
52
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
53 octave_value netcdf_get_constant(octave_value ov)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
54 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
55 if (netcdf_constants.empty())
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
56 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
57 init();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
58 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
59
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
60 if (ov.is_scalar_type())
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
61 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
62 return ov.scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
63 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
64
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
65 std::string name = ov.string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
66 name = normalize_ncname(name);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
67 std::map<std::string, octave_value>::const_iterator cst = netcdf_constants.find(name);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
68
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
69 if (cst != netcdf_constants.end ())
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
70 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
71 return cst->second;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
72 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
73 else
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
74 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
75 error("unknown netcdf constant: %s",name.c_str());
11990
06b8749dbbcc make tests matlab compatible
abarth93
parents: 11989
diff changeset
76 return octave_value();
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
77 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
78 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
79
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
80
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
81 void start_count_stride(int ncid, int varid, octave_value_list args,int len,size_t* start,size_t* count,ptrdiff_t* stride)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
82 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
83 int ndims, dimids[NC_MAX_VAR_DIMS];
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
84
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
85 check_err(nc_inq_varndims (ncid, varid, &ndims));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
86 check_err(nc_inq_vardimid (ncid, varid, dimids));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
87
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
88 // default values for start, count and stride
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
89 // i.e. all variable is loaded
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
90
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
91 for (int i=0; i<ndims; i++) {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
92 check_err(nc_inq_dimlen(ncid,dimids[i],&(count[i])));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
93 start[i] = 0;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
94 //cout << "count def " << count[i] << " " << i << endl;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
95 stride[i] = 1;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
96 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
97
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
98 // start argument
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
99
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
100 if (len > 2)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
101 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
102 uint64NDArray tmp = args(2).uint64_array_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
103
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
104 if (tmp.dims().numel() != ndims)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
105 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
106 error("number of elements of argument %s should match the number "
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
107 "of dimension of the netCDF variable",
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
108 "start");
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
109 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
110
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
111 for (int i=0; i<ndims; i++)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
112 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
113 start[i] = (size_t)tmp(ndims-i-1);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
114
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
115 // if start is specified, the default for count is 1 (how odd!)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
116 count[i] = 1;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
117 //cout << "start " << start[i] << " " << i << endl;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
118 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
119 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
120
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
121 // count argument
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
122
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
123 if (len > 3)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
124 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
125 uint64NDArray tmp = args(3).uint64_array_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
126
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
127 if (tmp.dims().numel() != ndims)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
128 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
129 error("number of elements of argument %s should match the number "
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
130 "of dimension of the netCDF variable",
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
131 "count");
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
132 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
133
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
134 for (int i=0; i<ndims; i++)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
135 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
136 count[i] = (size_t)tmp(ndims-i-1);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
137 //count[i] = (size_t)tmp(i);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
138 //cout << "count " << count[i] << " " << i << endl;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
139 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
140 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
141
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
142 // stride argument
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
143
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
144 if (len > 4)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
145 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
146 int64NDArray tmp = args(4).int64_array_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
147
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
148 if (tmp.dims().numel() != ndims)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
149 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
150 error("number of elements of argument %s should match the number "
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
151 "of dimension of the netCDF variable",
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
152 "stride");
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
153 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
154
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
155 for (int i=0; i<ndims; i++)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
156 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
157 stride[i] = (ptrdiff_t)tmp(ndims-i-1);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
158 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
159 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
160
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
161 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
162
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
163
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
164 DEFUN_DLD(netcdf_getConstant, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
165 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
166 @deftypefn {Loadable Function} {@var{value} =} netcdf_getConstant(@var{name}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
167 Returns the value of a NetCDF constant called @var{name}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
168 @seealso{netcdf_getConstantNames}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
169 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
170 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
171 if (args.length() != 1) {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
172 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
173 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
174 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
175
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
176 return netcdf_get_constant(args(0));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
177 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
178
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
179
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
180 DEFUN_DLD(netcdf_getConstantNames, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
181 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
182 @deftypefn {Loadable Function} {@var{value} =} netcdf_getConstantNames() \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
183 Returns a list of all constant names.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
184 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
185 @seealso{netcdf_getConstant}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
186 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
187
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
188 if (args.length() != 0)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
189 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
190 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
191 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
192 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
193
11989
fef2bde1d412 restructure test (4)
abarth93
parents: 11984
diff changeset
194 if (netcdf_constants.empty())
fef2bde1d412 restructure test (4)
abarth93
parents: 11984
diff changeset
195 {
fef2bde1d412 restructure test (4)
abarth93
parents: 11984
diff changeset
196 init();
fef2bde1d412 restructure test (4)
abarth93
parents: 11984
diff changeset
197 }
fef2bde1d412 restructure test (4)
abarth93
parents: 11984
diff changeset
198
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
199 Cell c = Cell (dim_vector(1,netcdf_constants.size()));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
200
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
201 int i = 0;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
202 for (std::map<std::string, octave_value>::const_iterator p = netcdf_constants.begin ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
203 p != netcdf_constants.end (); p++) {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
204 c(i++) = octave_value(p->first);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
205 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
206
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
207 return octave_value(c);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
208
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
209 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
210
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
211
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
212 DEFUN_DLD(netcdf_inqLibVers, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
213 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
214 @deftypefn {Loadable Function} {@var{vers} =} netcdf_inqLibVers() \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
215 Returns the version of the NetCDF library.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
216 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
217 @seealso{netcdf_open}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
218 {
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
219 if (args.length() != 0)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
220 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
221 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
222 return octave_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
223 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
224
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
225 return octave_value(std::string(nc_inq_libvers()));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
226 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
227
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
228 DEFUN_DLD(netcdf_setDefaultFormat, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
229 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
230 @deftypefn {Loadable Function} {@var{old_format} =} netcdf_setDefaultFormat(@var{format}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
231 Sets the default format of the NetCDF library and returns the previous default format (as a numeric value). @var{format} can be \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
232 \"format_classic\", \"format_64bit\", \"format_netcdf4\" or \"format_netcdf4_classic\". \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
233 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
234 @seealso{netcdf_open}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
235 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
236 if (args.length() != 1)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
237 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
238 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
239 return octave_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
240 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
241
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
242 int format = netcdf_get_constant(args(0)).int_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
243 int old_format;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
244
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
245 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
246 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
247 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
248 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
249 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
250
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
251 check_err(nc_set_default_format(format, &old_format));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
252
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
253 return octave_value(old_format);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
254 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
255
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
256
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
257 // int nc_set_chunk_cache(size_t size, size_t nelems, float preemption);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
258
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
259 DEFUN_DLD(netcdf_setChunkCache, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
260 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
261 @deftypefn {Loadable Function} {} netcdf_setChunkCache(@var{size}, @var{nelems}, @var{preemption}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
262 Sets the default chunk cache settins in the HDF5 library. The settings applies to all files which are subsequently opened or created.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
263 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
264 @seealso{netcdf_getChunkCache}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
265 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
266 if (args.length() != 3)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
267 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
268 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
269 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
270 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
271
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
272 size_t size = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
273 size_t nelems = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
274 float preemption = args(2).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
275
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
276 if (error_state)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
277 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
278 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
279 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
280 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
281
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
282 check_err(nc_set_chunk_cache(size, nelems, preemption));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
283
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
284 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
285 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
286
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
287
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
288 // int nc_get_chunk_cache(size_t *sizep, size_t *nelemsp, float *preemptionp);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
289
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
290 DEFUN_DLD(netcdf_getChunkCache, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
291 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
292 @deftypefn {Loadable Function} {[@var{size}, @var{nelems}, @var{preemption}] =} netcdf_getChunkCache() \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
293 Gets the default chunk cache settins in the HDF5 library. \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
294 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
295 @seealso{netcdf_setChunkCache}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
296 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
297 if (args.length() != 0)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
298 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
299 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
300 return octave_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
301 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
302
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
303 size_t size;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
304 size_t nelems;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
305 float preemption;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
306
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
307 if (error_state)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
308 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
309 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
310 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
311 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
312
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
313 check_err(nc_get_chunk_cache(&size, &nelems, &preemption));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
314 octave_value_list retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
315 retval(0) = octave_value(size);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
316 retval(1) = octave_value(nelems);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
317 retval(2) = octave_value(preemption);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
318
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
319 return retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
320 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
321
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
322
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
323
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
324 DEFUN_DLD(netcdf_create, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
325 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
326 @deftypefn {Loadable Function} {@var{ncid} =} netcdf_create(@var{filename},@var{mode}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
327 Creates the file named @var{filename} in the mode @var{mode} which can have the \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
328 following values: \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
329 \"clobber\" (overwrite existing files), \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
330 \"noclobber\" (prevent to overwrite existing files) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
331 \"64bit_offset\" (use the 64bit-offset format), \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
332 \"netcdf4\" (use the NetCDF4, i.e. HDF5 format) or \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
333 \"share\" (concurrent reading of the dataset). \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
334 @var{mode} can also be the numeric value return by netcdf_getConstant. In the later-case it can be combined with a bitwise-or. \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
335 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
336 Example: \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
337 @example \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
338 mode = bitor(netcdf.getConstant(\"classic_model\"), ...\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
339 netcdf.getConstant(\"netcdf4\")); \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
340 ncid = netcdf.create(\"test.nc\",mode); \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
341 @end example \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
342 @seealso{netcdf_close}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
343 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
344
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
345 if (args.length() != 2)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
346 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
347 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
348 return octave_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
349 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
350
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
351 std::string filename = args(0).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
352 int mode = netcdf_get_constant(args(1)).int_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
353 int ncid;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
354
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
355 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
356 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
357 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
358 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
359 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
360
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
361 check_err(nc_create(filename.c_str(), mode, &ncid));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
362
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
363 return octave_value(ncid);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
364 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
365
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
366 DEFUN_DLD(netcdf_open, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
367 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
368 @deftypefn {Loadable Function} {@var{ncid} =} netcdf_open(@var{filename},@var{mode}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
369 Opens the file named @var{filename} in the mode @var{mode}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
370 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
371 @seealso{netcdf_close}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
372 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
373
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
374 if (args.length() != 2)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
375 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
376 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
377 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
378 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
379
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
380 std::string filename = args(0).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
381 int mode = netcdf_get_constant(args(1)).int_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
382 int ncid;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
383
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
384 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
385 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
386 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
387 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
388 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
389
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
390 check_err(nc_open(filename.c_str(), mode, &ncid));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
391
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
392 return octave_value(ncid);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
393 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
394
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
395
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
396
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
397 DEFUN_DLD(netcdf_abort, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
398 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
399 @deftypefn {Loadable Function} {} netcdf_abort(@var{ncid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
400 Aborts all changes since the last time the dataset entered in define mode.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
401 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
402 @seealso{netcdf_reDef}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
403 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
404
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
405 if (args.length() != 1)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
406 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
407 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
408 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
409 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
410
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
411 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
412
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
413 if (error_state)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
414 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
415 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
416 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
417 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
418
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
419 check_err(nc_abort(ncid));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
420
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
421 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
422 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
423
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
424
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
425 DEFUN_DLD(netcdf_sync, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
426 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
427 @deftypefn {Loadable Function} {} netcdf_sync(@var{ncid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
428 Writes all changes to the disk and leaves the file open.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
429 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
430 @seealso{netcdf_close}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
431 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
432
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
433 if (args.length() != 1)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
434 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
435 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
436 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
437 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
438
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
439 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
440
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
441 if (error_state)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
442 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
443 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
444 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
445 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
446
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
447 check_err(nc_sync(ncid));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
448
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
449 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
450 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
451
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
452 DEFUN_DLD(netcdf_setFill, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
453 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
454 @deftypefn {Loadable Function} {@var{old_mode} =} netcdf_setFill(@var{ncid},@var{fillmode}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
455 Change the fill mode (@var{fillmode}) of the data set @var{ncid}. The previous value of the fill mode is returned. @var{fillmode} can be either \"fill\" or \"nofill\".\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
456 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
457 @seealso{netcdf_open}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
458 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
459
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
460 if (args.length() != 2)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
461 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
462 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
463 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
464 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
465
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
466 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
467 int fillmode = netcdf_get_constant(args(1)).int_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
468 int old_mode;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
469
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
470 if (error_state)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
471 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
472 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
473 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
474 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
475
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
476 check_err (nc_set_fill (ncid, fillmode, &old_mode));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
477
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
478 return octave_value(old_mode);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
479 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
480
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
481
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
482 //int nc_inq (int ncid, int *ndimsp, int *nvarsp, int *ngattsp,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
483 // int *unlimdimidp);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
484 DEFUN_DLD(netcdf_inq, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
485 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
486 @deftypefn {Loadable Function} {[@var{ndims},@var{nvars},@var{ngatts},@var{unlimdimid}] =} netcdf_inq(@var{ncid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
487 Return the number of dimension (@var{ndims}), the number of variables (@var{nvars}), the number of global attributes (@var{ngatts}) and the id of the unlimited dimension (@var{unlimdimid}). \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
488 If no unlimited dimension is declared -1 is returned. For NetCDF4 files, one should use \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
489 the function netcdf_inqUnlimDims as multiple unlimite dimension exists. \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
490 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
491 @seealso{netcdf_inqUnlimDims}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
492 {
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
493 if (args.length() != 1)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
494 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
495 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
496 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
497 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
498
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
499 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
500 int ndims, nvars, ngatts, unlimdimid;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
501 octave_value_list retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
502
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
503 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
504 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
505 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
506 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
507 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
508
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
509 check_err(nc_inq(ncid,&ndims,&nvars,&ngatts,&unlimdimid));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
510
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
511 retval(0) = octave_value(ndims);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
512 retval(1) = octave_value(nvars);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
513 retval(2) = octave_value(ngatts);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
514 retval(3) = octave_value(unlimdimid);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
515 return retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
516 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
517
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
518 // int nc_inq_unlimdims(int ncid, int *nunlimdimsp, int *unlimdimidsp);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
519 DEFUN_DLD(netcdf_inqUnlimDims, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
520 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
521 @deftypefn {Loadable Function} {@var{unlimdimids} =} netcdf_inqUnlimDims(@var{ncid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
522 Return the id of all unlimited dimensions of the NetCDF file @var{ncid}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
523 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
524 @seealso{netcdf_inq}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
525 {
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
526 if (args.length() != 1)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
527 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
528 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
529 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
530 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
531
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
532 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
533 int nunlimdims;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
534
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
535 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
536 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
537 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
538 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
539 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
540
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
541 check_err(nc_inq_unlimdims(ncid, &nunlimdims, NULL));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
542 Array<int> unlimdimids = Array<int>(dim_vector(1,nunlimdims));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
543 check_err(nc_inq_unlimdims(ncid, &nunlimdims, unlimdimids.fortran_vec()));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
544
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
545 return octave_value(unlimdimids);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
546 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
547
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
548
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
549 // int nc_inq_format (int ncid, int *formatp);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
550 DEFUN_DLD(netcdf_inqFormat, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
551 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
552 @deftypefn {Loadable Function} {@var{format} =} netcdf_inqFormat(@var{ncid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
553 Return the NetCDF format of the dataset @var{ncid}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
554 Format might be one of the following \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
555 \"FORMAT_CLASSIC\", \"FORMAT_64BIT\", \"FORMAT_NETCDF4\" or \"FORMAT_NETCDF4_CLASSIC\" \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
556 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
557 @seealso{netcdf_inq}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
558 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
559
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
560 if (args.length() != 1)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
561 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
562 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
563 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
564 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
565
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
566 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
567 int format;
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
568
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
569 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
570 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
571 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
572 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
573 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
574
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
575 check_err(nc_inq_format(ncid, &format));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
576
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
577 if (format == NC_FORMAT_CLASSIC) {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
578 return octave_value("FORMAT_CLASSIC");
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
579 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
580 if (format == NC_FORMAT_64BIT) {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
581 return octave_value("FORMAT_64BIT");
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
582 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
583 if (format == NC_FORMAT_NETCDF4) {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
584 return octave_value("FORMAT_NETCDF4");
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
585 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
586
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
587 return octave_value("FORMAT_NETCDF4_CLASSIC");
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
588 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
589
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
590 // int nc_def_dim (int ncid, const char *name, size_t len, int *dimidp);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
591
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
592 DEFUN_DLD(netcdf_defDim, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
593 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
594 @deftypefn {Loadable Function} {@var{dimid} =} netcdf_defDim(@var{ncid},@var{name},@var{len}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
595 Define the dimension with the name @var{name} and the length @var{len} in the dataset @var{ncid}. The id of the dimension is returned.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
596 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
597 @seealso{netcdf_defVar}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
598 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
599
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
600 if (args.length() != 3)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
601 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
602 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
603 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
604 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
605
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
606 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
607 std::string name = args(1).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
608 size_t len = args(2).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
609 int dimid;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
610
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
611 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
612 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
613 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
614 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
615 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
616
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
617 check_err(nc_def_dim (ncid, name.c_str(), len, &dimid));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
618
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
619 return octave_value(dimid);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
620 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
621
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
622
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
623 // int nc_rename_dim(int ncid, int dimid, const char* name);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
624
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
625
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
626 DEFUN_DLD(netcdf_renameDim, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
627 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
628 @deftypefn {Loadable Function} {} netcdf_renameDim(@var{ncid},@var{dimid},@var{name}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
629 Renames the dimension with the id @var{dimid} in the data set @var{ncid}. @var{name} is the new name of the dimension.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
630 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
631 @seealso{netcdf_defDim}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
632 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
633
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
634 if (args.length() != 3)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
635 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
636 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
637 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
638 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
639
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
640 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
641 int dimid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
642 std::string name = args(2).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
643
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
644 if (error_state)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
645 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
646 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
647 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
648 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
649
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
650 check_err(nc_rename_dim (ncid, dimid, name.c_str()));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
651
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
652 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
653 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
654
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
655 // int nc_def_var (int ncid, const char *name, nc_type xtype,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
656 // int ndims, const int dimids[], int *varidp);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
657
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
658 DEFUN_DLD(netcdf_defVar, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
659 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
660 @deftypefn {Loadable Function} {@var{varid} = } netcdf_defVar(@var{ncid},@var{name},@var{xtype},@var{dimids}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
661 Defines a variable with the name @var{name} in the dataset @var{ncid}. @var{xtype} can be \"byte\", \"ubyte\", \"short\", \"ushort\", \"int\", \"uint\", \"int64\", \"uint64\", \"float\", \"double\", \"char\" or the corresponding number as returned by netcdf_getConstant. The parameter @var{dimids} define the ids of the dimension. For scalar this parameter is the empty array ([]). The variable id is returned. \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
662 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
663 @seealso{netcdf_open,netcdf_defDim}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
664 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
665
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
666 if (args.length() != 4)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
667 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
668 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
669 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
670 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
671
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
672 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
673 std::string name = args(1).string_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
674 int xtype = netcdf_get_constant(args(2)).int_value();;
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
675
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
676 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
677 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
678 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
679 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
680 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
681
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
682 Array<double> tmp;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
683
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
684 if (!args(3).is_empty()) {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
685 tmp = args(3).vector_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
686 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
687
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
688 OCTAVE_LOCAL_BUFFER (int, dimids, tmp.numel());
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
689
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
690 for (int i = 0; i < tmp.numel(); i++)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
691 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
692 dimids[i] = tmp(tmp.numel()-i-1);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
693 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
694
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
695 int varid;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
696
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
697 check_err(nc_def_var (ncid, name.c_str(), xtype, tmp.numel(), dimids, &varid));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
698
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
699 return octave_value(varid);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
700 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
701
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
702
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
703 // int nc_rename_var(int ncid, int varid, const char* name);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
704
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
705
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
706 DEFUN_DLD(netcdf_renameVar, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
707 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
708 @deftypefn {Loadable Function} {} netcdf_renameVar(@var{ncid},@var{varid},@var{name}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
709 Renames the variable with the id @var{varid} in the data set @var{ncid}. @var{name} is the new name of the variable.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
710 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
711 @seealso{netcdf_defVar}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
712 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
713
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
714 if (args.length() != 3)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
715 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
716 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
717 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
718 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
719
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
720 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
721 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
722 std::string name = args(2).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
723
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
724 if (error_state)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
725 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
726 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
727 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
728 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
729
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
730 check_err(nc_rename_var (ncid, varid, name.c_str()));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
731
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
732 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
733 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
734
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
735
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
736 // int nc_def_var_fill(int ncid, int varid, int no_fill, void *fill_value);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
737 DEFUN_DLD(netcdf_defVarFill, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
738 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
739 @deftypefn {Loadable Function} {} netcdf_defVarFill(@var{ncid},@var{varid},@var{no_fill},@var{fillvalue}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
740 Define the fill-value settings of the NetCDF variable @var{varid}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
741 If @var{no_fill} is false, then the values between no-contiguous writes are filled with the value @var{fill_value}. This is disabled by setting @var{no_fill} to true.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
742 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
743 @seealso{netcdf_inqVarFill}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
744 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
745
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
746 if (args.length() != 4)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
747 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
748 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
749 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
750 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
751
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
752 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
753 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
754 int no_fill = args(2).scalar_value(); // boolean
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
755 octave_value fill_value = args(3);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
756 nc_type xtype;
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
757
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
758 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
759 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
760 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
761 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
762 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
763
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
764 check_err(nc_inq_vartype (ncid, varid, &xtype));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
765
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
766 switch (xtype)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
767 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
768 #define OV_NETCDF_DEF_VAR_FILL(netcdf_type,c_type,method) \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
769 case netcdf_type: \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
770 { \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
771 check_err(nc_def_var_fill(ncid, varid, no_fill, fill_value.method().fortran_vec())); \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
772 break; \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
773 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
774
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
775 OV_NETCDF_DEF_VAR_FILL(NC_BYTE, signed char, int8_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
776 OV_NETCDF_DEF_VAR_FILL(NC_UBYTE, unsigned char, uint8_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
777 OV_NETCDF_DEF_VAR_FILL(NC_SHORT, short, int16_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
778 OV_NETCDF_DEF_VAR_FILL(NC_USHORT, unsigned short, uint16_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
779 OV_NETCDF_DEF_VAR_FILL(NC_INT, int, int32_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
780 OV_NETCDF_DEF_VAR_FILL(NC_UINT, unsigned int, uint32_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
781 OV_NETCDF_DEF_VAR_FILL(NC_INT64, long long, int64_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
782 OV_NETCDF_DEF_VAR_FILL(NC_UINT64, unsigned long long, uint64_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
783
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
784 OV_NETCDF_DEF_VAR_FILL(NC_FLOAT, float, float_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
785 OV_NETCDF_DEF_VAR_FILL(NC_DOUBLE,double,array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
786
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
787 OV_NETCDF_DEF_VAR_FILL(NC_CHAR, char, char_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
788 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
789
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
790 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
791 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
792
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
793
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
794
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
795 // int nc_def_var_fill(int ncid, int varid, int no_fill, void *fill_value);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
796 DEFUN_DLD(netcdf_inqVarFill, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
797 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
798 @deftypefn {Loadable Function} {[@var{no_fill},@var{fillvalue}] = } netcdf_inqVarFill(@var{ncid},@var{varid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
799 Determines the fill-value settings of the NetCDF variable @var{varid}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
800 If @var{no_fill} is false, then the values between no-contiguous writes are filled with the value @var{fill_value}. This is disabled by setting @var{no_fill} to true.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
801 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
802 @seealso{netcdf_defVarFill}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
803 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
804
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
805 if (args.length() != 2)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
806 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
807 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
808 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
809 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
810
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
811 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
812 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
813 int no_fill;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
814 nc_type xtype;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
815 octave_value_list retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
816 octave_value data;
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
817
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
818 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
819 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
820 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
821 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
822 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
823
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
824 check_err(nc_inq_vartype (ncid, varid, &xtype));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
825
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
826 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
827 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
828 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
829 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
830
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
831 switch (xtype)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
832 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
833 #define OV_NETCDF_INQ_VAR_FILL(netcdf_type,c_type) \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
834 case netcdf_type: \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
835 { \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
836 Array< c_type > fill_value = Array< c_type >(dim_vector(1,1)); \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
837 check_err(nc_inq_var_fill(ncid, varid, &no_fill, \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
838 fill_value.fortran_vec())); \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
839 data = octave_value(fill_value); \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
840 break; \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
841 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
842
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
843 OV_NETCDF_INQ_VAR_FILL(NC_BYTE,octave_int8)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
844 OV_NETCDF_INQ_VAR_FILL(NC_UBYTE,octave_uint8)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
845 OV_NETCDF_INQ_VAR_FILL(NC_SHORT,octave_int16)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
846 OV_NETCDF_INQ_VAR_FILL(NC_USHORT,octave_uint16)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
847 OV_NETCDF_INQ_VAR_FILL(NC_INT,octave_int32)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
848 OV_NETCDF_INQ_VAR_FILL(NC_UINT,octave_uint32)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
849 OV_NETCDF_INQ_VAR_FILL(NC_INT64,octave_int64)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
850 OV_NETCDF_INQ_VAR_FILL(NC_UINT64,octave_uint64)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
851
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
852 OV_NETCDF_INQ_VAR_FILL(NC_FLOAT,float)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
853 OV_NETCDF_INQ_VAR_FILL(NC_DOUBLE,double)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
854
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
855 OV_NETCDF_INQ_VAR_FILL(NC_CHAR,char)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
856 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
857
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
858 //cout << "xtype3 " << xtype << " " << NC_DOUBLE << std::endl;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
859 retval(0) = octave_value(no_fill);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
860 retval(1) = data;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
861 return retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
862 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
863
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
864
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
865
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
866
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
867 //nc_def_var_deflate(int ncid, int varid, int shuffle, int deflate,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
868 // int deflate_level);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
869 DEFUN_DLD(netcdf_defVarDeflate, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
870 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
871 @deftypefn {Loadable Function} {} netcdf_defVarDeflate (@var{ncid},@var{varid},@var{shuffle},@var{deflate},@var{deflate_level}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
872 Define the compression settings NetCDF variable @var{varid}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
873 If @var{deflate} is true, then the variable is compressed. The compression level @var{deflate_level} is an integer between 0 (no compression) and 9 (maximum compression).\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
874 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
875 @seealso{netcdf_inqVarDeflate}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
876 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
877
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
878 if (args.length() != 5)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
879 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
880 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
881 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
882 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
883
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
884 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
885 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
886 int shuffle = args(2).scalar_value(); // boolean
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
887 int deflate = args(3).scalar_value(); // boolean
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
888 int deflate_level = args(4).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
889
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
890 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
891 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
892 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
893 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
894 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
895
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
896 check_err(nc_def_var_deflate (ncid, varid, shuffle, deflate, deflate_level));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
897 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
898 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
899
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
900
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
901 //nc_inq_var_deflate(int ncid, int varid, int *shufflep,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
902 // int *deflatep, int *deflate_levelp);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
903 DEFUN_DLD(netcdf_inqVarDeflate, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
904 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
905 @deftypefn {Loadable Function} {[@var{shuffle},@var{deflate},@var{deflate_level}] = } netcdf_inqVarDeflate (@var{ncid},@var{varid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
906 Determines the compression settings NetCDF variable @var{varid}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
907 If @var{deflate} is true, then the variable is compressed. The compression level @var{deflate_level} is an integer between 0 (no compression) and 9 (maximum compression).\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
908 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
909 @seealso{netcdf_defVarDeflate}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
910 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
911
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
912 if (args.length() != 2)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
913 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
914 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
915 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
916 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
917
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
918 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
919 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
920 int shuffle, deflate, deflate_level;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
921 octave_value_list retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
922
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
923 if (! error_state) {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
924 int format;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
925 check_err(nc_inq_format(ncid, &format));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
926
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
927 // nc_inq_var_deflate returns garbage for classic or 64bit files
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
928 if (format == NC_FORMAT_CLASSIC || format == NC_FORMAT_64BIT) {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
929 shuffle = 0;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
930 deflate = 0;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
931 deflate_level = 0;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
932 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
933 else {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
934 check_err(nc_inq_var_deflate(ncid, varid,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
935 &shuffle,&deflate,&deflate_level));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
936 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
937
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
938 retval(0) = octave_value(shuffle);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
939 retval(1) = octave_value(deflate);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
940 retval(2) = octave_value(deflate_level);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
941 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
942
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
943 return retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
944 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
945
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
946 //int nc_def_var_chunking(int ncid, int varid, int storage, size_t *chunksizesp);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
947 //chunksizes can be ommited if storage is \"CONTIGUOUS\"
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
948 DEFUN_DLD(netcdf_defVarChunking, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
949 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
950 @deftypefn {Loadable Function} {} netcdf_defVarChunking (@var{ncid},@var{varid},@var{storage},@var{chunkSizes}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
951 Define the chunking settings of NetCDF variable @var{varid}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
952 If @var{storage} is the string \"chunked\", the variable is stored by chunk of the size @var{chunkSizes}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
953 If @var{storage} is the string \"contiguous\", the variable is stored in a contiguous way.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
954 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
955 @seealso{netcdf_inqVarChunking}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
956 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
957
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
958 if (args.length() != 3 && args.length() != 4)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
959 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
960 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
961 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
962 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
963
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
964 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
965 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
966 std::string storagestr = args(2).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
967 int storage;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
968
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
969 if (! error_state) {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
970 std::transform(storagestr.begin(), storagestr.end(),storagestr.begin(), ::toupper);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
971
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
972 if (storagestr == "CHUNKED") {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
973 storage = NC_CHUNKED;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
974 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
975 else if (storagestr == "CONTIGUOUS") {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
976 storage = NC_CONTIGUOUS;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
977 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
978 else {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
979 error("unknown storage %s",storagestr.c_str());
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
980 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
981 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
982
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
983 if (args.length() == 4) {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
984 Array<double> tmp = args(3).vector_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
985
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
986 OCTAVE_LOCAL_BUFFER (size_t, chunksizes, tmp.numel());
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
987 for (int i = 0; i < tmp.numel(); i++)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
988 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
989 chunksizes[i] = tmp(tmp.numel()-i-1);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
990 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
991
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
992 check_err(nc_def_var_chunking(ncid, varid, storage, chunksizes));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
993 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
994 else {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
995 check_err(nc_def_var_chunking(ncid, varid, storage, NULL));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
996 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
997 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
998
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
999 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1000 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1001
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1002 //int nc_inq_var_chunking(int ncid, int varid, int *storagep, size_t *chunksizesp);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1003 DEFUN_DLD(netcdf_inqVarChunking, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1004 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1005 @deftypefn {Loadable Function} {[@var{storage},@var{chunkSizes}] = } netcdf_inqVarChunking (@var{ncid},@var{varid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1006 Determines the chunking settings of NetCDF variable @var{varid}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1007 If @var{storage} is the string \"chunked\", the variable is stored by chunk of the size @var{chunkSizes}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1008 If @var{storage} is the string \"contiguous\", the variable is stored in a contiguous way.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1009 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1010 @seealso{netcdf_defVarChunking}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1011 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1012
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1013 if (args.length() != 2)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1014 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1015 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1016 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1017 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1018
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1019 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1020 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1021 int storage;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1022 int ndims;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1023 octave_value_list retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1024
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1025 check_err(nc_inq_varndims (ncid, varid, &ndims));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1026 OCTAVE_LOCAL_BUFFER (size_t, chunksizes, ndims);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1027
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1028 if (! error_state) {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1029 check_err(nc_inq_var_chunking(ncid, varid, &storage, chunksizes));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1030
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1031 if (storage == NC_CHUNKED) {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1032 retval(0) = octave_value("chunked");
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1033 Array<int> chunkSizes = Array<int>(dim_vector(1,ndims));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1034
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1035 for (int i = 0; i < ndims; i++)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1036 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1037 chunkSizes(ndims-i-1) = chunksizes[i];
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1038 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1039 retval(1) = octave_value(chunkSizes);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1040 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1041 else {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1042 retval(0) = octave_value("contiguous");
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1043 retval(1) = octave_value(Array<double>());
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1044 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1045
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1046 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1047
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1048 return retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1049 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1050
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1051 // nc_def_var_fletcher32(int ncid, int varid, int checksum);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1052 DEFUN_DLD(netcdf_defVarFletcher32, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1053 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1054 @deftypefn {Loadable Function} {} netcdf_defVarFletcher32(@var{ncid},@var{varid},@var{checksum}) \n\
11990
06b8749dbbcc make tests matlab compatible
abarth93
parents: 11989
diff changeset
1055 Defines the checksum settings of the variable with the id @var{varid} in the data set @var{ncid}. If @var{checksum} is the string \"FLETCHER32\", then fletcher32 checksums will be turned on for this variable. If @var{checksum} is \"NOCHECKSUM\", then checksums will be disabled. \n\
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1056 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1057 @seealso{netcdf_defVar,netcdf_inqVarFletcher32}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1058 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1059
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1060 if (args.length() != 3)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1061 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1062 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1063 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1064 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1065
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1066 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1067 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1068 int checksum = netcdf_get_constant(args(2)).int_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1069
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1070 if (error_state)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1071 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1072 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1073 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1074 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1075
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1076 check_err(nc_def_var_fletcher32(ncid, varid, checksum));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1077
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1078 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1079 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1080
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1081
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1082
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1083 DEFUN_DLD(netcdf_inqVarFletcher32, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1084 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1085 @deftypefn {Loadable Function} {@var{checksum} =} netcdf_inqVarFletcher32(@var{ncid},@var{varid}) \n\
11990
06b8749dbbcc make tests matlab compatible
abarth93
parents: 11989
diff changeset
1086 Determines the checksum settings of the variable with the id @var{varid} in the data set @var{ncid}. If fletcher32 checksums is turned on for this variable, then @var{checksum} is the string \"FLETCHER32\". Otherwise it is the string \"NOCHECKSUM\". \n\
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1087 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1088 @seealso{netcdf_defVar,netcdf_inqVarFletcher32}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1089 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1090
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1091 if (args.length() != 2)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1092 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1093 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1094 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1095 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1096
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1097 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1098 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1099 int checksum;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1100
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1101 if (error_state)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1102 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1103 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1104 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1105 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1106
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1107 check_err(nc_inq_var_fletcher32(ncid, varid, &checksum));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1108
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1109 if (checksum == NC_FLETCHER32)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1110 {
11990
06b8749dbbcc make tests matlab compatible
abarth93
parents: 11989
diff changeset
1111 return octave_value("FLETCHER32");
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1112 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1113 else
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1114 {
11990
06b8749dbbcc make tests matlab compatible
abarth93
parents: 11989
diff changeset
1115 return octave_value("NOCHECKSUM");
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1116 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1117 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1118
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1119
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1120
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1121 DEFUN_DLD(netcdf_endDef, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1122 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1123 @deftypefn {Loadable Function} {} netcdf_endDef (@var{ncid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1124 Leaves define-mode of NetCDF file @var{ncid}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1125 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1126 @seealso{netcdf_reDef}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1127 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1128 if (args.length() != 1)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1129 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1130 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1131 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1132 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1133
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1134 int ncid = args(0).scalar_value();
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1135
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1136 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1137 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1138 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1139 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1140 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1141
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1142 check_err(nc_enddef (ncid));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1143
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1144 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1145 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1146
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1147 DEFUN_DLD(netcdf_reDef, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1148 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1149 @deftypefn {Loadable Function} {} netcdf_reDef (@var{ncid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1150 Enter define-mode of NetCDF file @var{ncid}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1151 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1152 @seealso{netcdf_endDef}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1153 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1154 if (args.length() != 1)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1155 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1156 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1157 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1158 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1159
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1160 int ncid = args(0).scalar_value();
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1161
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1162 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1163 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1164 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1165 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1166 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1167
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1168 check_err(nc_redef (ncid));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1169
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1170 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1171 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1172
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1173 // http://www.unidata.ucar.edu/software/netcdf/docs/netcdf-c/nc_005fput_005fvar_005f-type.html#nc_005fput_005fvar_005f-type
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1174
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1175 DEFUN_DLD(netcdf_putVar, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1176 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1177 @deftypefn {Loadable Function} {} netcdf_putVar (@var{ncid},@var{varid},@var{data}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1178 @deftypefnx {Loadable Function} {} netcdf_putVar (@var{ncid},@var{varid},@var{start},@var{data}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1179 @deftypefnx {Loadable Function} {} netcdf_putVar (@var{ncid},@var{varid},@var{start},@var{count},@var{data}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1180 @deftypefnx {Loadable Function} {} netcdf_putVar (@var{ncid},@var{varid},@var{start},@var{count},@var{stride},@var{data}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1181 Put data in a NetCDF variable.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1182 The data @var{data} is stored in the variable @var{varid} of the NetCDF file @var{ncid}. \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1183 @var{start} is the start index of each dimension (0-based and defaults to a vector of zeros), \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1184 @var{count} is the number of elements of to be written along each dimension (default all elements)\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1185 and @var{stride} is the sampling interval.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1186 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1187 @seealso{netcdf_endDef}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1188 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1189 if (args.length() < 3 || args.length() > 6)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1190 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1191 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1192 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1193 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1194
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1195 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1196 int varid = args(1).scalar_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1197 octave_value data = args(args.length()-1);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1198 size_t start[NC_MAX_VAR_DIMS];
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1199 size_t count[NC_MAX_VAR_DIMS];
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1200 ptrdiff_t stride[NC_MAX_VAR_DIMS];
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1201 nc_type xtype;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1202
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1203 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1204 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1205 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1206 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1207 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1208
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1209 check_err(nc_inq_vartype (ncid, varid, &xtype));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1210 //int sliced_numel = tmp.numel();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1211
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1212 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1213 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1214 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1215 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1216
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1217 start_count_stride(ncid, varid, args, args.length()-1, start, count, stride);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1218
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1219 // check if count matched size(data)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1220
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1221 switch (xtype)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1222 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1223 #define OV_NETCDF_PUT_VAR(netcdf_type,c_type,method) \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1224 case netcdf_type: \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1225 { \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1226 check_err(nc_put_vars (ncid, varid, start, count, stride, (c_type*)data.method().fortran_vec())); \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1227 break; \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1228 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1229
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1230 OV_NETCDF_PUT_VAR(NC_BYTE, signed char, int8_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1231 OV_NETCDF_PUT_VAR(NC_UBYTE, unsigned char, uint8_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1232 OV_NETCDF_PUT_VAR(NC_SHORT, short, int16_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1233 OV_NETCDF_PUT_VAR(NC_USHORT, unsigned short, uint16_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1234 OV_NETCDF_PUT_VAR(NC_INT, int, int32_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1235 OV_NETCDF_PUT_VAR(NC_UINT, unsigned int, uint32_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1236 OV_NETCDF_PUT_VAR(NC_INT64, long long, int64_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1237 OV_NETCDF_PUT_VAR(NC_UINT64, unsigned long long, uint64_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1238
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1239 OV_NETCDF_PUT_VAR(NC_FLOAT, float, float_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1240 OV_NETCDF_PUT_VAR(NC_DOUBLE,double,array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1241
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1242 OV_NETCDF_PUT_VAR(NC_CHAR, char, char_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1243 default:
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1244 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1245 error("unknown type %d" ,xtype);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1246 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1247 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1248 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1249 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1250
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1251
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1252
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1253 DEFUN_DLD(netcdf_getVar, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1254 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1255 @deftypefn {Loadable Function} {@var{data} =} netcdf_getVar (@var{ncid},@var{varid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1256 @deftypefnx {Loadable Function} {@var{data} =} netcdf_getVar (@var{ncid},@var{varid},@var{start}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1257 @deftypefnx {Loadable Function} {@var{data} =} netcdf_getVar (@var{ncid},@var{varid},@var{start},@var{count}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1258 @deftypefnx {Loadable Function} {@var{data} =} netcdf_getVar (@var{ncid},@var{varid},@var{start},@var{count},@var{stride}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1259 Get the data from a NetCDF variable.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1260 The data @var{data} is loaded from the variable @var{varid} of the NetCDF file @var{ncid}. \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1261 @var{start} is the start index of each dimension (0-based and defaults to a vector of zeros), \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1262 @var{count} is the number of elements of to be written along each dimension (default all elements)\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1263 and @var{stride} is the sampling interval.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1264 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1265 @seealso{netcdf_putVar}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1266 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1267 if (args.length() < 2 || args.length() > 5)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1268 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1269 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1270 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1271 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1272
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1273 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1274 int varid = args(1).scalar_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1275 std::list<Range> ranges;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1276 int ndims;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1277 size_t start[NC_MAX_VAR_DIMS];
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1278 size_t count[NC_MAX_VAR_DIMS];
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1279 ptrdiff_t stride[NC_MAX_VAR_DIMS];
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1280
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1281 octave_value data;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1282 nc_type xtype;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1283
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1284 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1285 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1286 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1287 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1288 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1289
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1290 check_err(nc_inq_vartype (ncid, varid, &xtype));
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1291
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1292 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1293 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1294 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1295 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1296
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1297 check_err(nc_inq_varndims (ncid, varid, &ndims));
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1298
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1299 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1300 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1301 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1302 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1303
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1304 int sz = 1;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1305
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1306 dim_vector sliced_dim_vector;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1307
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1308 if (ndims < 2)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1309 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1310 sliced_dim_vector.resize(2);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1311 sliced_dim_vector(0) = 1;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1312 sliced_dim_vector(1) = 1;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1313 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1314 else
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1315 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1316 sliced_dim_vector.resize(ndims);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1317 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1318
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1319 start_count_stride(ncid, varid, args, args.length(), start, count, stride);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1320
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1321 if (error_state)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1322 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1323 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1324 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1325 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1326
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1327
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1328 // total size sz
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1329 for (int i=0; i<ndims; i++) {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1330 sz = sz * count[i];
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1331 sliced_dim_vector(i) = count[ndims-i-1];
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1332 //sliced_dim_vector(i) = count[i];
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1333 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1334
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1335
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1336 //cout << "start " << start[0] << endl;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1337 // need to take count and stride
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1338
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1339
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1340
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1341 //cout << "sz " << sz << endl;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1342 //cout << "sliced_dim_vector " << sliced_dim_vector(0) << " x " << sliced_dim_vector(1) << endl;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1343
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1344 switch (xtype)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1345 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1346 #define OV_NETCDF_GET_VAR_CASE(netcdf_type,c_type) \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1347 case netcdf_type: \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1348 { \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1349 Array < c_type > arr = Array < c_type >(sliced_dim_vector); \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1350 check_err(nc_get_vars(ncid, varid, start, count, stride, arr.fortran_vec())); \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1351 data = octave_value(arr); \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1352 break; \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1353 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1354
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1355 OV_NETCDF_GET_VAR_CASE(NC_BYTE,octave_int8)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1356 OV_NETCDF_GET_VAR_CASE(NC_UBYTE,octave_uint8)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1357 OV_NETCDF_GET_VAR_CASE(NC_SHORT,octave_int16)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1358 OV_NETCDF_GET_VAR_CASE(NC_USHORT,octave_uint16)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1359 OV_NETCDF_GET_VAR_CASE(NC_INT,octave_int32)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1360 OV_NETCDF_GET_VAR_CASE(NC_UINT,octave_uint32)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1361 OV_NETCDF_GET_VAR_CASE(NC_INT64,octave_int64)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1362 OV_NETCDF_GET_VAR_CASE(NC_UINT64,octave_uint64)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1363
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1364 OV_NETCDF_GET_VAR_CASE(NC_FLOAT,float)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1365 OV_NETCDF_GET_VAR_CASE(NC_DOUBLE,double)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1366
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1367 OV_NETCDF_GET_VAR_CASE(NC_CHAR, char)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1368
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1369 default:
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1370 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1371 error("unknown type %d" ,xtype);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1372 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1373
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1374 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1375
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1376 return data;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1377 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1378
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1379 DEFUN_DLD(netcdf_close, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1380 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1381 @deftypefn {Loadable Function} {} netcdf_close(@var{ncid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1382 Close the NetCDF file with the id @var{ncid}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1383 @end deftypefn\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1384 @seealso{netcdf_open}\n")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1385 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1386
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1387 if (args.length() != 1)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1388 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1389 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1390 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1391 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1392
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1393 int ncid = args(0).scalar_value();
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1394
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1395 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1396 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1397 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1398 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1399 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1400
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1401 check_err(nc_close(ncid));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1402 return octave_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1403 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1404
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1405
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1406
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1407 // int nc_inq_attname(int ncid, int varid, int attnum, char *name);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1408
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1409 DEFUN_DLD(netcdf_inqAttName, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1410 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1411 @deftypefn {Loadable Function} {@var{name} =} netcdf_inqAttName (@var{ncid},@var{varid},@var{attnum}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1412 Get the name of a NetCDF attribute.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1413 This function returns the name of the attribute with the id @var{attnum} of the variable \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1414 @var{varid} in the NetCDF file @var{ncid}. For global attributes @var{varid} can be \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1415 netcdf_getConstant(\"global\").\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1416 @seealso{netcdf_inqAttName}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1417 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1418 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1419 if (args.length() != 3) {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1420 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1421 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1422 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1423
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1424 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1425 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1426 int attnum = args(2).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1427 char name[NC_MAX_NAME+1];
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1428
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1429 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1430 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1431 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1432 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1433 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1434
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1435 check_err(nc_inq_attname(ncid, varid, attnum, name));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1436
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1437 return octave_value(std::string(name));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1438 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1439
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1440
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1441 DEFUN_DLD(netcdf_inqAttID, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1442 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1443 @deftypefn {Loadable Function} {@var{attnum} =} netcdf_inqAttID(@var{ncid},@var{varid},@var{attname}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1444 Return the attribute id @var{attnum} of the attribute named @var{attname} of the variable @var{varid} in the dataset @var{ncid}. \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1445 For global attributes @var{varid} can be \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1446 netcdf_getConstant(\"global\").\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1447 @seealso{netcdf_inqAttName}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1448 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1449 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1450 if (args.length() != 3)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1451 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1452 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1453 return octave_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1454 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1455 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1456 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1457 std::string attname = args(2).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1458 int attnum;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1459
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1460 if (error_state)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1461 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1462 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1463 return octave_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1464 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1465
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1466 check_err (nc_inq_attid (ncid, varid, attname.c_str(), &attnum));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1467
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1468 return octave_value(attnum);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1469 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1470
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1471
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1472 //int nc_inq_att (int ncid, int varid, const char *name,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1473 // nc_type *xtypep, size_t *lenp);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1474
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1475 DEFUN_DLD(netcdf_inqAtt, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1476 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1477 @deftypefn {Loadable Function} {[@var{xtype},@var{len}] = } netcdf_inqAtt(@var{ncid},@var{varid},@var{name}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1478 Get attribute type and length.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1479 @seealso{netcdf_inqAttName}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1480 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1481 {
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1482 if (args.length() != 3)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1483 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1484 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1485 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1486 }
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1487
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1488 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1489 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1490 std::string name = args(2).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1491 int xtype;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1492 size_t len;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1493 octave_value_list retval;
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1494
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1495 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1496 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1497 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1498 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1499 }
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1500
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1501 check_err(nc_inq_att(ncid, varid, name.c_str(), &xtype, &len));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1502
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1503 retval(0) = octave_value(xtype);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1504 retval(1) = octave_value(len);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1505 return retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1506 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1507
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1508
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1509 DEFUN_DLD(netcdf_getAtt, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1510 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1511 @deftypefn {Loadable Function} {@var{data} =} netcdf_getAtt (@var{ncid},@var{varid},@var{name}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1512 Get the value of a NetCDF attribute.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1513 This function returns the value of the attribute called @var{name} of the variable \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1514 @var{varid} in the NetCDF file @var{ncid}. For global attributes @var{varid} can be \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1515 netcdf_getConstant(\"global\").\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1516 @seealso{netcdf_putAtt}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1517 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1518 {
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1519 if (args.length() != 3)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1520 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1521 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1522 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1523 }
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1524
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1525 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1526 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1527 std::string attname = args(2).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1528 nc_type xtype;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1529 size_t len;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1530 octave_value data;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1531
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1532 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1533 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1534 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1535 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1536 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1537
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1538 check_err(nc_inq_att(ncid, varid, attname.c_str(), &xtype, &len));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1539
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1540 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1541 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1542 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1543 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1544
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1545 #define OV_NETCDF_GET_ATT_CASE(netcdf_type,c_type) \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1546 if (xtype == netcdf_type) \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1547 { \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1548 Array< c_type > arr = Array< c_type >(dim_vector(1,len)); \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1549 check_err(nc_get_att(ncid, varid, attname.c_str(), arr.fortran_vec())); \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1550 data = octave_value(arr); \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1551 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1552 OV_NETCDF_GET_ATT_CASE(NC_BYTE,octave_int8)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1553 OV_NETCDF_GET_ATT_CASE(NC_UBYTE,octave_uint8)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1554 OV_NETCDF_GET_ATT_CASE(NC_SHORT,octave_int16)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1555 OV_NETCDF_GET_ATT_CASE(NC_USHORT,octave_uint16)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1556 OV_NETCDF_GET_ATT_CASE(NC_INT,octave_int32)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1557 OV_NETCDF_GET_ATT_CASE(NC_UINT,octave_uint32)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1558 OV_NETCDF_GET_ATT_CASE(NC_INT64,octave_int64)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1559 OV_NETCDF_GET_ATT_CASE(NC_UINT64,octave_uint64)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1560
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1561 OV_NETCDF_GET_ATT_CASE(NC_FLOAT,float)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1562 OV_NETCDF_GET_ATT_CASE(NC_DOUBLE,double)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1563
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1564 OV_NETCDF_GET_ATT_CASE(NC_CHAR, char)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1565
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1566
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1567 return data;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1568 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1569
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1570
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1571 DEFUN_DLD(netcdf_putAtt, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1572 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1573 @deftypefn {Loadable Function} {} netcdf_putAtt (@var{ncid},@var{varid},@var{name},@var{data}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1574 Defines a NetCDF attribute.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1575 This function defines the attribute called @var{name} of the variable \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1576 @var{varid} in the NetCDF file @var{ncid}. The value of the attribute will be @var{data}. \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1577 For global attributes @var{varid} can be \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1578 netcdf_getConstant(\"global\").\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1579 @seealso{netcdf_getAtt}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1580 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1581 {
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1582 if (args.length() != 4)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1583 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1584 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1585 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1586 }
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1587
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1588 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1589 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1590 std::string attname = args(2).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1591 octave_value data = args(3);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1592
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1593 nc_type xtype;
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1594
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1595 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1596 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1597 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1598 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1599 }
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1600
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1601 // get matching netcdf type
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1602
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1603 if (data.is_string())
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1604 xtype = NC_CHAR;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1605 else if (data.is_int8_type())
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1606 xtype = NC_BYTE;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1607 else if (data.is_uint8_type())
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1608 xtype = NC_UBYTE;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1609 else if (data.is_int16_type())
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1610 xtype = NC_SHORT;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1611 else if (data.is_uint16_type())
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1612 xtype = NC_USHORT;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1613 else if (data.is_int32_type())
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1614 xtype = NC_INT;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1615 else if (data.is_uint32_type())
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1616 xtype = NC_UINT;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1617 else if (data.is_int64_type())
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1618 xtype = NC_INT64;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1619 else if (data.is_uint64_type())
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1620 xtype = NC_UINT64;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1621 else if (data.is_single_type())
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1622 xtype = NC_FLOAT;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1623 else
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1624 xtype = NC_DOUBLE;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1625
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1626 //cout << "xtype " << xtype << endl;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1627 size_t len = data.numel();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1628
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1629 switch (xtype)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1630 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1631 #define OV_NETCDF_PUT_ATT(netcdf_type,c_type,method) \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1632 case netcdf_type: \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1633 { \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1634 check_err(nc_put_att (ncid, varid, attname.c_str(), xtype, len, data.method().fortran_vec())); \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1635 break; \
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1636 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1637
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1638 OV_NETCDF_PUT_ATT(NC_BYTE, signed char, int8_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1639 OV_NETCDF_PUT_ATT(NC_UBYTE, unsigned char, uint8_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1640 OV_NETCDF_PUT_ATT(NC_SHORT, short, int16_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1641 OV_NETCDF_PUT_ATT(NC_USHORT, unsigned short, uint16_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1642 OV_NETCDF_PUT_ATT(NC_INT, int, int32_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1643 OV_NETCDF_PUT_ATT(NC_UINT, unsigned int, uint32_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1644 OV_NETCDF_PUT_ATT(NC_INT64, long long, int64_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1645 OV_NETCDF_PUT_ATT(NC_UINT64, unsigned long long, uint64_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1646
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1647 OV_NETCDF_PUT_ATT(NC_FLOAT, float, float_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1648 OV_NETCDF_PUT_ATT(NC_DOUBLE,double,array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1649
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1650 OV_NETCDF_PUT_ATT(NC_CHAR, char, char_array_value)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1651 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1652
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1653 /* check_err(nc_put_att (int ncid, int varid, const char *name, nc_type xtype,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1654 size_t len, const void *op));*/
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1655
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1656 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1657
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1658 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1659
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1660
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1661 DEFUN_DLD(netcdf_copyAtt, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1662 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1663 @deftypefn {Loadable Function} {} netcdf_copyAtt (@var{ncid},@var{varid},@var{name},@var{ncid_out},@var{varid_out}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1664 Copies the attribute named @var{old_name} of the variable @var{varid} in the data set @var{ncid} \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1665 to the variable @var{varid_out} in the data set @var{ncid_out}. \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1666 To copy a global attribute use netcdf_getConstant(\"global\") for @var{varid} or @var{varid_out}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1667 @seealso{netcdf_getAtt,netcdf_getConstant}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1668 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1669 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1670
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1671 if (args.length() != 5)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1672 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1673 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1674 return octave_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1675 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1676
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1677 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1678 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1679 std::string name = args(2).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1680 int ncid_out = args(3).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1681 int varid_out = args(4).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1682
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1683 if (error_state)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1684 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1685 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1686 return octave_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1687 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1688
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1689 check_err (nc_copy_att (ncid, varid, name.c_str(),
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1690 ncid_out, varid_out));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1691
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1692 return octave_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1693 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1694
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1695
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1696 DEFUN_DLD(netcdf_renameAtt, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1697 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1698 @deftypefn {Loadable Function} {} netcdf_renameAtt(@var{ncid},@var{varid},@var{old_name},@var{new_name}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1699 Renames the attribute named @var{old_name} of the variable @var{varid} in the data set @var{ncid}. @var{new_name} is the new name of the attribute.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1700 To rename a global attribute use netcdf_getConstant(\"global\") for @var{varid}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1701 @seealso{netcdf_copyAtt,netcdf_getConstant}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1702 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1703 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1704
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1705 if (args.length() != 4)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1706 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1707 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1708 return octave_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1709 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1710
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1711 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1712 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1713 std::string old_name = args(2).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1714 std::string new_name = args(3).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1715
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1716 if (error_state)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1717 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1718 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1719 return octave_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1720 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1721
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1722 check_err(nc_rename_att (ncid, varid, old_name.c_str(), new_name.c_str()));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1723
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1724 return octave_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1725 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1726
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1727
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1728 DEFUN_DLD(netcdf_delAtt, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1729 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1730 @deftypefn {Loadable Function} {} netcdf_delAtt(@var{ncid},@var{varid},@var{name}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1731 Deletes the attribute named @var{name} of the variable @var{varid} in the data set @var{ncid}. \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1732 To delete a global attribute use netcdf_getConstant(\"global\") for @var{varid}.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1733 @seealso{netcdf_defAtt,netcdf_getConstant}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1734 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1735 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1736
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1737 if (args.length() != 3)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1738 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1739 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1740 return octave_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1741 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1742
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1743 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1744 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1745 std::string name = args(2).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1746
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1747 if (error_state)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1748 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1749 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1750 return octave_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1751 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1752
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1753 check_err(nc_del_att (ncid, varid, name.c_str()));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1754
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1755 return octave_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1756 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1757
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1758
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1759 DEFUN_DLD(netcdf_inqVarID, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1760 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1761 @deftypefn {Loadable Function} {@var{varid} = } netcdf_inqVarID (@var{ncid},@var{name}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1762 Return the id of a variable based on its name.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1763 @seealso{netcdf_defVar,netcdf_inqVarIDs}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1764 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1765 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1766
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1767 if (args.length() != 2)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1768 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1769 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1770 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1771 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1772
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1773 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1774 std::string varname = args(1).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1775 int varid;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1776
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1777 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1778 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1779 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1780 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1781 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1782
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1783 check_err(nc_inq_varid(ncid,varname.c_str(), &varid));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1784
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1785 return octave_value(varid);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1786 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1787
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1788 DEFUN_DLD(netcdf_inqVarIDs, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1789 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1790 @deftypefn {Loadable Function} {@var{varids} = } netcdf_inqVarID (@var{ncid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1791 Return all variable ids.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1792 This functions returns all variable ids in a NetCDF file or NetCDF group.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1793 @seealso{netcdf_inqVarID}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1794 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1795 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1796
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1797 if (args.length() != 1)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1798 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1799 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1800 return octave_value ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1801 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1802
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1803 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1804 int nvars;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1805
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1806 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1807 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1808 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1809 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1810 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1811
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1812 check_err(nc_inq_varids(ncid, &nvars, NULL));
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1813
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1814 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1815 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1816 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1817 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1818
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1819 Array<int> varids = Array<int>(dim_vector(1,nvars));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1820 check_err(nc_inq_varids(ncid, &nvars, varids.fortran_vec()));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1821
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1822 return octave_value(varids);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1823 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1824
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1825 DEFUN_DLD(netcdf_inqVar, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1826 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1827 @deftypefn {Loadable Function} {[@var{name},@var{nctype},@var{dimids},@var{nattr}] = } netcdf_inqVarID (@var{ncid},@var{varid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1828 Inquires information about a NetCDF variable.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1829 This functions returns the @var{name}, the NetCDF type @var{nctype}, an array of dimension ids \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1830 @var{dimids} and the number of attributes @var{nattr} of the NetCDF variable. @var{nctype} in an \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1831 integer corresponding NetCDF constants.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1832 @seealso{netcdf_inqVarID,netcdf_getConstant}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1833 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1834 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1835
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1836 if (args.length() != 2)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1837 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1838 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1839 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1840 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1841
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1842 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1843 int varid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1844 char name[NC_MAX_NAME+1];
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1845 int ndims, dimids[NC_MAX_VAR_DIMS], natts;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1846 nc_type xtype;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1847 octave_value_list retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1848
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1849 if (error_state)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1850 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1851 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1852 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1853 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1854
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1855 check_err(nc_inq_varndims(ncid, varid, &ndims));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1856
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1857 if (error_state)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1858 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1859 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1860 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1861
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1862 check_err(nc_inq_var(ncid, varid, name, &xtype,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1863 &ndims, dimids, &natts));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1864
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1865 retval(0) = octave_value(std::string(name));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1866 retval(1) = octave_value(xtype);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1867
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1868 // copy output arguments
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1869 Array<double> dimids_ = Array<double>(dim_vector(1,ndims));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1870 for (int i = 0; i < ndims; i++)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1871 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1872 dimids_(i) = dimids[ndims-i-1];
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1873 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1874
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1875 retval(2) = octave_value(dimids_);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1876 retval(3) = octave_value(natts);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1877
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1878 return retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1879 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1880
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1881
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1882
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1883 DEFUN_DLD(netcdf_inqDim, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1884 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1885 @deftypefn {Loadable Function} {[@var{name},@var{length}] =} netcdf_inqDim(@var{ncid},@var{dimid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1886 Returns the name and length of a NetCDF dimension.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1887 @seealso{netcdf_inqDimID}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1888 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1889 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1890
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1891 if (args.length() != 2)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1892 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1893 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1894 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1895 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1896
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1897 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1898 int dimid = args(1).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1899 octave_value_list retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1900
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1901 if (! error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1902 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1903 char name[NC_MAX_NAME+1];
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1904 size_t length;
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1905 check_err(nc_inq_dim(ncid, dimid, name, &length));
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1906
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1907 retval(0) = octave_value(std::string(name));
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1908 retval(1) = octave_value(length);
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1909 }
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1910
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1911 return retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1912 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1913
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1914
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1915 DEFUN_DLD(netcdf_inqDimID, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1916 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1917 @deftypefn {Loadable Function} {@var{dimid} =} netcdf_inqDimID(@var{ncid},@var{dimname}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1918 Return the id of a NetCDF dimension.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1919 @seealso{netcdf_inqDim}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1920 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1921 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1922
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1923 if (args.length() != 2)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1924 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1925 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1926 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1927 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1928
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1929 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1930 std::string dimname = args(1).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1931 int id;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1932 octave_value_list retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1933
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1934 if (! error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1935 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1936 check_err(nc_inq_dimid(ncid, dimname.c_str(), &id));
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1937 retval(0) = octave_value(id);
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1938 }
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1939
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1940 return retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1941 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1942
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1943 // int nc_inq_dimids(int ncid, int *ndims, int *dimids, int include_parents);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1944 DEFUN_DLD(netcdf_inqDimIDs, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1945 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1946 @deftypefn {Loadable Function} {@var{dimids} =} netcdf_inqDimID(@var{ncid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1947 @deftypefnx {Loadable Function} {@var{dimids} =} netcdf_inqDimID(@var{ncid},@var{include_parents}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1948 Return the dimension ids defined in a NetCDF file.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1949 If @var{include_parents} is 1, the dimension ids of the parent group are also returned.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1950 Per default this is not the case (@var{include_parents} is 0).\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1951 @seealso{netcdf_inqDim}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1952 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1953 {
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1954 if (args.length() != 1 && args.length() != 2)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1955 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1956 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1957 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1958 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1959
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1960 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1961 int include_parents = 0;
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1962 if (args.length() == 2)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1963 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1964 include_parents = args(0).scalar_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1965 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1966
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1967 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1968 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1969 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1970 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1971 }
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1972
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1973 int ndims;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1974 check_err(nc_inq_ndims(ncid, &ndims));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1975 Array<int> dimids = Array<int>(dim_vector(1,ndims));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1976 check_err(nc_inq_dimids(ncid, &ndims, dimids.fortran_vec(),include_parents));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1977
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1978 return octave_value(dimids);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1979 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1980
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1981
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1982
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1983 // groups
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1985 //int nc_def_grp(int parent_ncid, const char *name, int *new_ncid);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1986
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1987 DEFUN_DLD(netcdf_defGrp, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1988 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1989 @deftypefn {Loadable Function} {@var{new_ncid} =} netcdf_defGrp(@var{ncid},@var{name}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1990 Define a group in a NetCDF file.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1991 @seealso{netcdf_inqGrps}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1992 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1993 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1994
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1995 if (args.length() != 2)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
1996 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1997 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1998 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
1999 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2000
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2001 int parent_ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2002 std::string name = args(1).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2003 int new_ncid;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2004
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2005 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2006 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2007 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2008 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2009 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2010
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2011 check_err(nc_def_grp(parent_ncid, name.c_str(), &new_ncid));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2012 return octave_value(new_ncid);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2013 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2014
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2015
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2016 // int nc_inq_grps(int ncid, int *numgrps, int *ncids);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2017 DEFUN_DLD(netcdf_inqGrps, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2018 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2019 @deftypefn {Loadable Function} {@var{ncids} =} netcdf_inqGrps(@var{ncid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2020 Return all groups ids in a NetCDF file.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2021 @seealso{netcdf_inqGrps}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2022 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2023 {
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2024 if (args.length() != 1)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2025 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2026 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2027 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2028 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2029
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2030 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2031 int numgrps;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2032
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2033 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2034 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2035 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2036 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2037 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2038
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2039 check_err(nc_inq_grps(ncid, &numgrps, NULL));
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2040
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2041 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2042 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2043 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2044 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2045
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2046 Array<int> ncids = Array<int>(dim_vector(1,numgrps));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2047 check_err(nc_inq_grps(ncid, NULL, ncids.fortran_vec()));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2048
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2049 return octave_value(ncids);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2050 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2051
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2052 //int nc_inq_grpname(int ncid, char *name);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2053 DEFUN_DLD(netcdf_inqGrpName, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2054 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2055 @deftypefn {Loadable Function} {@var{name} =} netcdf_inqGrpName(@var{ncid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2056 Return group name in a NetCDF file.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2057 @seealso{netcdf_inqGrps}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2058 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2059 {
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2060 if (args.length() != 1)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2061 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2062 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2063 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2064 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2065
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2066 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2067 char name[NC_MAX_NAME+1];
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2068
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2069 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2070 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2071 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2072 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2073 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2074
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2075 check_err(nc_inq_grpname(ncid, name));
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2076
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2077 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2078 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2079 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2080 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2081
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2082 return octave_value(std::string(name));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2083 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2084
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2085 //int nc_inq_grpname_full(int ncid, size_t *lenp, char *full_name);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2086 DEFUN_DLD(netcdf_inqGrpNameFull, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2087 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2088 @deftypefn {Loadable Function} {@var{name} =} netcdf_inqGrpNameFull(@var{ncid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2089 Return full name of group in NetCDF file.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2090 @seealso{netcdf_inqGrpName}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2091 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2092 {
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2093 if (args.length() != 1)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2094 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2095 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2096 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2097 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2098
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2099 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2100 size_t len;
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2101
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2102 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2103 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2104 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2105 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2106 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2107
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2108 check_err(nc_inq_grpname_len(ncid,&len));
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2109
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2110 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2111 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2112 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2113 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2114
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2115 char* name = new char[len+1];
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2116 octave_value retval;
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2117 check_err(nc_inq_grpname_full(ncid, &len, name));
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2118
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2119 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2120 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2121 delete name;
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2122 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2123 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2124
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2125 retval = octave_value(std::string(name));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2126 delete name;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2127 return retval;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2128 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2129
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2130 // int nc_inq_grp_parent(int ncid, int *parent_ncid);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2131 DEFUN_DLD(netcdf_inqGrpParent, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2132 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2133 @deftypefn {Loadable Function} {@var{parent_ncid} =} netcdf_inqGrpParent(@var{ncid}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2134 Return id of the parent group\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2135 @seealso{netcdf_inqGrpName}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2136 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2137 {
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2138 if (args.length() != 1)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2139 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2140 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2141 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2142 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2143
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2144 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2145 int parent_ncid;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2146
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2147 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2148 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2149 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2150 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2151 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2152
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2153 check_err(nc_inq_grp_parent(ncid, &parent_ncid));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2154 return octave_value(parent_ncid);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2155 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2156
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2157 // int nc_inq_grp_full_ncid(int ncid, char *full_name, int *grp_ncid);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2158 DEFUN_DLD(netcdf_inqGrpFullNcid, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2159 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2160 @deftypefn {Loadable Function} {@var{grp_ncid} =} netcdf_inqGrpFullNcid(@var{ncid},@var{name}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2161 Return the group id based on the full group name.\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2162 @seealso{netcdf_inqGrpName}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2163 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2164 {
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2165 if (args.length() != 2)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2166 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2167 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2168 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2169 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2170
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2171 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2172 std::string name = args(1).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2173 int grp_ncid;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2174
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2175 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2176 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2177 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2178 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2179 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2180
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2181 int format;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2182 check_err(nc_inq_format(ncid, &format));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2183
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2184 if (error_state)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2185 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2186 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2187 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2188
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2189 if (format == NC_FORMAT_CLASSIC || format == NC_FORMAT_64BIT)
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2190 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2191 if (name == "/")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2192 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2193 return octave_value(ncid);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2194 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2195 else
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2196 {
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2197 error("groups are not supported in this format");
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2198 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2199 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2200 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2201
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2202 // nc_inq_grp_full_ncid makes a segmentation fault if
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2203 // file is in non-HDF5 format
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2204 check_err(nc_inq_grp_full_ncid(ncid, name.c_str(),&grp_ncid));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2205 return octave_value(grp_ncid);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2206 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2207
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2208
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2209
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2210 // int nc_inq_ncid(int ncid, const char *name, int *grp_ncid);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2211 DEFUN_DLD(netcdf_inqNcid, args,,
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2212 "-*- texinfo -*-\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2213 @deftypefn {Loadable Function} {@var{grp_ncid} =} netcdf_inqNcid(@var{ncid},@var{name}) \n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2214 Return group id based on its name\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2215 @seealso{netcdf_inqGrpFullNcid}\n\
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2216 @end deftypefn")
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2217 {
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2218 if (args.length() != 2)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2219 {
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2220 print_usage ();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2221 return octave_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2222 }
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2223
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2224 int ncid = args(0).scalar_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2225 std::string name = args(1).string_value();
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2226 int grp_ncid;
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2227
11993
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2228 if (error_state)
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2229 {
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2230 print_usage ();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2231 return octave_value();
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2232 }
58964b699239 clean-up formatting
abarth93
parents: 11990
diff changeset
2233
11984
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2234 check_err(nc_inq_ncid(ncid, name.c_str(), &grp_ncid));
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2235 return octave_value(grp_ncid);
2dcf60b06fb2 fix texinfo documentation (3)
abarth93
parents:
diff changeset
2236 }