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