1 subroutine mrftb1 ( m, im, n, in, c, ch, wa, fac )
3 !*****************************************************************************80
5 !! MRFTB1 is an FFTPACK5 auxiliary routine.
8 ! Copyright (C) 1995-2004, Scientific Computing Division,
9 ! University Corporation for Atmospheric Research
23 ! Vectorizing the Fast Fourier Transforms,
24 ! in Parallel Computations,
25 ! edited by G. Rodrigue,
26 ! Academic Press, 1982.
29 ! Fast Fourier Transform Algorithms for Vector Computers,
30 ! Parallel Computing, pages 45-63, 1984.
36 integer ( kind = 4 ) in
37 integer ( kind = 4 ) m
38 integer ( kind = 4 ) n
40 real ( kind = 4 ) c(in,*)
41 real ( kind = 4 ) ch(m,*)
42 real ( kind = 4 ) fac(15)
43 real ( kind = 4 ) half
44 real ( kind = 4 ) halfm
45 integer ( kind = 4 ) i
46 integer ( kind = 4 ) idl1
47 integer ( kind = 4 ) ido
48 integer ( kind = 4 ) im
49 integer ( kind = 4 ) ip
50 integer ( kind = 4 ) iw
51 integer ( kind = 4 ) ix2
52 integer ( kind = 4 ) ix3
53 integer ( kind = 4 ) ix4
54 integer ( kind = 4 ) j
55 integer ( kind = 4 ) k1
56 integer ( kind = 4 ) l1
57 integer ( kind = 4 ) l2
58 integer ( kind = 4 ) m2
59 integer ( kind = 4 ) modn
60 integer ( kind = 4 ) na
61 integer ( kind = 4 ) nf
62 integer ( kind = 4 ) nl
63 real ( kind = 4 ) wa(n)
70 ip = int ( fac(k1+2) )
95 c(m2,j) = half * c(m2,j)
96 c(m2,j+1) = halfm * c(m2,j+1)
114 ch(i,j) = half * c(m2,j)
115 ch(i,j+1) = halfm * c(m2,j+1)
126 ip = int ( fac(k1+2) )
137 call mradb4 ( m, ido, l1, c, im, in, ch, 1, m, wa(iw), wa(ix2), &
140 call mradb4 ( m, ido, l1, ch, 1, m, c, im, in, wa(iw), wa(ix2), &
146 else if ( ip == 2 ) then
149 call mradb2 ( m, ido, l1, c, im, in, ch, 1, m, wa(iw) )
151 call mradb2 ( m, ido, l1, ch, 1, m, c, im, in, wa(iw) )
156 else if ( ip == 3 ) then
161 call mradb3 ( m, ido, l1, c, im, in, ch, 1, m, wa(iw), wa(ix2) )
163 call mradb3 ( m, ido, l1, ch, 1, m, c, im, in, wa(iw), wa(ix2) )
168 else if ( ip == 5 ) then
175 call mradb5 ( m, ido, l1, c, im, in, ch, 1, m, wa(iw), wa(ix2), &
178 call mradb5 ( m, ido, l1, ch, 1, m, c, im, in, wa(iw), wa(ix2), &
187 call mradbg ( m, ido, ip, l1, idl1, c, c, c, im, in, ch, ch, 1, &
190 call mradbg ( m, ido, ip, l1, idl1, ch, ch, ch, 1, m, c, c, im, &
201 iw = iw + ( ip - 1 ) * ido