1      SUBROUTINE PASSB5(IDO,L1,CC,CH,WA1,WA2,WA3,WA4)
2C***BEGIN PROLOGUE  PASSB5
3C***REFER TO  CFFTB
4C***ROUTINES CALLED  (NONE)
5C***REVISION HISTORY  (YYMMDD)
6C   000330  Modified array declarations.  (JEC)
7C
8C***END PROLOGUE  PASSB5
9      DIMENSION       CC(IDO,5,L1)           ,CH(IDO,L1,5)           ,
10     1                WA1(*)     ,WA2(*)     ,WA3(*)     ,WA4(*)
11      DATA TR11,TI11,TR12,TI12 /.309016994374947,.951056516295154,
12     1-.809016994374947,.587785252292473/
13C***FIRST EXECUTABLE STATEMENT  PASSB5
14      IF (IDO .NE. 2) GO TO 102
15      DO 101 K=1,L1
16         TI5 = CC(2,2,K)-CC(2,5,K)
17         TI2 = CC(2,2,K)+CC(2,5,K)
18         TI4 = CC(2,3,K)-CC(2,4,K)
19         TI3 = CC(2,3,K)+CC(2,4,K)
20         TR5 = CC(1,2,K)-CC(1,5,K)
21         TR2 = CC(1,2,K)+CC(1,5,K)
22         TR4 = CC(1,3,K)-CC(1,4,K)
23         TR3 = CC(1,3,K)+CC(1,4,K)
24         CH(1,K,1) = CC(1,1,K)+TR2+TR3
25         CH(2,K,1) = CC(2,1,K)+TI2+TI3
26         CR2 = CC(1,1,K)+TR11*TR2+TR12*TR3
27         CI2 = CC(2,1,K)+TR11*TI2+TR12*TI3
28         CR3 = CC(1,1,K)+TR12*TR2+TR11*TR3
29         CI3 = CC(2,1,K)+TR12*TI2+TR11*TI3
30         CR5 = TI11*TR5+TI12*TR4
31         CI5 = TI11*TI5+TI12*TI4
32         CR4 = TI12*TR5-TI11*TR4
33         CI4 = TI12*TI5-TI11*TI4
34         CH(1,K,2) = CR2-CI5
35         CH(1,K,5) = CR2+CI5
36         CH(2,K,2) = CI2+CR5
37         CH(2,K,3) = CI3+CR4
38         CH(1,K,3) = CR3-CI4
39         CH(1,K,4) = CR3+CI4
40         CH(2,K,4) = CI3-CR4
41         CH(2,K,5) = CI2-CR5
42  101 CONTINUE
43      RETURN
44  102 IF(IDO/2.LT.L1) GO TO 105
45      DO 104 K=1,L1
46CDIR$ IVDEP
47         DO 103 I=2,IDO,2
48            TI5 = CC(I,2,K)-CC(I,5,K)
49            TI2 = CC(I,2,K)+CC(I,5,K)
50            TI4 = CC(I,3,K)-CC(I,4,K)
51            TI3 = CC(I,3,K)+CC(I,4,K)
52            TR5 = CC(I-1,2,K)-CC(I-1,5,K)
53            TR2 = CC(I-1,2,K)+CC(I-1,5,K)
54            TR4 = CC(I-1,3,K)-CC(I-1,4,K)
55            TR3 = CC(I-1,3,K)+CC(I-1,4,K)
56            CH(I-1,K,1) = CC(I-1,1,K)+TR2+TR3
57            CH(I,K,1) = CC(I,1,K)+TI2+TI3
58            CR2 = CC(I-1,1,K)+TR11*TR2+TR12*TR3
59            CI2 = CC(I,1,K)+TR11*TI2+TR12*TI3
60            CR3 = CC(I-1,1,K)+TR12*TR2+TR11*TR3
61            CI3 = CC(I,1,K)+TR12*TI2+TR11*TI3
62            CR5 = TI11*TR5+TI12*TR4
63            CI5 = TI11*TI5+TI12*TI4
64            CR4 = TI12*TR5-TI11*TR4
65            CI4 = TI12*TI5-TI11*TI4
66            DR3 = CR3-CI4
67            DR4 = CR3+CI4
68            DI3 = CI3+CR4
69            DI4 = CI3-CR4
70            DR5 = CR2+CI5
71            DR2 = CR2-CI5
72            DI5 = CI2-CR5
73            DI2 = CI2+CR5
74            CH(I-1,K,2) = WA1(I-1)*DR2-WA1(I)*DI2
75            CH(I,K,2) = WA1(I-1)*DI2+WA1(I)*DR2
76            CH(I-1,K,3) = WA2(I-1)*DR3-WA2(I)*DI3
77            CH(I,K,3) = WA2(I-1)*DI3+WA2(I)*DR3
78            CH(I-1,K,4) = WA3(I-1)*DR4-WA3(I)*DI4
79            CH(I,K,4) = WA3(I-1)*DI4+WA3(I)*DR4
80            CH(I-1,K,5) = WA4(I-1)*DR5-WA4(I)*DI5
81            CH(I,K,5) = WA4(I-1)*DI5+WA4(I)*DR5
82  103    CONTINUE
83  104 CONTINUE
84      RETURN
85  105 DO 107 I=2,IDO,2
86CDIR$ IVDEP
87         DO 106 K=1,L1
88            TI5 = CC(I,2,K)-CC(I,5,K)
89            TI2 = CC(I,2,K)+CC(I,5,K)
90            TI4 = CC(I,3,K)-CC(I,4,K)
91            TI3 = CC(I,3,K)+CC(I,4,K)
92            TR5 = CC(I-1,2,K)-CC(I-1,5,K)
93            TR2 = CC(I-1,2,K)+CC(I-1,5,K)
94            TR4 = CC(I-1,3,K)-CC(I-1,4,K)
95            TR3 = CC(I-1,3,K)+CC(I-1,4,K)
96            CH(I-1,K,1) = CC(I-1,1,K)+TR2+TR3
97            CH(I,K,1) = CC(I,1,K)+TI2+TI3
98            CR2 = CC(I-1,1,K)+TR11*TR2+TR12*TR3
99            CI2 = CC(I,1,K)+TR11*TI2+TR12*TI3
100            CR3 = CC(I-1,1,K)+TR12*TR2+TR11*TR3
101            CI3 = CC(I,1,K)+TR12*TI2+TR11*TI3
102            CR5 = TI11*TR5+TI12*TR4
103            CI5 = TI11*TI5+TI12*TI4
104            CR4 = TI12*TR5-TI11*TR4
105            CI4 = TI12*TI5-TI11*TI4
106            DR3 = CR3-CI4
107            DR4 = CR3+CI4
108            DI3 = CI3+CR4
109            DI4 = CI3-CR4
110            DR5 = CR2+CI5
111            DR2 = CR2-CI5
112            DI5 = CI2-CR5
113            DI2 = CI2+CR5
114            CH(I-1,K,2) = WA1(I-1)*DR2-WA1(I)*DI2
115            CH(I,K,2) = WA1(I-1)*DI2+WA1(I)*DR2
116            CH(I-1,K,3) = WA2(I-1)*DR3-WA2(I)*DI3
117            CH(I,K,3) = WA2(I-1)*DI3+WA2(I)*DR3
118            CH(I-1,K,4) = WA3(I-1)*DR4-WA3(I)*DI4
119            CH(I,K,4) = WA3(I-1)*DI4+WA3(I)*DR4
120            CH(I-1,K,5) = WA4(I-1)*DR5-WA4(I)*DI5
121            CH(I,K,5) = WA4(I-1)*DI5+WA4(I)*DR5
122  106    CONTINUE
123  107 CONTINUE
124      RETURN
125      END
126