1      SUBROUTINE RFFTB1 (N,C,CH,WA,IFAC)
2      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3      DIMENSION       CH(*)      ,C(*)       ,WA(*)      ,IFAC(*)
4      NF = IFAC(2)
5      NA = 0
6      L1 = 1
7      IW = 1
8      DO 116 K1=1,NF
9         IP = IFAC(K1+2)
10         L2 = IP*L1
11         IDO = N/L2
12         IDL1 = IDO*L1
13         IF (IP .NE. 4) GO TO 103
14         IX2 = IW+IDO
15         IX3 = IX2+IDO
16         IF (NA .NE. 0) GO TO 101
17         CALL RADB4 (IDO,L1,C,CH,WA(IW),WA(IX2),WA(IX3))
18         GO TO 102
19  101    CALL RADB4 (IDO,L1,CH,C,WA(IW),WA(IX2),WA(IX3))
20  102    NA = 1-NA
21         GO TO 115
22  103    IF (IP .NE. 2) GO TO 106
23         IF (NA .NE. 0) GO TO 104
24         CALL RADB2 (IDO,L1,C,CH,WA(IW))
25         GO TO 105
26  104    CALL RADB2 (IDO,L1,CH,C,WA(IW))
27  105    NA = 1-NA
28         GO TO 115
29  106    IF (IP .NE. 3) GO TO 109
30         IX2 = IW+IDO
31         IF (NA .NE. 0) GO TO 107
32         CALL RADB3 (IDO,L1,C,CH,WA(IW),WA(IX2))
33         GO TO 108
34  107    CALL RADB3 (IDO,L1,CH,C,WA(IW),WA(IX2))
35  108    NA = 1-NA
36         GO TO 115
37  109    IF (IP .NE. 5) GO TO 112
38         IX2 = IW+IDO
39         IX3 = IX2+IDO
40         IX4 = IX3+IDO
41         IF (NA .NE. 0) GO TO 110
42         CALL RADB5 (IDO,L1,C,CH,WA(IW),WA(IX2),WA(IX3),WA(IX4))
43         GO TO 111
44  110    CALL RADB5 (IDO,L1,CH,C,WA(IW),WA(IX2),WA(IX3),WA(IX4))
45  111    NA = 1-NA
46         GO TO 115
47  112    IF (NA .NE. 0) GO TO 113
48         CALL RADBG (IDO,IP,L1,IDL1,C,C,C,CH,CH,WA(IW))
49         GO TO 114
50  113    CALL RADBG (IDO,IP,L1,IDL1,CH,CH,CH,C,C,WA(IW))
51  114    IF (IDO .EQ. 1) NA = 1-NA
52  115    L1 = L2
53         IW = IW+(IP-1)*IDO
54  116 CONTINUE
55      IF (NA .EQ. 0) RETURN
56      DO 117 I=1,N
57         C(I) = CH(I)
58  117 CONTINUE
59      RETURN
60      END
61