 NCL Home > Documentation > Functions > Meteorology

Compute the atmospheric gradient Richardson number and, optionally, the Brunt-Vaisala, buoyancy and shear. 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.

thv     : numeric,  ; float, double, integer only
u       : numeric,
v       : numeric,
z       : numeric,
opt  : integer,
dim  : integer
)

return_val [dimsizes(z)] :  float or double
```

Arguments

thv

Virtual potential temperature (K): thv = theta*(1+0.61w) where w is the dimensionless mixing ratio. Potential temperature could also be used if the mixing ratio (kg/kg) is not available.

u

Zonal wind (m/s). Same dimensionality as thv.

u

Meridional wind (m/s). Same dimensionality as thv.

z

Geometric height (m). Same dimensionality as thv.

opt

• opt=0, Return only the gradient Richardson number as a regular variable.
• opt=1, Return only the Brunt-Vaisala frequency as a regular variable.
• opt=2, Return the gradient Richardson number and the Brunt-Vaisala frequency as elements of a list variable
• opt=3, Return the gradient Richardson number, the Brunt-Vaisala frequency, the buoyancy (1/s) and the wind sheared squared as elements of a list variable

dim

The dimension of thv which corresponds to z.

Return value

A multi-dimensional array of the same size and shape as thv. The output will be double if thv is of type double.

Description

The gradient richardson number (Ri) is a dimensionless ratio. It is related to the buoyant production or consumption of turbulence divided by the shear production of turbulence. It is a criterion for assessing the stability of stratified shear flow. The atmospheric condition is favorable for the occurrence of turbulence when Ri < the critical Richardson number (=0.25). Ri is 'useful' within or near the boundary layer.

```
AMS Glossary:
BruntV: http://glossary.ametsoc.org/wiki/Brunt-v%C3%A4is%C3%A4l%C3%A4_frequency
The latter uses Tv and not THETAv in denominator. This is an approximation
used by boundary layer people where Tv ~ theta,

http://en.wikipedia.org/wiki/Richardson_number

P.W. CHan: http://dx.doi.org/10.1088/1755-1307/1/1/012043

Gradient Richardson Number: RI  = buoyancy/shear_flow
A dimensionless ratio, Ri, related to the buoyant production or
consumption of turbulence divided by the shear production of turbulence.
It is used to indicate dynamic stability and the formation of turbulence.
The critical Richardson number, Ric, is about 0.25 (although reported values have
ranged from roughly 0.2 to 1.0), and flow is dynamically unstable and turbulent
when Ri < Ric. Such turbulence happens either when the wind shear is great enough
to overpower any stabilizing buoyant forces (numerator is positive), or when there
is static instability (numerator is negative).

If the Richardson number is much less than unity, buoyancy is unimportant in the flow.
If it is much greater than unity, buoyancy is dominant (in the sense that there is
insufficient kinetic energy to homogenize the fluids).

Large values of Ri indicate very stable conditions while low values *may*
indicate dynamic stability (subcritical region).

Brunt-Vaisala:
The Brunt-Vaisala (BV) frequency at which a displaced air parcel will oscillate when
displaced vertically within a statically stable environment. 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)

```

Examples

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

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

;    0            1              2              3

q  = a->QVAPOR                          ; mixing ratio (kg/kg)
q  = where(q.lt.0, 0, q)              ; ensure no negative mixing ratios
printVarSummary(q)                    ; (Time, bottom_top, south_north, west_east)
printMinMax(q,0)

th = wrf_user_getvar(a,"theta",-1)    ; potential temperature (degK)
th = th*(1.0 + 0.61*q)                                   ; virtual potential temperature
th@long_name = "virtual potential temperature"

z  = wrf_user_getvar(a,"z",-1)          ; model height
ua = wrf_user_getvar(a,"ua"   ,-1)      ; u at mass grid points
va = wrf_user_getvar(a,"va"   ,-1)      ; v at mass grid points

;;Ri   = rigrad_bruntv_atm(th, ua, va, z, 0, 1 )
;;BV   = rigrad_bruntv_atm(th, ua, va, z, 1, 1 )
;;RiBV = rigrad_bruntv_atm(th, ua, va, z, 2, 1 )
All  = rigrad_bruntv_atm(th, ua, va, z, 3, 1 )

Ri   = All     ; explicitly extract from list variable  for convenience
BV   = All     ; must use 'list' syntax  [...]
BUOY = All
SHR2 = All
delete(All)       ; no longer needed

printVarSummary(Ri)
printMinMax(Ri,0)
print("-----------------------------------------")

; print for arbitrarily chosen grid point

pr = wrf_user_getvar(a, "pressure", -1)   ; for printing purposes only
ix = 20        ; arbitrary
jy = 21
nt = 0

p  = wrf_user_getvar(a, "pressure", -1)   ; for printing purposes only

print( sprintf("%7.1f" ,    p(nt,:,jy,ix)) \
+ sprintf("%9.1f" ,    z(nt,:,jy,ix)) \
+ sprintf("%7.1f" ,   th(nt,:,jy,ix)) \
+ sprintf("%15.5e",   Ri(nt,:,jy,ix)) \
+ sprintf("%15.5e", BUOY(nt,:,jy,ix)) \
+ sprintf("%15.5e", SHR2(nt,:,jy,ix)) )

```
All input variables are 4D with dimensions:
```

[Time | 1] x [bottom_top | 39] x [south_north | 324] x [west_east | 414]

```
The (edited) output is:
```
Variable: Ri
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: 2
(0)	Gradient Richardson Number: min=-1.50836e+06   max=2.02878e+08
(0)	-----------------------------------------

P        Z     TH          Ri           BOUY           SHEAR^2
(0)	 1009.1     29.2  298.6   -6.69352e+00   -2.94778e-05    4.40393e-06
(1)	 1001.0     99.1  298.5   -1.17482e+01   -1.80076e-05    1.53279e-06
(2)	  990.3    192.9  298.5   -2.16875e+01   -6.57265e-06    3.03061e-07
(3)	  976.8    313.0  298.5   -4.05527e+01   -3.60803e-06    8.89713e-08
(4)	  960.0    463.0  298.4    3.98499e-01    3.52946e-06    8.85689e-06
(5)	  939.6    647.4  298.5    8.39926e-01    8.87363e-05    1.05648e-04
(6)	  915.3    872.0  299.6    1.36544e+00    1.03845e-04    7.60522e-05
(7)	  886.7   1142.9  300.1    1.07235e+01    1.52601e-04    1.42305e-05
(8)	  853.8   1463.4  302.3    5.26213e+00    3.32361e-04    6.31609e-05
(9)	  817.2   1835.1  307.2    5.66880e+00    3.04740e-04    5.37573e-05
(10)  777.3   2258.8  309.9    3.01461e+01    1.63086e-04    5.40983e-06
(11)  734.6   2733.7  311.8    3.26361e+02    1.23117e-04    3.77242e-07
(12)  689.6   3259.3  313.8    1.61876e+01    1.02580e-04    6.33695e-06
(13)  642.9   3835.0  315.4    7.42874e+00    9.19175e-05    1.23732e-05
(14)  596.3   4442.5  317.3    3.48297e+01    1.33469e-04    3.83205e-06
(15)  552.0   5057.9  320.7    2.06476e+01    1.73400e-04    8.39810e-06
(16)  510.4   5674.7  324.3    9.08787e+00    1.32518e-04    1.45819e-05
(17)  471.4   6292.0  326.1    4.43753e+00    7.01856e-05    1.58163e-05
(18)  434.8   6907.9  327.2    1.49438e+00    9.36120e-05    6.26427e-05
(19)  400.5   7523.3  329.9    4.89927e+00    1.20263e-04    2.45471e-05
(20)  368.4   8139.1  332.2    1.30783e+02    1.15606e-04    8.83954e-07
(21)  338.4   8755.4  334.8    2.43873e+02    1.02505e-04    4.20320e-07
(22)  310.3   9372.1  336.5    1.01988e+01    9.44002e-05    9.25605e-06
(23)  284.1   9988.7  338.8    2.42214e+00    1.21041e-04    4.99728e-05
(24)  259.7  10606.4  341.6    7.70021e-01    1.28499e-04    1.66878e-04
(25)  236.9  11225.7  344.3    5.75845e-01    1.01843e-04    1.76858e-04
(26)  215.7  11845.9  346.1    1.02962e+00    6.36113e-05    6.17812e-05
(27)  195.9  12465.8  347.1    5.01158e+00    7.17109e-05    1.43090e-05
(28)  177.6  13085.9  349.2    6.29919e+00    1.08032e-04    1.71502e-05
(29)  160.6  13707.9  351.9    1.21583e+00    1.78363e-04    1.46700e-04
(30)  144.8  14335.0  357.2    3.27406e+00    2.83387e-04    8.65553e-05
(31)  130.2  14971.9  364.9    4.61698e+00    3.22974e-04    6.99536e-05
(32)  116.7  15621.2  372.7    2.48082e+00    4.02882e-04    1.62399e-04
(33)  104.3  16288.0  385.1    4.04567e+00    4.56323e-04    1.12793e-04
(34)   92.8  16976.2  397.0    8.26755e+00    4.24677e-04    5.13667e-05
(35)   82.2  17686.4  409.1    9.70255e+00    4.07777e-04    4.20278e-05
(36)   72.6  18420.1  421.5    1.88097e+01    4.97539e-04    2.64511e-05
(37)   63.7  19185.4  441.2    2.31706e+01    6.30633e-04    2.72170e-05
(38)   54.7  20094.5  469.0    1.73304e+01    6.40759e-04    3.69732e-05

```