Calculates omega [vertical pressure velocity] using the model diagnostic method.
function omega_ccm ( u : numeric, v : numeric, div : numeric, dpsl : numeric, dpsm : numeric, pmid : numeric, pdel : numeric, psfc : numeric, hybdif [*] : numeric, hybm [*] : numeric, nprlev  : integer ) return_val : numeric
An array of 3 or 4 dimensions containing zonal wind component. The order of the dimensions is specific. The three rightmost dimensions must be level x lat x lon [e.g. U(time,lev,lat,lon)]. The order of the level dimension must be top-to-bottom.v
An array of 3 or 4 dimensions containing meridional wind component. Same dimension structure as u.div
An array of 3 or 4 dimensions containing divergence. Same dimension structure as u.dpsl
An array of 3 or 4 dimensions containing longitudinal component of grad ln(psfc). Same dimension structure as u.dpsm
An array of 3 or 4 dimensions containing latitudinal component of grad ln(pfc). Same dimension structure as u.pmid
An array of 3 or 4 dimensions containing mid-level pressure values. Same dimension structure as u.pdel
An array of 3 or 4 dimensions containing layer pressure thickness values. Same dimension structure as u.psfc
An array of 2 or 3 dimensions containing surface pressure [Pa]. The two rightmost dimensions must be lat x lon [e.g. PSFC(time,lat,lon)].hybdif
A one-dimensional array containing the difference between the hybrid interface coefficients [eg, hybi(k+1)-hybi(k)]. The size is the size of the level dimension of u. The order must be top-to-bottom.hybm
A one-dimensional array containing the hybrid B coefficients. Must have the same dimension as the level dimension of u. The order must be top-to-bottom.nprlev
Number of pure pressure levels (i.e. the number of levels where the sigma component of the hybrid coefficients is zero).
A multi-dimensional array of the same size as u containing the vertical pressure velocity [Pa/s].
The type of the output data will be double if u or v are of type double. Otherwise, the return type will be float.
Computes omega [ dp/dt: vertical pressure velocity (Pa/s)] via the same approach used by the model. Only minor changes were made to the code: omcalc.F90,v 126.96.36.199.
Use the omega_ccm_driver to facilitate use of this built-in function. It takes the commonly available variables and computes the assorted intermediate quantities used by omega_ccm.
Use the driver located in contributed.ncl. It leads to much cleaner code,
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" : fccm = addfile ("dummy.ccm" , "r") hyam = fccm->hyam hybm = fccm->hybm hyai = fccm->hyai hybi = fccm->hybi p0 = fccm->P0 psfc = fccm->PS u = fccm->U v = fccm->V omega = omega_ccm_driver(p0,psfc,u,v,hyam,hybm,hyai,hybi)