Global Index (short | long) | Local contents | Local Index (short | long)
[ppat, npat, pat, clim] = reg_ct(filin, var_nam, lev);
[ppat, npat, pat, clim] = reg_ct(filin, var_nam, lev);
| This function calls | This function is called by |
|---|---|
function [ppat, npat, pat, clim] = reg_ct(filin, var_nam, lev);
curdir = cd;
cd /home/disk/hayes2/dvimont/data
load ct_gr.mat
cd /home/disk/tao/data/nmc.reanalysis/monthly
%filin = 'prate.mon.mean.nc';
%var_nam = 'prate';
%filin = 'vwnd.mon.mean.nc';
%var_nam = 'vwnd';
%lev = 250;
nc = netcdf(filin, 'nowrite');
if lev ~= 1;
levs = nc{'level'}(:);
lind = find(levs == lev);
var = squeeze(nc{var_nam}(1:480,lind,:,:));
else
var = nc{var_nam}(1:480,:,:);
end
lat = nc{'lat'}(:);
lon = nc{'lon'}(:);
add_offset = nc{var_nam}.add_offset(:);
scale_factor = nc{var_nam}.scale_factor(:);
nc = close(nc);
var = var * scale_factor;
var = var + add_offset;
get_global;
kp = sort([1:12:480 2:12:480 12:12:480]);
%kp = 1:408;
var = var(kp,:,:);
[ntimw, nlat, nlon] = size(var);
temct = ctstar(kp);
i = 0;
clear clim
for m = 1:3;
i = i+1;
clim(i,:,:) = mean(var(m:3:ntimw,:,:));
climct(i) = mean(temct(m:3:ntimw));
end
x = zeros(ntimw,nlat,nlon);
for m = 1:ntimw;
l=rem(m-1,3)+1;
var(m,:,:) = var(m,:,:) - clim(l,:,:);
temct(m) = temct(m) - climct(l);
end;
%temct = ctstar(kp);
%temct = -1*gr(kp);
temct = (temct-mean(temct))/std(temct);
var = reshape(var, ntimw, nlat*nlon);
tem = temct;
kpt = find(temct > 0);
tem(kpt) = zeros(size(kpt));
npat = reshape((tem' * var/sum(tem)), nlat, nlon);
tem = temct;
kpt = find(temct < 0);
tem(kpt) = zeros(size(kpt));
ppat = reshape((tem' * var/sum(tem)), nlat, nlon);
pat = reshape((temct' * var/ntimw),nlat,nlon);
clim = squeeze(mean(clim));
curdir = ['cd ' curdir];
eval(curdir)