NCL Home > Documentation > Functions > Spherical harmonic routines

vhagC

Computes vector spherical harmonic analysis of vector fields on a gaussian grid via spherical harmonics.

Prototype

	function vhagC (
		u  : numeric,  
		v  : numeric   
	)

	return_val  :  float or double

Arguments

u
v

vector function to be analyzed (input, array with two or more dimensions). The two rightmost dimensions must be nlat x nlon.

  • input values must be in ascending latitude order
  • input arrays must be on a global grid

Return value

bc will contain the vector spherical harmonic coefficients. The user need not preallocate this array since the function will do so.

If the rightmost two dimensions of u and v are nlat x nlon then the second-to-the-rightmost dimension of bc is nlat and the rightmost dimension (N) is a function of the comparative size of nlat and nlon. It may be determined as follows:

N = minimum[nlat, (nlon )/2] if nlon is even
N = minimum[nlat, (nlon+1)/2] if nlon is odd
An additional dimension of length 4 is added to address the real and imaginary parts associated with the u and v components.

If u and v are two-dimensional arrays (nlat,nlon), then bc(0,nlat,N) will contain the "real" coefficients [u].

bc(1,nlat,N) would contain the "imaginary" coefficients [u]
bc(2,nlat,N) would contain the "real" coefficients [v]
bc(3,nlat,N) would contain the "imaginary" coefficients [v]
If u and v are three-dimensional arrays (nt,nlat,nlon), then:

bc(0,nt,nlat,N) would contain the "real" coefficients [u]
bc(1,nt,nlat,N) would contain the "imaginary" coefficients [u]
bc(2,nt,nlat,N) would contain the "real" coefficients [v]
bc(3,nt,nlat,N) would contain the "imaginary" coefficients [v]
If u and v are four-dimensional arrays (nt,nlvl,nlat,nlon), then:

bc(0,nt,nlvl,nlat,N) will contain the "real" coefficients [u]
bc(1,nt,nlvl,nlat,N) will contain the "imaginary" coefficients [u]
bc(2,nt,nlvl,nlat,N) will contain the "real" coefficients [v]
bc(3,nt,nlvl,nlat,N) will contain the "imaginary" coefficients [v]
etc.

The return array will be double if the input is double, and float otherwise.

Note: The coefficients contained in bc are in mathematical coordinates. Please read the documentation at:

http://www.scd.ucar.edu/css/software/spherepack/vhagc.txt
This is tricky and care must be taken to handle the coefficients correctly.

Description

vhagC performs the vector spherical harmonic analysis on the arrays u and v. In general, vhagC (performs vector spherical harmonic analysis) is used in conjunction with vhsgC (performs vector spherical harmonic synthesis). Note that both vhagC and vhsgC operate on a gaussian grid.

NOTE: This function does not allow for missing data (defined by the _FillValue attribute) to be present. The input arrays should not include the cyclic (wraparound) points, as this function uses spherical harmonics. (NCL procedures/functions that use spherical harmonics should never be passed input arrays that include cyclic points.)

If the input arrays u and v are on a fixed grid, vhaeC should be used. Also, note that vhagC is the function version of vhagc.

See Also

vhagc, vhsgC, vhsgc, vhaeC, vhaec, vhsec, vhseC

Examples

In the examples below, u and v are on a gaussian grid.

Example 1

u(nlat,nlon), v(nlat,nlon)

bc = vhagC (u,v)
     [do something with the coefficients]
UV = vhsgC (bc,nlon)	  ; or vhsgc (bc(0,:,:),bc(1,:,:),bc(2,:,:),bc(3,:,:),u,v)
Example 2

u(nt,nlat,nlon), v(nt,nlat,nlon)

bc = vhagC (u,v)
     [do something with the coefficients]
UV = vhsgC (bc,nlon) 	  ; or vhsgc (bc(0,:,:,:),bc(1,:,:,:),bc(2,:,:,:),bc(3,:,:,:),u,v)
Example 3

u(nt,nlvl,nlat,nlon), v(nt,nlvl,nlat,nlon)

bc = vhagC (u,v)
     [do something with the coefficients]
UV = vhsgC (bc,nlon)	  ; or vhsgc (bc(0,:,:,:,:),bc(1,:,:,:,:),bc(2,:,:,:,:),bc(3,:,:,:,:),u,v)