This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
>From: John Knox <address@hidden> >Organization: . >Keywords: 199907131559.JAA22150 >Dear Support, > >We've got another relatively simple question. We need to >be precise in our calculation of potential vorticity. >While there are several options for calc'g PV, we need to >know exactly how PVOR is doing its calculations. Where do >we look in the code for these details? > >Thanks for your earlier help; we were able to clear up a >long-standing problem with the calculation of divergence >tendency. > >Sincerely, > >John Knox >address@hidden > > John, The grid diagnostic function calculations are shown in Appendix B of the User Guide, and the code for calculating PVOR is found in: $GEMPAKHOME/source/gemlib/dv/dvpvor.f Here is the function header: SUBROUTINE DV_PVOR ( iret ) C************************************************************************ C* DV_PVOR * C* * C* This subroutine computes the potential vorticity in a layer from * C* scalar (thermal and pressure) and vector (wind) fields: * C* * C* PVOR ( s, V ) = - GRAVTY * AVOR ( VLAV (V) ) * LDF ( CTA ) / * C* ( 100 * LDF ( PRES ) ) * C* * C* Where: 100 converts millibars to Pascals * C* CTA can be THTA, THTE, or THES * C* * C* PVOR works on a layer in THTA or PRES coordinates. In the case of * C* PRES, the vorticity of the layer averaged wind is corrected by * C* the addition of ( k cross partial V w.r.t. CTA ) dot grad (CTA). * C* PVOR generates a scalar grid. * Steve Chiswell