Documentation of getnc


Global Index (short | long) | Local contents | Local Index (short | long)


Function Synopsis

[varargout] = getc(varargin);

Help text


  [out1, ...] = getc(var1, ... , xylim, lev, tim);

  tim = time indices
  lev = level indices
  xylim = x and y limits


Cross-Reference Information

This function calls This function is called by

Listing of function getnc

function [varargout] = getc(varargin);

nvar = 0;
for i = 1:nargin;
  if isstr(varargin{i});
    nvar = nvar + 1;
  end
end

xylim = [110 300 -60 60]; lev = 1; tim = 101:550;

if nargin < nargout;
  error('Input and output arguments must match');
end

if nargin > nargout; xylim = varargin{nvar+1}; end;
if nargin > nargout+1; lev = varargin{nvar+2}; end;
if nargin > nargout+2; tim = varargin{nvar+3}; end;

if nargin > nargout+3;
  error('Too many input arguments');
end

cdtem = ['cd ' eval('pwd')];
cd /home/disk/hayes2/dvimont/csiro/data

for i = 1:nvar;

  if strcmp(varargin{i}, 'wl') | strcmp(varargin{i}, 'we');
    filin = [varargin{i} '_L2-10.nc'];
  elseif strcmp(varargin{i}, 'heat');
    filin = 'heat_flux_A_1000_years.nc';
  elseif strcmp(varargin{i}, 'taux') | ...
         strcmp(varargin{i}, 'tauy') | ...
         strcmp(varargin{i}, 'z250');
    filin = [varargin{i} '_A_1000_years.nc'];
  else
    filin = [varargin{i} '_L1-10.nc'];
  end
  
  nc = netcdf(filin, 'nowrite');
    lat = nc{'latitude'}(:);
    lon = nc{'longitude'}(:);
    [xk, yk] = keep_var(xylim, lon, lat);

    if strcmp(varargin{i}, 'heat');
      tem = nc{'stfht'}(tim, yk, xk);
      mv = nc{'stfht'}.missing_value(:);
     elseif strcmp(varargin{i}, 'taux');
      tem = nc{'smfzon'}(tim, yk, xk);
      mv = nc{'smfzon'}.missing_value(:);
    elseif strcmp(varargin{i}, 'tauy');
      tem = nc{'smfmer'}(tim, yk, xk);
      mv = nc{'smfmer'}.missing_value(:);
    elseif strcmp(varargin{i}, 'z250');
      tem = nc{varargin{i}}(tim, yk, xk);
      mv = nc{varargin{i}}.missing_value(:);
    else
      tem = nc{varargin{i}}(tim, lev, yk, xk);
      depth = nc{'depth'}(lev);
      mv = nc{varargin{i}}.missing_value(:);
    end
  nc = close(nc);
  tem(tem == mv) = NaN;
  varargout{i} = squeeze(tem);

end

eval(cdtem);