1      SUBROUTINE CFFTB1(N,C,CH,WA,IFAC)
2C***BEGIN PROLOGUE  CFFTB1
3C***REFER TO  CFFTB
4C***ROUTINES CALLED  PASSB,PASSB2,PASSB3,PASSB4,PASSB5
5C***REVISION HISTORY  (YYMMDD)
6C   000330  Modified array declarations.  (JEC)
7C
8C***END PROLOGUE  CFFTB1
9      DIMENSION       CH(*)      ,C(*)       ,WA(*)      ,IFAC(*)
10C***FIRST EXECUTABLE STATEMENT  CFFTB1
11      NF = IFAC(2)
12      NA = 0
13      L1 = 1
14      IW = 1
15      DO 116 K1=1,NF
16         IP = IFAC(K1+2)
17         L2 = IP*L1
18         IDO = N/L2
19         IDOT = IDO+IDO
20         IDL1 = IDOT*L1
21         IF (IP .NE. 4) GO TO 103
22         IX2 = IW+IDOT
23         IX3 = IX2+IDOT
24         IF (NA .NE. 0) GO TO 101
25         CALL PASSB4 (IDOT,L1,C,CH,WA(IW),WA(IX2),WA(IX3))
26         GO TO 102
27  101    CALL PASSB4 (IDOT,L1,CH,C,WA(IW),WA(IX2),WA(IX3))
28  102    NA = 1-NA
29         GO TO 115
30  103    IF (IP .NE. 2) GO TO 106
31         IF (NA .NE. 0) GO TO 104
32         CALL PASSB2 (IDOT,L1,C,CH,WA(IW))
33         GO TO 105
34  104    CALL PASSB2 (IDOT,L1,CH,C,WA(IW))
35  105    NA = 1-NA
36         GO TO 115
37  106    IF (IP .NE. 3) GO TO 109
38         IX2 = IW+IDOT
39         IF (NA .NE. 0) GO TO 107
40         CALL PASSB3 (IDOT,L1,C,CH,WA(IW),WA(IX2))
41         GO TO 108
42  107    CALL PASSB3 (IDOT,L1,CH,C,WA(IW),WA(IX2))
43  108    NA = 1-NA
44         GO TO 115
45  109    IF (IP .NE. 5) GO TO 112
46         IX2 = IW+IDOT
47         IX3 = IX2+IDOT
48         IX4 = IX3+IDOT
49         IF (NA .NE. 0) GO TO 110
50         CALL PASSB5 (IDOT,L1,C,CH,WA(IW),WA(IX2),WA(IX3),WA(IX4))
51         GO TO 111
52  110    CALL PASSB5 (IDOT,L1,CH,C,WA(IW),WA(IX2),WA(IX3),WA(IX4))
53  111    NA = 1-NA
54         GO TO 115
55  112    IF (NA .NE. 0) GO TO 113
56         CALL PASSB (NAC,IDOT,IP,L1,IDL1,C,C,C,CH,CH,WA(IW))
57         GO TO 114
58  113    CALL PASSB (NAC,IDOT,IP,L1,IDL1,CH,CH,CH,C,C,WA(IW))
59  114    IF (NAC .NE. 0) NA = 1-NA
60  115    L1 = L2
61         IW = IW+(IP-1)*IDOT
62  116 CONTINUE
63      IF (NA .EQ. 0) RETURN
64      N2 = N+N
65      DO 117 I=1,N2
66         C(I) = CH(I)
67  117 CONTINUE
68      RETURN
69      END
70