1 subroutine dfftb1 ( n, in, c, ch, wa, fac )
3 !*****************************************************************************80
5 !! DFFTB1 is an FFTPACK5 auxiliary routine.
15 ! Original real single precision by Paul Swarztrauber, Richard Valent.
16 ! Real double precision version by John Burkardt.
21 ! Vectorizing the Fast Fourier Transforms,
22 ! in Parallel Computations,
23 ! edited by G. Rodrigue,
24 ! Academic Press, 1982.
27 ! Fast Fourier Transform Algorithms for Vector Computers,
28 ! Parallel Computing, pages 45-63, 1984.
34 integer ( kind = 4 ) in
35 integer ( kind = 4 ) n
37 real ( kind = 8 ) c(in,*)
38 real ( kind = 8 ) ch(*)
39 real ( kind = 8 ) fac(15)
40 real ( kind = 8 ) half
41 real ( kind = 8 ) halfm
42 integer ( kind = 4 ) idl1
43 integer ( kind = 4 ) ido
44 integer ( kind = 4 ) ip
45 integer ( kind = 4 ) iw
46 integer ( kind = 4 ) ix2
47 integer ( kind = 4 ) ix3
48 integer ( kind = 4 ) ix4
49 integer ( kind = 4 ) j
50 integer ( kind = 4 ) k1
51 integer ( kind = 4 ) l1
52 integer ( kind = 4 ) l2
53 integer ( kind = 4 ) modn
54 integer ( kind = 4 ) na
55 integer ( kind = 4 ) nf
56 integer ( kind = 4 ) nl
57 real ( kind = 8 ) wa(n)
64 ip = int ( fac(k1+2) )
86 c(1,j) = half * c(1,j)
87 c(1,j+1) = halfm * c(1,j+1)
97 ch(j+1) = halfm * c(1,j+1)
107 ip = int ( fac(k1+2) )
118 call d1f4kb ( ido, l1, c, in, ch, 1, wa(iw), wa(ix2), wa(ix3) )
120 call d1f4kb ( ido, l1, ch, 1, c, in, wa(iw), wa(ix2), wa(ix3) )
125 else if ( ip == 2 ) then
128 call d1f2kb ( ido, l1, c, in, ch, 1, wa(iw) )
130 call d1f2kb ( ido, l1, ch, 1, c, in, wa(iw) )
135 else if ( ip == 3 ) then
140 call d1f3kb ( ido, l1, c, in, ch, 1, wa(iw), wa(ix2) )
142 call d1f3kb ( ido, l1, ch, 1, c, in, wa(iw), wa(ix2) )
147 else if ( ip == 5 ) then
154 call d1f5kb ( ido, l1, c, in, ch, 1, wa(iw), wa(ix2), wa(ix3), wa(ix4) )
156 call d1f5kb ( ido, l1, ch, 1, c, in, wa(iw), wa(ix2), wa(ix3), wa(ix4) )
164 call d1fgkb ( ido, ip, l1, idl1, c, c, c, in, ch, ch, 1, wa(iw) )
166 call d1fgkb ( ido, ip, l1, idl1, ch, ch, ch, 1, c, c, in, wa(iw) )
176 iw = iw + ( ip - 1 ) * ido