NCL Home > Documentation > Functions > Heat stress


Compute the composite Wet-Bulb Globe Temperature (WBGT) index with options for indoor or outdoor formulations.

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_wbgt_inout (
		tw         : numeric,  
		tg         : numeric,  
		ta         : numeric,  
		iounit [2] : integer,  
		opt    [1] : integer   

	return_val [dimsizes(t)] :  float or double



Scalar or array containing wet bulb temperature. Units see iounit


Scalar or array containing 'globe' temperatures. It must have the same size, shape and units as tw.


Scalar or array containing ambient temperature. It must have the same size, shape and units as tw. This argument is ignored when opt=0 or opt=1. Since it is ignored, the tw can be used as a place holder.


An integer array of length 2 which specifies the units of the input tw and the returned heat_index:

  • iounit(0)=0 input tw (degC)
  • iounit(0)=1 input tw (degK)
  • iounit(0)=2 input tw (Farenheit)

  • iounit(1)=0 returns units degC
  • iounit(1)=1 returns units degK
  • iounit(1)=2 returns units Farenheit


Option to use indoor or outdoor formulations. Further, for the indoor formulation, an alternative set of weight factors can be specified.

  • opt=0: Use standard two-parameter indoor values: WBGT = 0.70*tw + 0.30*tg
  • opt=1: Use alternative two-parameter indoor values: WBGT = 0.85*tw + 0.20*tg
  • opt=2: Use the standard three-parameter outdoor values: WBGT = 0.70*tw + 0.20*tg + 0.10*td

Return value

A scalar or an array of the same size and shape as tw. The output will be double if tw or tg is of type double. The returned units are specified by iounit(1).


The WetBulb Globe Temperature (WBGT) is the ISO (1989) standard for quantifying thermal comfort. The WBGT is a measure of the heat stress in direct sunlight, which takes into account: temperature, humidity, wind speed, sun angle and cloud cover (solar radiation). If you work or exercise in direct sunlight, this is a good element to monitor. Military agencies, OSHA and many nations use the WBGT as a guide to managing workload in direct sunlight.

The WBGT is measured by a simple three-temperature element device. However, this instrument is expensive and requires regular maintemence. Hence, the 'true' WBGT is rarely available. Generally, an approximate WBGT is calculated or another index is used.

The following is from Per guidance published by the Occupational Safety and Health Administration (OSHA), the outdoor, with solar load, WBGT Index is a weighted sum of three component temperatures:

  • A natural wet bulb temperature (tw), measured by a thermometer bearing a wetted wick passively exposed to the ambient environment. The wet bulb temperature indicates the amount of cooling provided to the human subject through evaporation and accounts for 70% of the WBGT index.
  • A globe temperature (tg) , measured by a thermometer inside a black sphere passively exposed to the ambient environment The globe temperature provides an indication of the mean radiant temperature of the environment and accounts for 20% of the WBGT Index.
  • A dry bulb temperature (ta), measured by a standard air thermometer. The dry bulb temperature is the temperature of the ambient air and accounts for 10% of the WBGT Index.

    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

    Hot Environments—Estimation of the heat stress on working man, 
             based on the WBGT-index (wet bulb globe temperature). 
    ISO Standard 7243. Geneva: International Standards Organization.

See Also

Heat and Stress functions


Example 1:

   tw     = 13.7    ; C
   tg     = 24.0    
   io     = (/0,0/)

   wbgt_0 = heat_wbgt_inout(tw, tg, tw, io, 0)   ; note use of tw as 'place-holder'
   wbgt_1 = heat_wbgt_inout(tw, tg, tw, io, 1)

   ta     = 20.0 
   wbgt_2 = heat_wbgt_inout(tw, tg, ta, io, 2)   ; use 'ta'

The output is:

    Variable: wbgt_0
    Type: float
    Total Size: 4 bytes
                1 values
    Number of Dimensions: 1
    Dimensions and sizes:   [1]
    Number Of Attributes: 5
      long_name :   WBGT: wet-bulb globe temperature
      info :        Indoors, or when solar radiation is negligible
      units :       degC
      coef :        ( 0.7, 0.3 )
      NCL : heat_wbgt_globe

    (0)     16.79
    Variable: wbgt_1
    Number Of Attributes: 5
      long_name :   WBGT: wet-bulb globe temperature
      info :        Indoors, or when solar radiation is negligible
      units :       degC
      coef :        ( 0.85, 0.2 )
      NCL : heat_wbgt_globe

    (0)     16.445
    Variable: wbgt_2
    Number Of Attributes: 5
      long_name :   WBGT: wet-bulb globe temperature
      info :        Outdoor
      units :       degC
      coef :        ( 0.7, 0.2, 0.1 )
      NCL : heat_wbgt_globe

    (0)     16.39