Documentation of vert_vptb_wptb


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


Function Synopsis

[vdtdy, wdtdz] = ...

Help text


  [vdtdy, wdtdz] = ...
              vert_vptb_wptb(pcs, lims, lags);


Cross-Reference Information

This function calls This function is called by

Listing of function vert_vptb_wptb

function [vdtdy, wdtdz] = ...
              vert_vptb_wptb(pcs, lims, lags);

cdtem = ['cd ' eval('pwd')];

%cd ~/matlab/CSIRO/Thesis/Data
%load LP9_detrend_L1-7_EOF_yr101-1000.mat

%lims = [150 205 -60 60];
tim = 101:1000;
%lags = -30:2:30;

tbar = getnc('temp', lims, 1:10, tim);
v = getnc('v', lims, 1:10, tim);
w = getnc('wl', lims, 1:9, tim);

[latt, lont, deptht] = getll('temp', lims);
[latv, lonv] = getll('v', lims);
[latw, lonw, depthw] = getll('wl', lims);

tbar = squeeze(mean(tbar));
v = detrend(v);
vreg = 1e-2*regress_eof(v, pcs, lags);
w = detrend(w);
wreg = 1e-6*regress_eof(w, pcs, lags);

%  Get dtdy

[nlev, nlat, nlon] = size(tbar);
tbar2 = (tbar(:,:,1:(nlon-1)) + tbar(:,:,2:nlon))/2;
[nlev, nlat, nlon] = size(tbar2);

global DEGREE RADIAN RADUS
for lind = 1:nlev;
  ty = squeeze(tbar2(lind, :, :));
  [dtdy(lind,:,:) temlat] = sph_grady1(ty, RADIAN*latt, RADIAN*lonv, 0);
end

nlag = size(vreg, 1);
for i = 1:nlag;
  vdtdy(i,:,:,:) = squeeze(vreg(i,:,:,:)) .* dtdy;
end

%  Get dtdz

[nlev, nlat, nlon] = size(tbar);
dz = diff(deptht);
tbar2 = reshape(tbar, nlev, nlat*nlon);
dtdz = -1*diff(tbar2) ./ (dz * ones(1, nlat*nlon));
dtdz = reshape(dtdz, nlev-1, nlat, nlon);

for i = 1:nlag;
  wdtdz(i,:,:,:) = squeeze(wreg(i,:,:,:)) .* dtdz;
end

eval(cdtem);