/[MITgcm]/MITgcm/utils/matlab/rdmnc.m
ViewVC logotype

Diff of /MITgcm/utils/matlab/rdmnc.m

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.20 by mlosch, Fri May 14 11:29:16 2010 UTC revision 1.21 by mlosch, Sun May 16 08:56:43 2010 UTC
# Line 103  if isempty(iters) Line 103  if isempty(iters)
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
# Line 128  for ieachfile=1:length(files) Line 126  for ieachfile=1:length(files)
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    
# Line 284  function [S] = rdmnc_local(nc,varlist,it Line 283  function [S] = rdmnc_local(nc,varlist,it
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
# Line 297  function [S] = rdmnc_local_matlabAPI(fna Line 296  function [S] = rdmnc_local_matlabAPI(fna
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    
# Line 404  function [S] = rdmnc_local_matlabAPI(fna Line 405  function [S] = rdmnc_local_matlabAPI(fna
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 = [];
# Line 430  function vf = ncgetvar(nc,varname) Line 435  function vf = ncgetvar(nc,varname)
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)

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.21

  ViewVC Help
Powered by ViewVC 1.1.22