Documentation of w_intbar_dHCprimedz


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


Help text

  First, get ubar and vbar

Cross-Reference Information

This script calls

Listing of script w_intbar_dHCprimedz


clear
for biff2 = 1:3;
tim = 101:550;
ctlim = [108 302 -62 62];
biff = 7;
lev = 1:biff+1;
cd /home/disk/hayes2/dvimont/csiro/data

filin = 'ul_L1-10.nc';
nc = netcdf(filin, 'nowrite');
  latu = nc{'latitude'}(:);
  lonu = nc{'longitude'}(:);
  [xk, yk] = keep_var(ctlim, lonu, latu);
  ubar = nc{'u'}(tim,lev,yk,xk);
  mv = nc{'u'}.missing_value(:);
nc = close(nc);
ubar(ubar == mv) = NaN;
ubar = squeeze(mean2(ubar))/100;
latu = latu(yk); lonu = lonu(xk);

filin = 'vl_L1-10.nc';
nc = netcdf(filin, 'nowrite');
  vbar = nc{'v'}(tim,lev,yk,xk);
  mv = nc{'v'}.missing_value(:);
nc = close(nc);
vbar(vbar == mv) = NaN;
vbar = squeeze(mean2(vbar))/100;

%  Now get tprime

cd /home/disk/hayes2/dvimont/csiro/data
filin = 'temp_L1-10.nc';
nc = netcdf(filin, 'nowrite');
  depth = nc{'depth'}(:);
  latt = nc{'latitude'}(:);
  lont = nc{'longitude'}(:);
  [xk, yk] = keep_var(ctlim, lont, latt);
  temp = nc{'temp'}(tim, lev, yk, xk);
  mv = nc{'temp'}.missing_value(:);
nc = close(nc);
temp(temp == mv) = NaN;
latt = latt(yk); lont = lont(xk);
temp = squeeze(temp);

depth = depth/100;
[temp, tbar] = remove_mean(temp);
[ntim, nlev, nlat, nlon] = size(temp);

%  Load CPCs

cd /home/disk/hayes2/dvimont/csiro/matlab_data/Heat_Content
if biff2 == 1;
  load LP10_L1-7_CEOF.mat; tit = 'Lowpass Filtered Data ( > 10 Years )';
  ptit = 'LP10';
elseif biff2 == 2;
  load HP8_L1-7_CEOF.mat; tit = 'Highpass Filtered Data ( < 8 Years )';
  ptit = 'HP8';
elseif biff2 == 3;
  load RAW_L1-7_CEOF.mat; tit = 'Unfiltered Data';
  ptit = 'RAW';
end

%  Get regressions

lag = 0; lg = lag*pi/180; lg2 = 1;
num = 1; lind = 1;
nfrm = 6;

%  Store all regressions under one variable

j = sqrt(-1);
timeseries = sqrt(2)*pcs(:,num)./std(pcs(:,num));
temp = reshape(temp, ntim, nlev*nlat*nlon);
clear temtim treg
for i = 1:nfrm
  wgt = conj(exp(j * ((i-1) * pi/(lg2*nfrm) + lg) ));
  temtim(:,i) = squeeze(real(wgt .* timeseries));
  treg(i, :) = temtim(:,i)' * temp ./ ntim;
end
treg = reshape(treg, nfrm, nlev, nlat, nlon);
temp = reshape(temp, ntim, nlev, nlat, nlon);

%  Get div(ubar);

clear divu lat2 lon2
for j = 1:nlev;
  [divu(j,:,:), lat2, lon2] = sph_div1(squeeze(ubar(j,:,:)), ...
                                       squeeze(vbar(j,:,:)), latu, lonu, 0, 1);
end

%  Get vvel (vvel @ lev x = sum(vvel(1:x,:,:))

[nlev, nlat, nlon] = size(divu);
d1 = depth(1);
depthw = [];
for i = 1:nlev;
  depthw = [depthw; depth(i)+d1];
  d1 = depth(i+1) - depth(i) - d1;
end
dz = diff([0; depthw]);
dz = dz(1:nlev) * ones(1, nlat*nlon);
dz = reshape(dz, nlev, nlat, nlon);
vvel = divu(:,:,:) .* dz;

%  Interpolate to regular depth

depthw = [0; depthw(1:nlev)];
vvel = [zeros(size(vvel(1,:,:))); vvel];
vvel = reshape(vvel, nlev+1, nlat*nlon);
vvel = cumsum(vvel);

clear vvel2
for i = 1:nlat*nlon;
  vvel2(:,i) = interp1(depthw, vvel(:,i), depth(1:biff));
end
vvel2 = reshape(vvel2, biff, nlat, nlon);

%  Get dtdz

[tem, nlev, nlat, nlon] = size(treg);
temp2  = reshape(shiftdim(treg, 1), nlev, nlat*nlon*tem);
dz = diff(depth(1:nlev)) * ones(1, nlat*nlon*tem);
dzdepth = depth(1:(nlev-1)) + 0.5*diff(depth(1:nlev));
dtdz = diff(temp2) ./ dz;
dtdz = [dtdz(1,:); dtdz];

clear dtdz2
for i = 1:nlat*nlon*tem;
  dtdz2(:,i) = interp1([0; dzdepth], dtdz(:,i), depth(1:biff));
end
dtdz2 = shiftdim(reshape(dtdz2, biff, nlat, nlon, nfrm), 3);

%  Integrate vertically

vvel2 = reshape(vvel2, biff, nlat*nlon);
dtdz2 = reshape(dtdz2, nfrm, biff, nlat*nlon);
clear wdhdz
for i = 1:nfrm;
  wdhdz(i,:) = diff(depthw(1:(biff+1)))' * (squeeze(dtdz2(i,:,:)) .* vvel2);
end
wdhdz = reshape(wdhdz, nfrm, nlat, nlon);




%  Alternate method

clear

tim = 101:550;
lims = [106 304 -62.5 62.5];
lev = 1:7;
nfrm = 6;
lag = 0;

% Load the PCs

%for biff2 = 1:2;
biff2 = 3;
cd /home/disk/hayes2/dvimont/csiro/matlab_data/Heat_Content
if biff2 == 1;
  load LP10_L1-7_CEOF.mat; tit = 'Lowpass Filtered Data ( > 10 Years )';
  ptit = 'LP10';
elseif biff2 == 2;
  load HP8_L1-7_CEOF.mat; tit = 'Highpass Filtered Data ( < 8 Years )';
  ptit = 'HP8';
elseif biff2 == 3;
  load RAW_L1-7_CEOF.mat; tit = 'Unfiltered Data';
  ptit = 'RAW';
end

%  Get wbdtdz

cd /home/disk/tao/dvimont/matlab/CSIRO/Heat
   [wdhdz, lat_out, lon_out, depth_out] = ...
           get_wbar_dtprimedz(pcs, lims, nfrm, tim, lev);

%  Plot the data

default_global; XAX = lon_out; YAX = lat_out; FRAME = [110 300 -60 60];

figure(1); figure_orient;
cint = 1; clev = [-50:cint:-cint cint:cint:50];
for i = 1:nfrm
  tem = -1 * squeeze(wdhdz(i,:,:));
  subplot(3,2,i);
    gcont(tem, clev);
    dc2(tem)
  if i > 4;
    xlabel(['Contour Interval:  ' num2str(cint) ' W m^-^2']);
  end
end
subplot(3,2,3);
  ylabel([tit ':  Vertical Advection of HC'' by Wbar;  '...
          'Depth = 0:' num2str(depth_out(max(lev))) 'm']);

cd /home/disk/tao/dvimont/matlab/CSIRO/Heat/Plot_HCadv
eval(['print -dps2 ' ptit '_wbar_dHCprimedz_yr1.ps'])

end