Pseudo code (IDL format) for mapping from fine to coarser pressure grid Function make_map, pfine, lev_coarse Pfine = array of fine pressure levels Lev_coarse = array of indices for coarse pressure levels Nfine = # fine levels Ncoarse = # coarse levels map = dblarr(nfine,ncoarse) for i = 0,ncoarse-2 do begin for j = lev_coarse(i),lev_coarse(i+1)-1 do begin xdelta_p = alog(pfine(lev_coarse(i+1))) - alog(pfine(lev_coarse(i))) xcoeff = 1. - (alog(pfine(j)) - alog(pfine(lev_coarse(i))))/xdelta_p map(j,i) = xcoeff endfor endfor for i = 1,ncoarse-1 do begin for j = lev_coarse(i-1)+1,lev_coarse(i) do begin xdelta_p = alog(pfine(lev_coarse(i))) - alog(pfine(lev_coarse(i-1))) xcoeff = 1. - (-alog(pfine(j)) + alog(pfine(lev_coarse(i))))/xdelta_p map(j,i) = xcoeff endfor endfor return,map