```
SPLEGEND

The SPLEGEND routine evaluates the Orthonormal associated
legendre Polynomials in the spectral domain at a
given latitude.
Subprogram SPLEGEND should be called already.
If l is the zonal wavenumber, n is the total wavenumber,
and eps(l,n)=sqrt((n**2-l**2)/(4*n**2-1)) then
The following bootstrapping formulas are used:
pln(0,0)=sqrt(0.5)
pln(l,l)=pln(l-1,l-1)*clat*sqrt(float(2*l+1)/float(2*l))
pln(l,n)=(slat*pln(l,n-1)-eps(l,n-1)*pln(l,n-2))/eps(l,n)
Synthesis at the pole needs only two zonal wavenumbers.
Scalar fields are synthesized with zonal wavenumber 0 while
vector fields are synthesized with zonal wavenumber 1.
(Thus polar vector fields are implicitly divided by clat.)
The following bootstrapping formulas are used at the pole:
pln(0,0)=sqrt(0.5)
pln(1,1)=sqrt(0.75)
pln(l,n)=(pln(l,n-1)-eps(l,n-1)*pln(l,n-2))/eps(l,n)

USAGE:    CALL SPLEGEND(I,M,SLAT,CLAT,EPS,EPSTOP,PLN,PLNTOP)

Input argument list:
I        - INTEGER SPECTRAL DOMAIN SHAPE
(0 FOR TRIANGULAR, 1 FOR RHOMBOIDAL)
M        - INTEGER SPECTRAL TRUNCATION
SLAT     - REAL SINE OF LATITUDE
CLAT     - REAL COSINE OF LATITUDE
EPS      - REAL ((M+1)*((I+1)*M+2)/2) SQRT((N**2-L**2)/(4*N**2-1))
EPSTOP   - REAL (M+1) SQRT((N**2-L**2)/(4*N**2-1)) OVER TOP

Output argument list:
PLN      - REAL ((M+1)*((I+1)*M+2)/2) LEGENDRE POLYNOMIAL
PLNTOP   - REAL (M+1) LEGENDRE POLYNOMIAL OVER TOP

SPLIB.tar
Library contains routines to be
be used for a variety of spectral transform functions. (Fortran90)
Date posted: 2/23/2007

```