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