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