NCL Website header
NCL Home > Documentation > Functions > Meteorology, Crop

radsol2_fao56

Compute solar radiation from daily sunshine and day-of-year as described in FAO 56.

Available in version 6.4.0 and later.

Prototype

load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/crop.ncl"

	function radsol2_fao56 (
		jday  [*] : integer,  
		lat       : numeric,  
		sunhr     : numeric,  
		ounit [1] : integer,  
		opt   [1] : logical   
	)

Arguments

jday

A integer scalar or one-dimensional array containing day of year.

lat

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

sunhr

Duration of sunshine (hours). Dimensionality should match lat.

ounit

A scalar integer which specifies the units of the returned extraterrestrial radiation:

  • ounit=0 yields units of mm/day
  • ounit=1 yields units of MJ/(m2-day)
  • ounit=2 yields 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 metadata where applicable.

Description

Computes solar radiation 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 Janeiro, Brazil
  sunhr  = 220.0/31.0   ; average daily sunshine hours
  radsol = radsol2_fao56(jday, lat, sunhr, 0, False)   ;   5.898 mm/day 
  radsol = radsol2_fao56(jday, lat, sunhr, 1, False)   ;  14.456 MJ/(m2-day) 
  radsol = radsol2_fao56(jday, lat, sunhr, 2, False)   ; 167.315 W/m2 

  printVarSummary(radsol)

The output for 'radsol' with ounit=1 is

     Variable: radsol
     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; radsol2_fao56
     (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)

    sunhr   = new( (/ntim,nlat/), "float")
    sunhr   = 220.0/31
    radsol  = radsol2_fao56(time, lst, sunhr, 0, False)   

The output would be
     Variable: ra
     Type: float
     Total Size: 48 bytes
                 12 values
     Number of Dimensions: 2
     Dimensions and sizes:   [time | 4] x [lat | 3]
     Coordinates: 
                 time: [15..306]
                 lat:  [-20..45]
     Number Of Attributes: 5
       long_name :   extraterrestrial radiation: FAO_56
       units :       MJ/(m2-day)
       url : http://www.fao.org/docrep/X0490E/x0490e07.htm
       info :        FAO 56; EQN 21