annotate main/netcdf/src/__netcdf__.cc @ 12707:543825a41fd6 octave-forge

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