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.

See Also

Crop & Evapotranspiration functions

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