Documentation of vert_vdtdy_wdtdz


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


Function Synopsis

[vdtdy, wdtdz] = ...

Help text


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


Cross-Reference Information

This function calls This function is called by

Listing of function vert_vdtdy_wdtdz

function [vdtdy, wdtdz] = ...
              vert_vdtdy_wdtdz(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;

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

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

vbar = 1e-2*squeeze(mean(vbar));
wbar = 1e-6*squeeze(mean(wbar));

temp = detrend(temp);
treg = regress_eof(temp, pcs, lags);

%  Get dtdy

[nlag, nlev, nlat, nlon] = size(treg);
treg2 = (treg(:,:,:,1:(nlon-1)) + treg(:,:,:,2:nlon))/2;
[nlag, nlev, nlat, nlon] = size(treg2);

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

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

%  Get dtdz

[nlag, nlev, nlat, nlon] = size(treg);
dz = diff(deptht);
treg2 = reshape(shiftdim(treg, 1), nlev, nlat*nlon*nlag);
dtdz = -1*diff(treg2) ./ (dz * ones(1, nlat*nlon*nlag));
dtdz = shiftdim(reshape(dtdz, nlev-1, nlat, nlon, nlag), 3);

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

eval(cdtem);