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