Global Index (short | long) | Local contents | Local Index (short | long)
[varargout] = getc(varargin);
[out1, ...] = getc(var1, ... , xylim, lev, tim); tim = time indices lev = level indices xylim = x and y limits
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);