 NCL Home > Documentation > Functions > Spherical harmonic routines

# ilapsg

Inverts the Laplacian (on a gaussian grid) using spherical harmonics.

## Prototype

```	procedure ilapsg (
zlap    : numeric,
zlmbda  : numeric,
z       : float or double
)
```

## Arguments

zlap

the Laplacian array to invert (input, two or more dimensions, last two dimensions must be nlat x nlon)

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

zlmbda

If zlap is a two dimensional array then zlmbda may be a constant. If zlap has 3 or more dimensions then zlmbda must be an array with the same dimensions as zlap (minus the rightmost two dimensions). If zlmbda is identically zero, the poisson equation is solved. Otherwise, the Helmholtz equation is solved.

z

the inverted Laplacian array (output, same dimensions as zlap, values will be in ascending latitude order)

## Description

ilapsg inverts the Laplacian zlap and returns it in the array z. ilapsg operates on a gaussian grid.

This procedure does not handle missing values (defined by the _FillValue attribute). If any missing values are encountered in a particular 2D input grid, then all of the values in the corresponding output grid will be set to the default missing value appropriate to the type of the output.

Note: For the arrays whose last two dimensions are nlat x nlon, the rest of the dimensions (if any) are collectively referred to as N. If the input/output arrays are just two dimensions, then N can either be considered equal to 1 or nothing at all.

Arrays which have dimensions N x nlat x nlon should not include the cyclic (wraparound) points when invoking the procedures and functions which use spherical harmonics (Spherepack).

For example, if an array x has dimensions nlat = 64 and nlon = 129, where the "129" represents the cyclic points, then the user should pass the data to the procedure/function via:

```    z = sample ( x([...],:,0:nlon-2) )  ; does not include cyclic points
```
If the input array zlap is on a fixed grid, ilapsf should be used. Also, note that ilapsg is the procedural version of ilapsG.

## Examples

Example 1

Read Z (on a gaussian grid) from a netCDF file and compute the inverse laplacian, solving the Poisson equation (k=0):

```load "\$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
begin
z200 = a->Z(0,{189.},:,:)			; z200 is dimensioned nlat x nlon
printVarSummary(z200)
ilapl = z200			; preallocate space for return array
ilapsg(z200,0,ilapl)
end
```

## Errors

If jer or ker is equal to:

1 : error in the specification of nlat
2 : error in the specification of nlon
4 : error in the specification of N (jer only)