Global Index (short | long) | Local contents | Local Index (short | long)
First, get ubar and vbar
This script calls | |
---|---|
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