1 SUBROUTINE CFFTB1(N,C,CH,WA,IFAC) 2C***BEGIN PROLOGUE CFFTB1 3C***REFER TO CFFTB 4C***ROUTINES CALLED PASSB,PASSB2,PASSB3,PASSB4,PASSB5 5C***REVISION HISTORY (YYMMDD) 6C 000330 Modified array declarations. (JEC) 7C 8C***END PROLOGUE CFFTB1 9 DIMENSION CH(*) ,C(*) ,WA(*) ,IFAC(*) 10C***FIRST EXECUTABLE STATEMENT CFFTB1 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 IDOT = IDO+IDO 20 IDL1 = IDOT*L1 21 IF (IP .NE. 4) GO TO 103 22 IX2 = IW+IDOT 23 IX3 = IX2+IDOT 24 IF (NA .NE. 0) GO TO 101 25 CALL PASSB4 (IDOT,L1,C,CH,WA(IW),WA(IX2),WA(IX3)) 26 GO TO 102 27 101 CALL PASSB4 (IDOT,L1,CH,C,WA(IW),WA(IX2),WA(IX3)) 28 102 NA = 1-NA 29 GO TO 115 30 103 IF (IP .NE. 2) GO TO 106 31 IF (NA .NE. 0) GO TO 104 32 CALL PASSB2 (IDOT,L1,C,CH,WA(IW)) 33 GO TO 105 34 104 CALL PASSB2 (IDOT,L1,CH,C,WA(IW)) 35 105 NA = 1-NA 36 GO TO 115 37 106 IF (IP .NE. 3) GO TO 109 38 IX2 = IW+IDOT 39 IF (NA .NE. 0) GO TO 107 40 CALL PASSB3 (IDOT,L1,C,CH,WA(IW),WA(IX2)) 41 GO TO 108 42 107 CALL PASSB3 (IDOT,L1,CH,C,WA(IW),WA(IX2)) 43 108 NA = 1-NA 44 GO TO 115 45 109 IF (IP .NE. 5) GO TO 112 46 IX2 = IW+IDOT 47 IX3 = IX2+IDOT 48 IX4 = IX3+IDOT 49 IF (NA .NE. 0) GO TO 110 50 CALL PASSB5 (IDOT,L1,C,CH,WA(IW),WA(IX2),WA(IX3),WA(IX4)) 51 GO TO 111 52 110 CALL PASSB5 (IDOT,L1,CH,C,WA(IW),WA(IX2),WA(IX3),WA(IX4)) 53 111 NA = 1-NA 54 GO TO 115 55 112 IF (NA .NE. 0) GO TO 113 56 CALL PASSB (NAC,IDOT,IP,L1,IDL1,C,C,C,CH,CH,WA(IW)) 57 GO TO 114 58 113 CALL PASSB (NAC,IDOT,IP,L1,IDL1,CH,CH,CH,C,C,WA(IW)) 59 114 IF (NAC .NE. 0) NA = 1-NA 60 115 L1 = L2 61 IW = IW+(IP-1)*IDOT 62 116 CONTINUE 63 IF (NA .EQ. 0) RETURN 64 N2 = N+N 65 DO 117 I=1,N2 66 C(I) = CH(I) 67 117 CONTINUE 68 RETURN 69 END 70