 
C *** SUBROUTINE XLEGF ***
C
C     SUBROUTINE XLEGF(DNU1,NUDIFF,MU1,MU2,THETA,ID,PQA,IPQA)
C
C     INTEGER MU1,MU2,ID,IPQA
C     DOUBLE PRECISION NU1,NU2,THETA,PQA
C
C
C        PURPOSE:
C
C        SUBROUTINE XLEGF ('EXTENDED RANGE LEGENDRE FUNCTIONS')
C        CALCULATES AND RETURNS ONE OF THE FOLLOWING VECTORS:
C
C         1. LEGENDRE FUNCTION OF THE FIRST KIND (NEGATIVE ORDER)
C          A. P(-MU1,NU1,X),P(-MU1-1,NU1,X), . . . ,P(-MU2,NU1,X)
C          B. P(-MU1,NU1,X),P(-MU1,NU1+1,X), . . . ,P(-MU1,NU2,X)
C
C         2. LEGENDRE FUNCTION OF THE SECOND KIND
C          A. Q( MU1,NU1,X),Q( MU1+1,NU1,X), . . . ,Q( MU2,NU1,X)
C          B. Q( MU1,NU1,X),Q( MU1,NU1+1,X), . . . ,Q( MU1,NU2,X)
C
C         3. LEGENDRE FUNCTION OF THE FIRST KIND (POSITIVE ORDER)
C          A. P( MU1,NU1,X),P( MU1+1,NU1,X), . . . ,P( MU2,NU1,X)
C          B. P( MU1,NU1,X),P( MU1,NU1+1,X), . . . ,P( MU1,NU2,X)
C
C         4. NORMALIZED LEGENDRE FUNCTIONS POLYNOMIALS
C          A. NP(MU1,NU1,X),NP(MU1+1,NU1,X), . . . ,NP(MU2,NU1,X)
C          B. NP(MU1,NU1,X),NP(MU1,NU1+1,X), . . . ,NP(MU1,NU2,X)
C
C        WHERE X = COS(THETA) AND NU2 = NU1+NUDIFF
C
C
C        INPUT RESTRICTIONS:
C
C          1. 0. .LT. THETA .AND. THETA .LE. PI/2. = 2.*ATAN(1.)
C
C          2. -.5 .LE. NU1   .AND.   NU1 .LE. NU2
C
C          3. 0. .LE. MU1   .AND.   MU1 .LE. MU2
C
C          4. NU1 .EQ. NU2   .OR.   MU1 .EQ. MU2
C
C          5. ID = 1, 2, 3, OR 4
C             IF ID=1, TYPE 1 VECTOR (SEE ABOVE) IS CALCULATED.
C             IF ID=2, TYPE 2 VECTOR (SEE ABOVE) IS CALCULATED.
C             IF ID=3, TYPE 3 VECTOR (SEE ABOVE) IS CALCULATED.
C             IF ID=4, TYPE 4 VECTOR (SEE ABOVE) IS CALCULATED.
C
C
C        RETURNED VALUES:
C
C          ARRAY PQA CONTAINS THE CALCULATED VECTOR.
C          ARRAY IPQA CONTAINS AUXILIARY EXPONENTS ASSOCIATED WITH
C          ARRAY PQA. VALUESALUES OF ID,NU1,NU2,MU1,MU2, AND THETA
C          ARE RETURNED WITHOUT CHANGE.
C
C        * * * P A R A M E T E R S * * *
C
C        J0, IPSIK, AND IPSIX ARE INITIALIZED IN SUBROUTINE XPQNU.
C        J0 IS THE NUMBER OF TERMS USED IN SERIES EXPANSION
C        IN SUBROUTINE XPQNU.
C        IPSIK, IPSIX ARE VALUES OF K AND X RESPECTIVELY
C        USED IN THE CALCULATION OF THE XPSI FUNCTION.
C
C        RELATIONSHIPS TO WORKING SUBROUTINES:
C
C        FOR FIXED NU, VARIABLE MU, ID = 1, 3, OR 4, XLEGF
C        CALLS XPMU TO CALCULATE P(-MU1,NU,X),....,P(-MU2,NU,X)
C
C        FOR FIXED MU, VARIABLE NU, ID = 1, 3, OR 4, XLEGF
C        CALLS XPQNU TO CALCULATE P(-MU,NU1,X),....,P(-MU,NU2,X)
C
C        IF ID = 3, XLEGF CALLS XPMUP TO TRANSFORM THE P(-MU,NU,X)
C        VECTOR INTO THE P(MU,NU,X) VECTOR.
C
C        IF ID = 4, XLEGF CALLS XPNORM TO TRANSFORM THE P(-MU,NU,X)
C        VECTOR INTO THE NORMALIZED P(MU,NU,X) VECTOR.
C
C        FOR FIXED NU, VARIABLE MU, ID = 2, XLEGF
C        CALLS XQMU TO CALCULATE Q(MU1,NU,X),....,Q(MU2,NU,X)
C
C        FOR FIXED MU, VARIABLE NU, ID = 2, XLEGF
C        CALLS XQNU TO CALCULATE Q(MU,NU1,X),....,Q(MU,NU2,X)
C
C        REFERENCE: F.W.J. OLVER AND J.M. SMITH, 'ASSOCIATED LEGENDRE
C        FUNCTIONS ON THE CUT,' SUBMITTED TO JOURNAL OF COMPUTATIONAL
C        PHYSICS.
C
C        XLEGF USES EXTENDED RANGE ARITHMETIC (SEE DOCUMENTATION FOR
C        FCNPAK SUBROUTINE SETUP).
C
 
 
