C ALGORITHM 473 COLLECTED ALGORITHMS FROM ACM. C ALGORITHM APPEARED IN COMM. ACM, VOL. 17, NO. 01, C P. 025. SUBROUTINE LEGSER(A,B,N) C THIS SUBROUTINE CALCULATES THE COEFFICIENTS OF THE C LEGENDRE SERIES EXPANSION OF A FUNCTION HAVING C KNOWN CHEBYSHEV SERIES EXPANSION. C C INPUT PARAMETERS C N DEGREE OF THE TRUNCATED CHEBYSHEV SERIES C A VECTOR OF DIMENSION N+1 WHICH CONTAINS THE C CHEBYSHEV COEFFICIENTS C C OUTPUT PARAMETER C B VECTOR OF DIMENSION N+1 WHICH CONTAINS THE C LEGENDRE COEFFICIENTS C REAL A,AK,AL,B,BB,C,D INTEGER K,L,LL,N,N1 DIMENSION A(251),B(251) N1 = N+1 AK = 0.0E0 C CALCULATION OF THE FIRST LEGENDRE COEFFICIENT B(1) = 0.5E0*A(1) IF(N-1) 7,3,1 1 DO 2 K=3,N1,2 AK = AK+2.0E0 2 B(1) = B(1)-A(K)/(AK*AK-1.0E0) 3 C = 2.0E0/3.0E0 AL = 0.0E0 C START MAIN LOOP DO 6 L=2,N1 C CALCULATION OF THE L-TH LEGENDRE COEFFICIENT LL = L+2 AL = AL+1.0E0 BB = C*A(L) IF(LL.GT.N1) GOTO 5 D = C AK = AL DO 4 K=LL,N1,2 D = ((AK-1.0E0)*AK-AL*(AL+1.0E0))*(AK+2.0E0)*D/ 1 (((AK+3.0E0)*(AK+2.0E0)-AL*(AL+1.0E0))*AK) BB = BB+A(K)*D 4 AK = AK+2.0E0 5 C = 4.0E0*C*(AL+1.0E0)*(AL+1.0E0)/((AL+AL+3.0E0) 1 *(AL+AL+2.0E0)) 6 B(L) = (AL+0.5E0)*BB 7 RETURN END