NCL Home > Documentation > Functions > Meteorology, Crop

# soil_heatflux_month_fao56

Compute soil heat flux for monthly periods as described in FAO 56.

Available in version 6.4.0 and later.

## Prototype

; from NCL V6.5.0 onward.
; No need for user to explicitly load.

function soil_heatflux_month_fao56 (
t          : numeric,
dt         : numeric,
dz         : numeric,
ndim   [1] : integer,
iounit [2] : integer,
opt    [1] : logical
)

## Arguments

t

A scalar or array containing air temperatures near the surface. See iounit argument.

dt

A scalar or an array specifying the time interval(s) in months. For successive months, dt=1.

dz

Effective soil depth (m). Typically, dz ranges from 0.10m to 0.20m for one to a few days. For monthly periods, 0.5m to 2m or more may be appropriate. Commonly, dz=1.0 for successive monthly values.

ndim

A scalar which specifies the dimension number of t corresponding to 'time'.

iounit

An integer array of length 2 which specifies the units of the input radext and returned extraterrestrial radiation:

• iounit(0)=0 input t are degC (C)
• iounit(0)=1 input t are degK (Kelvin)
• iounit(0)=2 input t are degrees Fahrenheit

• iounit(1)=0 returns units of mm/day
• iounit(1)=1 returns units of MJ/(m2-day)
• iounit(1)=2 returns units of W/m2

opt

Currently not used, set opt=False.

## Return value

An array of the same type and shape as t containing monthly soil flux estimates. All available metadata will be attached.

## Description

Computes monthly soil flux estimates as described in the Food and Agriculture Organization (FAO) Irrigation and Drainage Paper 56 entitled: Crop evapotranspiration - Guidelines for computing crop water requirement. Specifically, see equation 41 of Chapter 3.

A constant soil heat capacity [ 2.1 MJ/(m3-C) ] is used.

## Examples

Example 1: Replicate Example 13 in Chapter 3. Specifically, EQN 41, 43 and 44 are used.

t      = (/ 14.1, 16.1, 18.8/)      ; degC
dz     = 1.0                        ; m
dt     = 1.0                        ; successive months (here: March, April, May)
ndim   = 0                          ; t(3) ... only one dimension

shflx_00 = soil_heatflux_month_fao56(t,dz,dt,ndim,(/0,0/),False)  ; (/0.114, 0.134, 0.154/) mm/day
shflx_01 = soil_heatflux_month_fao56(t,dz,dt,ndim,(/0,1/),False)  ; (/0.28 , 0.329, 0.378/) MJ/(m2-day)

print(shflx_01)

The output for 'shflx_01' is

Variable: shflx_01
Type: float
Total Size: 12 bytes
3 values
Number of Dimensions: 1
Dimensions and sizes:	[3]
Coordinates:
Number Of Attributes: 4
long_name :	monthly soil heat flux
units :	MJ/(m2-day)
url :	http://www.fao.org/docrep/X0490E/x0490e07.htm
info :	FAO 56; EQN 43 & 44; soil_heatflux_month_fao56

(0)	0.28              ; 0.14*(t(0)-t(1))
(1)	0.3289999         ; 0.07*(t(0)-t(2))   ; FAO Example 13
(2)	0.3779998         ; 0.14*(t(1)-t(2))

Example 2: T(time,lat,lon) with sizes (3,73,144) and coordinate variables.

SHFLX_01  = soil_heatflux_month_fao56(T, dt, dz, ndim, (/0,1/), False)

The output would be

Variable: SHFLX_01
Type: float
Total Size: 126144 bytes
31536 values
Number of Dimensions: 3
Dimensions and sizes:	[time | 3] x [lat | 73] x [lon | 144]
Coordinates:
time: [3..5]
lat: [-90..90]
lon: [ 0..357.5]
Number Of Attributes: 4
long_name :	monthly soil heat flux
units :	MJ/(m2-day)
url :	http://www.fao.org/docrep/X0490E/x0490e07.htm
info :	FAO 56; EQN 41, 43 & 44; soil_heatflux_month_fao56