Documentation of getlev


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


Function Synopsis

[x] = getlev(aray,lev);

Listing of function getlev

function [x] = getlev(aray,lev);
global XAX YAX l_pres ps;
psa = [4.8093 13.0731 32.5591 63.9471 81.6768 78.0201 73.3671 67.6476 60.8624 53.1095 44.5995 35.6607 26.7266 18.3069 10.9421 5.1470 1.3519 0];
psb = [0 0 0 0 17.3664 60.6928 115.8237 183.5918 263.9851 355.8459 456.6760 562.5875 668.4428 768.2030 855.4653 924.1285 969.0938 992.5282];
x_up = zeros(12,length(YAX),length(XAX));
x_lo = zeros(12,length(YAX),length(XAX));
p_up = zeros(12,length(YAX),length(XAX));
p_lo = zeros(12,length(YAX),length(XAX));
if (lev <= psa(4))
  if (lev > psa(3))
    x_up = squeeze(aray(:,3,:,:));
    x_lo = squeeze(aray(:,4,:,:));
    p_up = squeeze(l_pres(:,3,:,:));
    p_lo = squeeze(l_pres(:,4,:,:));
  elseif (lev > psa(2))
    x_up = squeeze(aray(:,2,:,:));
    x_lo = squeeze(aray(:,3,:,:));
    p_up = squeeze(l_pres(:,2,:,:));
    p_lo = squeeze(l_pres(:,3,:,:));
  elseif (lev >= psa(1))
    x_up = squeeze(aray(:,1,:,:));
    x_lo = squeeze(aray(:,2,:,:));
    p_up = squeeze(l_pres(:,1,:,:));
    p_lo = squeeze(l_pres(:,2,:,:));
  end
else
  psx = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
  psx(5:18) = 1e5*(lev - psa(5:18))./psb(5:18);
  xps = ps >= psx(5);
  x_up = x_up + xps.*squeeze(aray(:,4,:,:));
  x_lo = x_lo + xps.*squeeze(aray(:,5,:,:));
  p_up = p_up + xps.*squeeze(l_pres(:,4,:,:));
  p_lo = p_lo + xps.*squeeze(l_pres(:,5,:,:));
  for l = 6:18
    xps = (ps >= psx(l)) & (ps < psx(l-1));
    x_up = x_up + xps.*squeeze(aray(:,l-1,:,:));
    x_lo = x_lo + xps.*squeeze(aray(:,l,:,:));
    p_up = p_up + xps.*squeeze(l_pres(:,l-1,:,:));
    p_lo = p_lo + xps.*squeeze(l_pres(:,l,:,:));
  end
end
x = x_up + (lev*100 - p_up).*(x_lo - x_up)./(p_lo - p_up);