 NCL Home > Documentation > Functions > Meteorology

# mixhum_convert

Convert mixing ratio to specific humidity or vice-versa. Available in version 6.5.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 mixhum_convert (
wq         : numeric,  ; float, double, integer only
wqType  : string,
iounit  : integer
)

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

## Arguments

wq

A scalar or array containing mixing ratio or specific humidity (units: kg/kg, g/kg).

wqType

• wqType="w" or "W" means that wq is mixing ratio and a conversion to specific humidity is desired.
• wqType="q" or "Q" means that wq is specific humidity and a conversion to mixing ratio is desired.

iounit

An integer array of length 2 which specifies the units of the input wq and returned variable

• iounit(0)=0 input wq are kg/kg
• iounit(0)=1 input wq are g/kg

• iounit(1)=0 returned units are kg/kg
• iounit(1)=1 returned units are g/kg

## Return value

A variable of the same size and shape as wq.

## Description

The mixing ratio and specific humidity are commonly denoted as w and q, respectively. As noted in the Glossary of Meteorology, these quantities are nearly identical. Hence, w and q are often used interchangeably. Still, for certain applications, it may be appropriate to make the conversion. Specifically:

```         q = w/(1+w) [switch=True]  <===>   w = q/(1-q) [switch=False]
```

## Examples

Example 1: Convert mixing ratio to specific humidity and vice-versa.

```   W   = 15.2       ; g/kg      iounit(0)=1
q   = mixhum_convert(W, "w", (/1,1/)  ; q = 14.97; return g/kg, iounit(1)=1
printVarSummary(q)

w   = mixhum_convert(q, "q", (/1,1/)  ; w = 15.2 ; return g/kg, iounit(1)=1
printVarSummary(w)

Example 2: Read specific humidity (Q; kg/kg). Convert to mixing ratio and vice-versa.
Q  = a->Q       ; kg/kg     iounit(0)=0
w   = mixhum_convert(Q, "q", (/0,0/); return kg/kg, iounit(1)=0
printVarSummary(w)   ; w(time,lat,lon)

q   = mixhum_convert(w, "w" , (/0,1/); return kg/kg, iounit(1)=1
printVarSummary(q)   ; q(time,lat,lon)

The edited output:

Variable: Q
Type: float
Total Size: 1437696 bytes
359424 values
Number of Dimensions: 4
Dimensions and sizes:	[time | 1] x [lev | 26] x [lat | 96] x [lon | 144]
Coordinates:
time: [3132..3132]
lev: [3.54463800000001..992.5560999999998]
lat: [ -90..89.99999999999999]
lon: [   0..357.5]
Number Of Attributes: 3
units :	kg/kg
long_name :	Specific humidity
cell_method :	time: mean

(0)	Specific humidity (kg/kg) : min=4.95837e-07   max=0.0220418

Variable: w
Type: float
Total Size: 1437696 bytes
359424 values
Number of Dimensions: 4
Dimensions and sizes:	[time | 1] x [lev | 26] x [lat | 96] x [lon | 144]
Coordinates:
time: [3132..3132]
lev: [3.54463800000001..992.5560999999998]
lat: [ -90..89.99999999999999]
lon: [   0..357.5]
Number Of Attributes: 4
long_name :	mixing ratio
equation :	w=q/(1-q)
units :	kg/kg
NCL :	mixhum_convert

(0)	mixing ratio (kg/kg) : min=4.95838e-07   max=0.0225386

Variable: q
Type: float
Total Size: 1437696 bytes
359424 values
Number of Dimensions: 4
Dimensions and sizes:	[time | 1] x [lev | 26] x [lat | 96] x [lon | 144]
Coordinates:
time: [3132..3132]
lev: [3.54463800000001..992.5560999999998]
lat: [ -90..89.99999999999999]
lon: [   0..357.5]
Number Of Attributes: 4
long_name :	specific humidity
equation :	q=w/(1+w)
units :	 g/kg
NCL :	mixhum_convert
(0)	specific humidity (kg/kg) : min=4.95837e-04   max=2.20418

```