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)