      function lsdFl(m,l,nu)

C******************************************************************
C
C This function returns the value of Lee & Saio's F(l) function,
C as defined in their MNRAS (1987) 221, 513-526 paper. This
C function can have singular values, but these are not checked for;
C the calling procedure must check for such singularities before
C F(l) is called. Note that F(l) is defined in terms of two parameters
C nu and m.
C
C (c) Richard Townsend 1995
C
C******************************************************************

      implicit none	! Turn off implicit typing

C Declare the passed variables

      double precision lsdFl	! The value of F(l)
      integer m	     		! The m-value of the F(l) function to be used
      double precision nu       ! The nu (rotation parameter) for F(l) function
      integer l	     		! The value of l to calculate F(l) at.

C Declare the in-program variables

      double precision lsdJml	! Lee & Saio's Jml(l,m) function - see MNRAS 221

C Set up the value of Fl...

      if(l.le.iabs(m)) then

        lsdFl=l*(l+2) * (lsdJml(m,l+1))**2 / ((l+1)**2 * 
     :   (1-m*nu/((l+1)*(l+2)) ) )

      else
        if(l.eq.1.and.m.eq.0) then
          lsdFl=
     :   l*(l+2) * (lsdJml(m,l+1))**2 / ((l+1)**2 * 
     :   (1-m*nu/((l+1)*(l+2)) ) )
        else
          lsdFl=(l**2-1) * (lsdJml(m,l))**2 / 
     :   (l**2 * (1 - m*nu/( (l-1)*l) ) ) +
     :   l*(l+2) * (lsdJml(m,l+1))**2 / ((l+1)**2 * 
     :   (1-m*nu/((l+1)*(l+2)) ) )
        endif
      endif

C Return...

      return

      end





