RFTI1M.inc
References to this file elsewhere.
1 C***********************************************************************
2 SUBROUTINE RFTI1M (N, WA,IFAC)
3 DIMENSION WA(N) ,IFAC(*) ,NTRYH(4)
4 REAL*8 ARG, ARGLD, ARGH, TPI
5 DATA NTRYH(1),NTRYH(2),NTRYH(3),NTRYH(4) /4,2,3,5/
6 DATA TPI /6.283185307179590/
7 NL = N
8 NF = 0
9 J = 0
10 101 J = J+1
11 IF (J .LE. 4) THEN
12 NTRY = NTRYH(J)
13 ELSE
14 NTRY = NTRY+2
15 ENDIF
16 104 NQ = NL/NTRY
17 NR = NL-NTRY*NQ
18 IF (NR .NE. 0) GO TO 101
19 NF = NF+1
20 IFAC(NF+2) = NTRY
21 NL = NQ
22 IF (NTRY .NE. 2) GO TO 107
23 IF (NF .EQ. 1) GO TO 107
24 *VOPTION NOFVAL
25 DO 106 I=2,NF
26 IB = NF-I+2
27 IFAC(IB+2) = IFAC(IB+1)
28 106 CONTINUE
29 IFAC(3) = 2
30 107 IF (NL .NE. 1) GO TO 104
31 IFAC(1) = N
32 IFAC(2) = NF
33 ARGH = TPI/N
34 IS = 0
35 NFM1 = NF-1
36 L1 = 1
37 IF (NFM1 .EQ. 0) RETURN
38 DO 110 K1=1,NFM1
39 IP = IFAC(K1+2)
40 LD = 0
41 L2 = L1*IP
42 IDO = N/L2
43 IPM = IP-1
44 DO 109 J=1,IPM
45 LD = LD+L1
46 ARGLD = LD*ARGH
47 IDOX = (IDO-1)/2
48 *VOPTION NOFVAL
49 DO 108 IFI=1,IDOX
50 ARG = IFI*ARGLD
51 WA(2*IFI+IS-1) = COS(ARG)
52 WA(2*IFI+IS ) = SIN(ARG)
53 108 CONTINUE
54 IS = IS+IDO
55 109 CONTINUE
56 L1 = L2
57 110 CONTINUE
58 RETURN
59 END SUBROUTINE RFTI1M
60