NCL Home > Documentation > Functions > Heat stress


Compute the 'feels-like' temperature for humans.

Available in version 6.4.0 and later.


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

	function heat_humidex (
		t          : numeric,  
		vp         : numeric,  
		iounit [2] : integer,  
		opt        : integer   

	return_val [dimsizes(t)] :  float or double



Scalar or array containing temperature(s) [ units see iounit(0) ].


Scalar or array containing vapor pressure [ units see iounit(1) ].


Currently not used. Set to False.

Return value

A scalar or an array of the same size and shape as t. The output will be double if t or rh is of type double. The calculated quantity is unitless. It is a measure of 'heat load'.


Source Wikipedia:
The humidex (short for humidity index) is an index number used by Canadian meteorologists to describe how hot the weather feels to the average person, by combining the effect of heat and humidity. The humidex is a dimensionless quantity based on the dew point, but it is equivalent to dry temperature in degrees Celsius (omitting degree symbol). For example, if the temperature is 30C (86F), and the calculated humidex is 40, then it indicates the humid heat feels approximately like a dry temperature of 40C (104F).

According to the Meteorological Service of Canada, a humidex of at least 30 causes "some discomfort", at least 40 causes "great discomfort" and above 45 is "dangerous". When the humidex hits 54, heat stroke is imminent.

The current formula for determining the humidex was developed by J. M. Masterton and F. A. Richardson of Canada's Atmospheric Environment Service in 1979. Humidex differs from the heat index used in the United States in being derived from the dew point rather than the relative humidity.


    Masterson, J., and F. Richardson, 1979: 
           Humidex, a method of quantifying human discomfort due to 
             excessive heat and humidity
           CLI 1-79, Environment Canada, Atmosheric Environment Servic

    Buzan, J.R. et al (2015): 
           Implementation and comparison of a suite of heat stress metrics
              within the Community Land Model version 4.5
           Geosci. Model Dev., 8, 151-170, 2015

See Also

Heat and Stress functions


Example 1: This example illustrates calculating the required vapor pressure (vp) using two different approximations for saturation vapor pressure. There is very little difference. Note: the online calculator returns 40.90717.

   t    = 30.0    ; C    iounit(0)=0
   rhum = 70.0    ; %

   es   = satvpr_water_stipanuk(t, (/0,1/))   ; iounit(1) means return Pa
   vp   = (rhum/100)*es
   hx   = heat_humidex(t, vp, (/0,1/), 0)

   ES   = satvpr_water_bolton  (t, (/0,1/))   ; iounit(1) means return Pa
   VP   = (rhum/100)*ES
   HX   = heat_humidex(t, VP, (/0,1/), 0)
The output is

    Variable: hx
    Type: float
    Total Size: 4 bytes
                1 values
    Number of Dimensions: 1
    Dimensions and sizes:	[1]
    Number Of Attributes: 4
      long_name :	Humidex
      units :	
      info :	human feels-like temperature
      NCL :	heat_humidex

    (0)	40.93512               <=== satvpr_stipanuk; hx              
    (0)	40.95528               <=== satvpr_bolton  ; HX
        40.90717               <=== interteractive calculator