NCL Home > Documentation > Functions > Meteorology

brunt_vaisala_atm

Compute the Brunt-Vaisala frequency which is a measure of bouyancy in a continuously stratified atmosphere.

Available in version 6.4.0 and later.

Prototype

load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"  ; This library is automatically loaded
                                                             ; from NCL V6.2.0 onward.
                                                             ; No need for user to explicitly load.

	function brunt_vaisala_atm (
		th      : numeric,  ; float, double, integer only
		z       : numeric,  
		opt [1] : integer,  
		dim [1] : integer   
	)

	return_val [dimsizes(th)] :  float or double

Arguments

th

Potential temperature (K).

z

Geometric height (m). Same dimensionality as th.

opt

  • opt=0, Return only the Brunt-Vaisala frequency as a regular variable.
  • opt=1, Return the Brunt-Vaisala frequency and d(theta)/dz

dim

The dimension number of z which corresponds to th.

Return value

An array of the same size and shape as th. The output will be double if th or z is of type double.

Description

The Brunt-Vaisala (BV) frequency (1/s) is a measure of bouyancy. In a continuously stratified fluid, it is the natural frequency of the vertical oscillation of fluid parcels. Hence, it should always be positive. However, this function will return a negative value when the vertical gradient of thv is negative. This is done for informational purposes only. The user can force only positive values via

         BV = where(BV.lt.0, 0, BV)

For plotting, the returned values which have units (1/s) are often multiplied by 86400 (s/day) to get units of (1/day).

See Also

coriolis_param, pot_temp, static_stability, eady_growth_rate, rigrad_bruntv_atm

Examples

Example 1: Read data from a WRF file and calculate assorted quantities.

;----------------------------------------------------------
;                     WRF DATA
;----------------------------------------------------------

   a  = addfile("wrfout_d01_2013-05-17_12","r") ;[Time|1]x[bottom_top|40]x[south_north|324]x[west_east|414]
                                               ;     0            1              2              3

   th = wrf_user_getvar(a,"theta",-1)      ; potential temperature (degK)
   z  = wrf_user_getvar(a,"z",-1)          ; model height

   brunt = brunt_vaisala_atm(th, z, 0, 1)  ; opt=0, ndim=1
   printVarSummary(brunt)
   printMinMax(brunt, 0)

; variable dimensions

   dimth = printMinMaxdimsizes(th)
   ntim  = dimth(0)

; print all vertical values at an arbitrarily chosen grid point

   ix = 20        ; arbitrary
   jy = 21

   print( sprintf("%7.1f", z(ntim-1,:,jy,ix))     \
        + sprintf("%15.5e",brunt(ntim-1,:,jy,ix)) )

The (edited) output is:

   Variable: brunt
   Type: float
   Total Size: 20925216 bytes
               5231304 values
   Number of Dimensions: 4
   Dimensions and sizes:   [Time | 1] x [bottom_top | 39] x [south_north | 324] x [west_east | 414]
   Coordinates: 
   Number Of Attributes: 3
     long_name :   Brunt–Vaisala (buoyancy) frequency: atm
     units :       1/s
     info :        http://glossary.ametsoc.org/wiki/Brunt-v%C3%A4is%C3%A4l%C3%A4_frequency

   (0)     Brunt-Vaisala (buoyancy) frequency: atm: min=0   max=0.0743625
   

     --- Grid Point: (20,21) -------------------------------

              Z         BRUNT   
    (0)      29.2   -4.23441e-03     -> Negative d(theta)/dz
    (1)      99.1   -3.29972e-03                 "
    (2)     192.9   -1.99228e-03                 "
    (3)     313.0   -1.59737e-03                 "
    (4)     463.0    3.77258e-03
    (5)     647.4    1.02118e-02
    (6)     872.0    1.06960e-02
    (7)    1142.9    1.34968e-02
    (8)    1463.4    1.98726e-02
    (9)	   1835.1    1.83999e-02
    (10)   2258.8    1.26123e-02
    (11)   2733.7    1.07150e-02
    (12)   3259.3    9.99975e-03
    (13)   3835.0    1.02520e-02
    (14)   4442.5    1.24183e-02
    (15)   5057.9    1.37012e-02
    (16)   5674.7    1.16770e-02
    (17)   6292.0    8.31896e-03
    (18)   6907.9    9.73829e-03
    (19)   7523.3    1.10047e-02
    (20)   8139.1    1.07249e-02
    (21)   8755.4    1.01392e-02
    (22)   9372.1    9.75036e-03
    (23)   9988.7    1.10250e-02
    (24)  10606.4    1.13320e-02
    (25)  11225.7    1.00888e-02
    (26)  11845.9    7.97759e-03
    (27)  12465.8    8.47375e-03
    (28)  13085.9    1.04011e-02
    (29)  13707.9    1.33597e-02
    (30)  14335.0    1.68360e-02
    (31)  14971.9    1.79719e-02
    (32)  15621.2    2.00726e-02
    (33)  16288.0    2.13622e-02
    (34)  16976.2    2.06080e-02
    (35)  17686.4    2.01936e-02
    (36)  18420.1    2.23056e-02
    (37)  19185.4    2.51125e-02
    (38)  20094.5    2.53134e-02