Global Index (short | long) | Local contents | Local Index (short | long)
[wdtdz, lat_out, lon_out, depth_out] = ...
[wptb, lat_out, lon_out, depth_out] = ... get_wprime_dtbardz(pcs, lims, nfrm, tim, lev);
This function calls | This function is called by |
---|---|
function [wdtdz, lat_out, lon_out, depth_out] = ... get_wprime_dtbardz(pcs, lims, nfrm, tim, lev); %lims = [117.5 169 7.5 24]; if nargin == 1; lims = [110 300 -60 60]; nfrm = 6; tim = 101:550; lev = 1; elseif nargin == 2; nfrm = 6; tim = 101:550; lev = 1; elseif nargin == 3; tim = 101:550; lev = 1; elseif nargin == 4; lev = 1; end if length(lev) > 1; error('Single levels only') end; cdtem = ['cd ' eval('pwd')]; % Now get tbar tbar = getnc('temp', lims, [lev lev+1], tim); [latt, lont, deptht] = getll('temp', lims); tbar = squeeze(mean(tbar)); [nlev, nlat, nlon] = size(tbar); % Next, get wprime [wprime, we] = getnc('wl', 'we', lims, lev, tim); [latw, lonw, depthw] = getll('wl', lims); wprime = wprime + we; [wprime, wbar] = remove_mean(wprime/1e6); [ntim, nlat, nlon] = size(wprime); % Assume PCS are sent in the command line %cd /home/disk/hayes2/dvimont/csiro/matlab_data/Heat_Content %load LP10_L1-7_CEOF.mat; tit = 'Lowpass Filtered Data ( > 10 Years )'; %load HP8_L1-7_CEOF.mat; tit = 'Highpass Filtered Data ( < 8 Years )'; %load RAW_L1-7_CEOF.mat; tit = 'Unfiltered Data'; % Get regressions if isreal(pcs); wreg = regress_eof(wprime, pcs, nfrm); else wreg = regress_ceof(wprime, pcs, nfrm); end [nfrm, nlev, nlat, nlon] = size(wreg); % First, get dtdz % Interpolate to depthw, which is closer to temz. This makes a smoother % interpolation, and will hopefully be more exact. dz = diff(deptht([lev lev+1])); temz = deptht(lev) + 0.5*dz; dtdz = squeeze(diff(tbar))./dz; nlev = nlev - 1; % Get wdtdz for i = 1:nfrm; wdtdz(i,:,:) = -1 * squeeze(wreg(i,:,:)) .* dtdz; end lat_out = latw; lon_out = lonw; depth_out = depthw(lev); eval(cdtem);