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).

## Examples

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

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

;     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
```