1      SUBROUTINE PASSB5 (IDO,L1,CC,CH,WA1,WA2,WA3,WA4)
2      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3      DIMENSION       CC(IDO,5,L1)           ,CH(IDO,L1,5)           ,
4     1                WA1(1)     ,WA2(1)     ,WA3(1)     ,WA4(1)
5C     *** TR11=COS(2*PI/5), TI11=SIN(2*PI/5)
6C     *** TR12=COS(4*PI/5), TI12=SIN(4*PI/5)
7      DATA TR11,TI11,TR12,TI12 /0.3090169943749474241D0,
8     +     0.95105651629515357212D0,
9     +     -0.8090169943749474241D0,0.58778525229247312917D0/
10      IF (IDO .NE. 2) GO TO 102
11      DO 101 K=1,L1
12         TI5 = CC(2,2,K)-CC(2,5,K)
13         TI2 = CC(2,2,K)+CC(2,5,K)
14         TI4 = CC(2,3,K)-CC(2,4,K)
15         TI3 = CC(2,3,K)+CC(2,4,K)
16         TR5 = CC(1,2,K)-CC(1,5,K)
17         TR2 = CC(1,2,K)+CC(1,5,K)
18         TR4 = CC(1,3,K)-CC(1,4,K)
19         TR3 = CC(1,3,K)+CC(1,4,K)
20         CH(1,K,1) = CC(1,1,K)+TR2+TR3
21         CH(2,K,1) = CC(2,1,K)+TI2+TI3
22         CR2 = CC(1,1,K)+TR11*TR2+TR12*TR3
23         CI2 = CC(2,1,K)+TR11*TI2+TR12*TI3
24         CR3 = CC(1,1,K)+TR12*TR2+TR11*TR3
25         CI3 = CC(2,1,K)+TR12*TI2+TR11*TI3
26         CR5 = TI11*TR5+TI12*TR4
27         CI5 = TI11*TI5+TI12*TI4
28         CR4 = TI12*TR5-TI11*TR4
29         CI4 = TI12*TI5-TI11*TI4
30         CH(1,K,2) = CR2-CI5
31         CH(1,K,5) = CR2+CI5
32         CH(2,K,2) = CI2+CR5
33         CH(2,K,3) = CI3+CR4
34         CH(1,K,3) = CR3-CI4
35         CH(1,K,4) = CR3+CI4
36         CH(2,K,4) = CI3-CR4
37         CH(2,K,5) = CI2-CR5
38  101 CONTINUE
39      RETURN
40  102 DO 104 K=1,L1
41         DO 103 I=2,IDO,2
42            TI5 = CC(I,2,K)-CC(I,5,K)
43            TI2 = CC(I,2,K)+CC(I,5,K)
44            TI4 = CC(I,3,K)-CC(I,4,K)
45            TI3 = CC(I,3,K)+CC(I,4,K)
46            TR5 = CC(I-1,2,K)-CC(I-1,5,K)
47            TR2 = CC(I-1,2,K)+CC(I-1,5,K)
48            TR4 = CC(I-1,3,K)-CC(I-1,4,K)
49            TR3 = CC(I-1,3,K)+CC(I-1,4,K)
50            CH(I-1,K,1) = CC(I-1,1,K)+TR2+TR3
51            CH(I,K,1) = CC(I,1,K)+TI2+TI3
52            CR2 = CC(I-1,1,K)+TR11*TR2+TR12*TR3
53            CI2 = CC(I,1,K)+TR11*TI2+TR12*TI3
54            CR3 = CC(I-1,1,K)+TR12*TR2+TR11*TR3
55            CI3 = CC(I,1,K)+TR12*TI2+TR11*TI3
56            CR5 = TI11*TR5+TI12*TR4
57            CI5 = TI11*TI5+TI12*TI4
58            CR4 = TI12*TR5-TI11*TR4
59            CI4 = TI12*TI5-TI11*TI4
60            DR3 = CR3-CI4
61            DR4 = CR3+CI4
62            DI3 = CI3+CR4
63            DI4 = CI3-CR4
64            DR5 = CR2+CI5
65            DR2 = CR2-CI5
66            DI5 = CI2-CR5
67            DI2 = CI2+CR5
68            CH(I-1,K,2) = WA1(I-1)*DR2-WA1(I)*DI2
69            CH(I,K,2) = WA1(I-1)*DI2+WA1(I)*DR2
70            CH(I-1,K,3) = WA2(I-1)*DR3-WA2(I)*DI3
71            CH(I,K,3) = WA2(I-1)*DI3+WA2(I)*DR3
72            CH(I-1,K,4) = WA3(I-1)*DR4-WA3(I)*DI4
73            CH(I,K,4) = WA3(I-1)*DI4+WA3(I)*DR4
74            CH(I-1,K,5) = WA4(I-1)*DR5-WA4(I)*DI5
75            CH(I,K,5) = WA4(I-1)*DI5+WA4(I)*DR5
76  103    CONTINUE
77  104 CONTINUE
78      RETURN
79      END
80