1 SUBROUTINE RFFTF1 (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 = 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