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