103 |
nc=netcdf(char(eachfile),'read'); |
nc=netcdf(char(eachfile),'read'); |
104 |
nciters = nc{'iter'}(:); |
nciters = nc{'iter'}(:); |
105 |
if isempty(nciters), nciters = nc{'T'}(:); end |
if isempty(nciters), nciters = nc{'T'}(:); end |
|
else |
|
|
nc=netcdf.open(char(eachfile),'NC_NOWRITE'); |
|
|
nciters = ncgetvar(nc,'iter'); |
|
|
if isempty(nciters), nciters = ncgetvar(nc,'T'); end |
|
|
end |
|
|
iters = [iters,nciters']; |
|
|
if usemexcdf |
|
106 |
close(nc); |
close(nc); |
107 |
else |
else |
108 |
netcdf.close(nc); |
% the parser complains about "netcdf.open" when the matlab netcdf |
109 |
|
% API is not available, even when it is not used so we have to |
110 |
|
% avoid the use of "netcdf.open", etc in this function |
111 |
|
nciters = ncgetvar(char(eachfile),'iter'); |
112 |
|
if isempty(nciters), nciters = ncgetvar(char(eachfile),'T'); end |
113 |
end |
end |
114 |
|
iters = [iters,nciters']; |
115 |
end |
end |
116 |
iters = unique(iters'); |
iters = unique(iters'); |
117 |
end |
end |
126 |
S=rdmnc_local(nc,varlist,iters,S,dBug); |
S=rdmnc_local(nc,varlist,iters,S,dBug); |
127 |
close(nc); |
close(nc); |
128 |
else |
else |
129 |
nc=netcdf.open(char(eachfile),'NC_NOWRITE'); |
% the parser complains about "netcdf.open" when the matlab netcdf |
130 |
S=rdmnc_local_matlabAPI(char(eachfile),nc,varlist,iters,S,dBug); |
% API is not available, even when it is not used so we have to |
131 |
netcdf.close(nc); |
% avoid the use of "netcdf.open", etc in this function |
132 |
|
S=rdmnc_local_matlabAPI(char(eachfile),varlist,iters,S,dBug); |
133 |
end |
end |
134 |
end |
end |
135 |
|
|
283 |
|
|
284 |
return |
return |
285 |
|
|
286 |
function [S] = rdmnc_local_matlabAPI(fname,nc,varlist,iters,S,dBug) |
function [S] = rdmnc_local_matlabAPI(fname,varlist,iters,S,dBug) |
287 |
|
|
288 |
fiter = ncgetvar(nc,'iter'); % File iterations present |
fiter = ncgetvar(fname,'iter'); % File iterations present |
289 |
if isempty(fiter), fiter = ncgetvar(nc,'T'); end |
if isempty(fiter), fiter = ncgetvar(fname,'T'); end |
290 |
if isinf(iters); iters = fiter(end); end |
if isinf(iters); iters = fiter(end); end |
291 |
if isnan(iters); iters = fiter; end |
if isnan(iters); iters = fiter; end |
292 |
[fii,dii] = ismember(fiter,iters); fii = find(fii); % File iteration index |
[fii,dii] = ismember(fiter,iters); fii = find(fii); % File iteration index |
296 |
fprintf(' ; dii='); fprintf(' %i',dii); fprintf(' \n'); |
fprintf(' ; dii='); fprintf(' %i',dii); fprintf(' \n'); |
297 |
end |
end |
298 |
|
|
299 |
|
% now open the file for reading |
300 |
|
nc = netcdf.open(fname,'NC_NOWRITE'); |
301 |
% get basic information about netcdf file |
% get basic information about netcdf file |
302 |
[ndims nvars natts dimm] = netcdf.inq(nc); |
[ndims nvars natts dimm] = netcdf.inq(nc); |
303 |
|
|
405 |
end |
end |
406 |
|
|
407 |
end % for ivar |
end % for ivar |
408 |
|
|
409 |
|
% close the file |
410 |
|
netcdf.close(nc); |
411 |
|
|
412 |
if isempty(S) |
if isempty(S) |
413 |
error('Something didn''t work!!!'); |
error('Something didn''t work!!!'); |
414 |
end |
end |
415 |
|
|
416 |
return |
return |
417 |
|
|
418 |
function vf = ncgetvar(nc,varname) |
function vf = ncgetvar(fname,varname) |
419 |
% read a netcdf variable |
% read a netcdf variable |
420 |
|
|
421 |
% find out basics about the files |
nc=netcdf.open(fname,'NC_NOWRITE'); |
422 |
|
% find out basics about the files |
423 |
[ndims nvars natts dimm] = netcdf.inq(nc); |
[ndims nvars natts dimm] = netcdf.inq(nc); |
424 |
vf = []; |
vf = []; |
425 |
varid = []; |
varid = []; |
435 |
else |
else |
436 |
% do nothing |
% do nothing |
437 |
end |
end |
438 |
|
netcdf.close(nc); |
439 |
|
|
440 |
return |
return |
441 |
|
|
442 |
function misval = ncgetmisval(nc,varid) |
function misval = ncgetmisval(nc,varid) |