NCL Home > Documentation > Functions > Meteorology, Crop

# radsol_fao56

Compute solar radiation via the 'Angstrom Formula' which uses extraterrestrial radiation and relative sunshine as described in FAO 56 (equation 35).

Available in version 6.4.0 and later.

## Prototype

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

function radsol_fao56 (
radext     : numeric,
lat        : numeric,
sunhr      : numeric,
iounit [2] : integer,
opt    [1] : logical
)
```

## Arguments

radext

A scalar or array containing extraterrestrial radiation.

lat

A scalar or an array of any dimensionality containing latitudes (degrees). Same dimensionality as radext.

sunhr

Duration of sunshine (hours). Same dimensionality as radext.

iounit

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

• iounit(0)=0 input radext are mm/day
• iounit(0)=1 input radext are MJ/(m2-day)
• iounit(0)=2 input radext are W/m2

• 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

Optional arguments are present.

• opt=False : Optional arguments as and bs are set to the FAO recommended values: as=0.25 and bs=0.50
• opt=True : User may set both as and bs; opt@as=??? and opt@bs=???

## Return value

If both jday and lat are scalars then a scalar is returned. Otherwise, a two-or-three dimensional array is returned. If jday(ntim) and lat(nlat), the returned array will be (ntim,nlat). If lat(nlat,mlon), the returned array will be (ntim,nlat,mlon). The returned arrays will contain meta data where applicable.

## Description

Computes solar radiatiion based upon daily sunshine and day-of-year 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 35 of Chapter 3.

## Examples

Example 1: Replicate example 10 in Chapter 3.

```  jday     = 135
lat      = -22.9        ; Rio de Janerio, Brazil

sunhrx   = daylight_fao56(jday, lat)      ; max daylight/sun; hr per day
radext   = radext_fao56(jday, lat, 1)     ; 25.11; radiation MJ/(m2-day)

sunhr    = 220.0/31.0   ; =7.1 average daily sunshine hours

radsol_0 = radsol_fao56(radext, sunhrx, sunhr, (/1,0/), False)    ;   5.8981 mm/day
radsol_1 = radsol_fao56(radext, sunhrx, sunhr, (/1,1/), False)    ;  14.4561 MJ/(m2-day)
radsol_2 = radsol_fao56(radext, sunhrx, sunhr, (/1,2/), False)    ; 167.315  W/m2
```

The full output for 'radsol'

```     Variable: radsol_1
Type: float
Total Size: 4 bytes
1 values
Number of Dimensions: 1
Dimensions and sizes:   [1]
Coordinates:
Number Of Attributes: 4
long_name :   radiation: FAO_56
units :       MJ/(m2-day)
url : http://www.fao.org/docrep/X0490E/x0490e07.htm
info :        FAO 56; EQN 35
parameters :  as=0.25  bs=0.5

(0)     14.456

Example 2: Consider lat(lat) and jday(time)

lat     = (/ -22.9, 0, 45 /)
lat@units = "degrees_north"
lat!0   = "lat"
lat&lat =  lat
nlat    = dimsizes(lat)

time    = (/ 15, 135, 246, 306 /)
time@long_name = "julian day"
time!0    = "time"
time&time =  time
ntim    = dimsizes(time)
sunhrx  = daylight_fao56(jday, lat)               ; [jday | 4] x [lat | 3]
radext  = radext_fao56(jday, lat, 1)             ;  [jday | 4] x [lat | 3]

; BOGUS 'sunhr' values
; to illustrate dimensionality
sunhr   = onedtond((/ 7.9, 10.0, 6.8, 5.3    \   ; [4] x [3]
, 10.2, 8.0  3.1, 5.8    \
,  6.6, 8.2, 7.2, 6.7 /) \
, dimsizes(radext))

radsol  = radsol_fao56(radext, sunhrx, sunhr, (/1,0/), False)

The output would be

Variable: radsol
Type: float
Total Size: 48 bytes
12 values
Number of Dimensions: 2
Dimensions and sizes:   [jday | 4] x [lat | 3]
Coordinates:
jday: [15..306]
lat: [-22.9..45]
Number Of Attributes: 5
lon_name :   solar radiation: FAO_56
units :       mm/day
url : http://www.fao.or/docrep/X0490E/x0490e07.htm
info :        FAO 56; EQN 35; radsol_fao56
parameters :  as=0.25  bs=0.5
(0,0)   9.463996
(0,1)   9.834846
(0,2)   3.065224
(1,0)   5.053281
(1,1)   9.57552
(1,2)   8.364044
(2,0)   4.881212
(2,1)   7.372278
(2,2)   6.409425
(3,0)   9.374564
(3,1)   8.259603
(3,2)   3.750898

```