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