LGNDR1.inc
References to this file elsewhere.
1 SUBROUTINE LGNDR1(COA,MFP,ALP,DALP)
2 C
3 Crizvi DIMENSION ALP(1),DALP(1)
4 DIMENSION ALP(*),DALP(*)
5 C
6 SIA=SQRT(1.D0-COA*COA)
7 LM=2
8 LMD=1
9 ALP(1)=1.D0
10 F1M=SQRT(3.0D0)
11 ALP(2)=F1M*COA
12 DALP(1)=0.D0
13 DO 1 M1=1,MFP
14 M=M1-1
15 AM=M
16 A2M=M+M
17 RE1=SQRT(A2M+3.D0)
18 E1=1.D0/RE1
19 IF(M.EQ.0) GO TO 3
20 F2M=F1M*SIA/SQRT(A2M)
21 F1M=F2M*RE1
22 LM=LM+1
23 ALP(LM)=F2M
24 IF(M1.NE.MFP) GO TO 2
25 LMD=LMD+1
26 DALP(LMD)=AM*E1*F1M*COA
27 GO TO 1
28 2 LM=LM+1
29 ALP(LM)=F1M*COA
30 LMD=LMD+1
31 DALP(LMD)=AM*E1*ALP(LM)
32 3 M2=M+2
33 *vdir NOVEC
34 DO 4 N=M2,MFP
35 AN=N
36 AN2=N*N
37 E2=SQRT((4.D0*AN2-1.D0)/(AN2-AM*AM))
38 LM=LM+1
39 ALP(LM)=E2*(COA*ALP(LM-1)-E1*ALP(LM-2))
40 E2=1.D0/E2
41 LMD=LMD+1
42 DALP(LMD)=(AN-1.D0)*E2*ALP(LM)-AN*E1*ALP(LM-2)
43 E1=E2
44 4 CONTINUE
45 LM =LM -1
46 1 CONTINUE
47 RETURN
48 END SUBROUTINE LGNDR1
49