Global Index (short | long) | Local contents | Local Index (short | long)
[heat, lat, lon, depth, middepth] = getheat(lims, lev, tim, varn);
[heat, lat, lon, depth, middepth] = getheat(lims, lev, tim, varn); lev = level indices over which to get the heat content tim = time period lims = lat-lon frame varn = variable to be averaged
function [heat, lat, lon, depth, middepth] = getheat(lims, lev, tim, varn); cdback = eval('cd'); cd /home/disk/hayes2/dvimont/csiro/data if nargin < 4; varn = 'temp'; end; varn temp = getnc(varn, lims, lev, tim); [lat, lon, depth] = getll(varn, lims); [ntim, nlev, nlat, nlon] = size(temp); d1 = depth(1); middepth = [0]; for i = 1:(length(depth)-1); middepth = [middepth; depth(i)+d1]; d1 = depth(i+1) - depth(i) - d1; end middepth = [middepth; depth(length(depth))+d1]; wgt = diff(middepth); temp = shiftdim(temp, 1); temp = reshape(temp, nlev, nlat*nlon*ntim); heat = wgt(lev)' * temp; heat = shiftdim(reshape(heat, nlat, nlon, ntim), 2); % If necessary, Convert heat to units J / m^2 if strcmp(varn, 'temp'); heat = heat * 1000 * 4.218e3; else heat = heat ./ sum(wgt(lev)); end eval(['cd ' cdback]);