Global Index (short | long) | Local contents | Local Index (short | long)
[vdtdy, wdtdz] = ...
[vdtdy, wdtdz] = ... vert_vdtdy_wdtdz(pcs, lims, lags);
This function calls | This function is called by |
---|---|
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);