|
| 1 | + SUBROUTINE CFFTB1 (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 | + IDOT = IDO+IDO |
| 13 | + IDL1 = IDOT*L1 |
| 14 | + IF (IP .NE. 4) GO TO 103 |
| 15 | + IX2 = IW+IDOT |
| 16 | + IX3 = IX2+IDOT |
| 17 | + IF (NA .NE. 0) GO TO 101 |
| 18 | + CALL PASSB4 (IDOT,L1,C,CH,WA(IW),WA(IX2),WA(IX3)) |
| 19 | + GO TO 102 |
| 20 | + 101 CALL PASSB4 (IDOT,L1,CH,C,WA(IW),WA(IX2),WA(IX3)) |
| 21 | + 102 NA = 1-NA |
| 22 | + GO TO 115 |
| 23 | + 103 IF (IP .NE. 2) GO TO 106 |
| 24 | + IF (NA .NE. 0) GO TO 104 |
| 25 | + CALL PASSB2 (IDOT,L1,C,CH,WA(IW)) |
| 26 | + GO TO 105 |
| 27 | + 104 CALL PASSB2 (IDOT,L1,CH,C,WA(IW)) |
| 28 | + 105 NA = 1-NA |
| 29 | + GO TO 115 |
| 30 | + 106 IF (IP .NE. 3) GO TO 109 |
| 31 | + IX2 = IW+IDOT |
| 32 | + IF (NA .NE. 0) GO TO 107 |
| 33 | + CALL PASSB3 (IDOT,L1,C,CH,WA(IW),WA(IX2)) |
| 34 | + GO TO 108 |
| 35 | + 107 CALL PASSB3 (IDOT,L1,CH,C,WA(IW),WA(IX2)) |
| 36 | + 108 NA = 1-NA |
| 37 | + GO TO 115 |
| 38 | + 109 IF (IP .NE. 5) GO TO 112 |
| 39 | + IX2 = IW+IDOT |
| 40 | + IX3 = IX2+IDOT |
| 41 | + IX4 = IX3+IDOT |
| 42 | + IF (NA .NE. 0) GO TO 110 |
| 43 | + CALL PASSB5 (IDOT,L1,C,CH,WA(IW),WA(IX2),WA(IX3),WA(IX4)) |
| 44 | + GO TO 111 |
| 45 | + 110 CALL PASSB5 (IDOT,L1,CH,C,WA(IW),WA(IX2),WA(IX3),WA(IX4)) |
| 46 | + 111 NA = 1-NA |
| 47 | + GO TO 115 |
| 48 | + 112 IF (NA .NE. 0) GO TO 113 |
| 49 | + CALL PASSB (NAC,IDOT,IP,L1,IDL1,C,C,C,CH,CH,WA(IW)) |
| 50 | + GO TO 114 |
| 51 | + 113 CALL PASSB (NAC,IDOT,IP,L1,IDL1,CH,CH,CH,C,C,WA(IW)) |
| 52 | + 114 IF (NAC .NE. 0) NA = 1-NA |
| 53 | + 115 L1 = L2 |
| 54 | + IW = IW+(IP-1)*IDOT |
| 55 | + 116 CONTINUE |
| 56 | + IF (NA .EQ. 0) RETURN |
| 57 | + N2 = N+N |
| 58 | + DO 117 I=1,N2 |
| 59 | + C(I) = CH(I) |
| 60 | + 117 CONTINUE |
| 61 | + RETURN |
| 62 | + END |
0 commit comments