1 subroutine r1f5kb ( ido, l1, cc, in1, ch, in2, wa1, wa2, wa3, wa4 )
3 !*****************************************************************************80
5 !! R1F5KB 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 ) ido
37 integer ( kind = 4 ) in1
38 integer ( kind = 4 ) in2
39 integer ( kind = 4 ) l1
42 real ( kind = 4 ) cc(in1,ido,5,l1)
43 real ( kind = 4 ) ch(in2,ido,l1,5)
44 integer ( kind = 4 ) i
45 integer ( kind = 4 ) ic
46 integer ( kind = 4 ) idp2
47 integer ( kind = 4 ) k
48 real ( kind = 4 ) ti11
49 real ( kind = 4 ) ti12
50 real ( kind = 4 ) tr11
51 real ( kind = 4 ) tr12
52 real ( kind = 4 ) wa1(ido)
53 real ( kind = 4 ) wa2(ido)
54 real ( kind = 4 ) wa3(ido)
55 real ( kind = 4 ) wa4(ido)
57 arg = 2.0E+00 * 4.0E+00 * atan ( 1.0E+00 ) / 5.0E+00
60 tr12 = cos ( 2.0E+00 * arg )
61 ti12 = sin ( 2.0E+00 * arg )
65 ch(1,1,k,1) = cc(1,1,1,k) + 2.0E+00 * cc(1,ido,2,k) &
66 + 2.0E+00 * cc(1,ido,4,k)
68 ch(1,1,k,2) = ( cc(1,1,1,k) &
69 + tr11 * 2.0E+00 * cc(1,ido,2,k) + tr12 * 2.0E+00 * cc(1,ido,4,k) ) &
70 - ( ti11 * 2.0E+00 * cc(1,1,3,k) + ti12 * 2.0E+00 * cc(1,1,5,k))
72 ch(1,1,k,3) = ( cc(1,1,1,k) &
73 + tr12 * 2.0E+00 * cc(1,ido,2,k) + tr11 * 2.0E+00 * cc(1,ido,4,k) ) &
74 - ( ti12 * 2.0E+00 * cc(1,1,3,k) - ti11 * 2.0E+00 * cc(1,1,5,k))
76 ch(1,1,k,4) = ( cc(1,1,1,k) &
77 + tr12 * 2.0E+00 * cc(1,ido,2,k) + tr11 * 2.0E+00 * cc(1,ido,4,k) ) &
78 + ( ti12 * 2.0E+00 * cc(1,1,3,k) - ti11 * 2.0E+00 * cc(1,1,5,k))
80 ch(1,1,k,5) = ( cc(1,1,1,k) &
81 + tr11 * 2.0E+00 * cc(1,ido,2,k) + tr12 * 2.0E+00 * cc(1,ido,4,k) ) &
82 + ( ti11 * 2.0E+00 * cc(1,1,3,k) + ti12 * 2.0E+00 * cc(1,1,5,k) )
95 ch(1,i-1,k,1) = cc(1,i-1,1,k)+(cc(1,i-1,3,k)+cc(1,ic-1,2,k)) &
96 +(cc(1,i-1,5,k)+cc(1,ic-1,4,k))
97 ch(1,i,k,1) = cc(1,i,1,k)+(cc(1,i,3,k)-cc(1,ic,2,k)) &
98 +(cc(1,i,5,k)-cc(1,ic,4,k))
99 ch(1,i-1,k,2) = wa1(i-2)*((cc(1,i-1,1,k)+tr11* &
100 (cc(1,i-1,3,k)+cc(1,ic-1,2,k))+tr12 &
101 *(cc(1,i-1,5,k)+cc(1,ic-1,4,k)))-(ti11*(cc(1,i,3,k) &
102 +cc(1,ic,2,k))+ti12*(cc(1,i,5,k)+cc(1,ic,4,k)))) &
103 -wa1(i-1)*((cc(1,i,1,k)+tr11*(cc(1,i,3,k)-cc(1,ic,2,k)) &
104 +tr12*(cc(1,i,5,k)-cc(1,ic,4,k)))+(ti11*(cc(1,i-1,3,k) &
105 -cc(1,ic-1,2,k))+ti12*(cc(1,i-1,5,k)-cc(1,ic-1,4,k))))
106 ch(1,i,k,2) = wa1(i-2)*((cc(1,i,1,k)+tr11*(cc(1,i,3,k) &
107 -cc(1,ic,2,k))+tr12*(cc(1,i,5,k)-cc(1,ic,4,k))) &
108 +(ti11*(cc(1,i-1,3,k)-cc(1,ic-1,2,k))+ti12 &
109 *(cc(1,i-1,5,k)-cc(1,ic-1,4,k))))+wa1(i-1) &
110 *((cc(1,i-1,1,k)+tr11*(cc(1,i-1,3,k) &
111 +cc(1,ic-1,2,k))+tr12*(cc(1,i-1,5,k)+cc(1,ic-1,4,k))) &
112 -(ti11*(cc(1,i,3,k)+cc(1,ic,2,k))+ti12 &
113 *(cc(1,i,5,k)+cc(1,ic,4,k))))
114 ch(1,i-1,k,3) = wa2(i-2) &
115 *((cc(1,i-1,1,k)+tr12*(cc(1,i-1,3,k)+cc(1,ic-1,2,k)) &
116 +tr11*(cc(1,i-1,5,k)+cc(1,ic-1,4,k)))-(ti12*(cc(1,i,3,k) &
117 +cc(1,ic,2,k))-ti11*(cc(1,i,5,k)+cc(1,ic,4,k)))) &
119 *((cc(1,i,1,k)+tr12*(cc(1,i,3,k)- &
120 cc(1,ic,2,k))+tr11*(cc(1,i,5,k)-cc(1,ic,4,k))) &
121 +(ti12*(cc(1,i-1,3,k)-cc(1,ic-1,2,k))-ti11 &
122 *(cc(1,i-1,5,k)-cc(1,ic-1,4,k))))
123 ch(1,i,k,3) = wa2(i-2) &
124 *((cc(1,i,1,k)+tr12*(cc(1,i,3,k)- &
125 cc(1,ic,2,k))+tr11*(cc(1,i,5,k)-cc(1,ic,4,k))) &
126 +(ti12*(cc(1,i-1,3,k)-cc(1,ic-1,2,k))-ti11 &
127 *(cc(1,i-1,5,k)-cc(1,ic-1,4,k)))) &
129 *((cc(1,i-1,1,k)+tr12*(cc(1,i-1,3,k)+cc(1,ic-1,2,k)) &
130 +tr11*(cc(1,i-1,5,k)+cc(1,ic-1,4,k)))-(ti12*(cc(1,i,3,k) &
131 +cc(1,ic,2,k))-ti11*(cc(1,i,5,k)+cc(1,ic,4,k))))
132 ch(1,i-1,k,4) = wa3(i-2) &
133 *((cc(1,i-1,1,k)+tr12*(cc(1,i-1,3,k)+cc(1,ic-1,2,k)) &
134 +tr11*(cc(1,i-1,5,k)+cc(1,ic-1,4,k)))+(ti12*(cc(1,i,3,k) &
135 +cc(1,ic,2,k))-ti11*(cc(1,i,5,k)+cc(1,ic,4,k)))) &
137 *((cc(1,i,1,k)+tr12*(cc(1,i,3,k)- &
138 cc(1,ic,2,k))+tr11*(cc(1,i,5,k)-cc(1,ic,4,k))) &
139 -(ti12*(cc(1,i-1,3,k)-cc(1,ic-1,2,k))-ti11 &
140 *(cc(1,i-1,5,k)-cc(1,ic-1,4,k))))
141 ch(1,i,k,4) = wa3(i-2) &
142 *((cc(1,i,1,k)+tr12*(cc(1,i,3,k)- &
143 cc(1,ic,2,k))+tr11*(cc(1,i,5,k)-cc(1,ic,4,k))) &
144 -(ti12*(cc(1,i-1,3,k)-cc(1,ic-1,2,k))-ti11 &
145 *(cc(1,i-1,5,k)-cc(1,ic-1,4,k)))) &
147 *((cc(1,i-1,1,k)+tr12*(cc(1,i-1,3,k)+cc(1,ic-1,2,k)) &
148 +tr11*(cc(1,i-1,5,k)+cc(1,ic-1,4,k)))+(ti12*(cc(1,i,3,k) &
149 +cc(1,ic,2,k))-ti11*(cc(1,i,5,k)+cc(1,ic,4,k))))
150 ch(1,i-1,k,5) = wa4(i-2) &
151 *((cc(1,i-1,1,k)+tr11*(cc(1,i-1,3,k)+cc(1,ic-1,2,k)) &
152 +tr12*(cc(1,i-1,5,k)+cc(1,ic-1,4,k)))+(ti11*(cc(1,i,3,k) &
153 +cc(1,ic,2,k))+ti12*(cc(1,i,5,k)+cc(1,ic,4,k)))) &
155 *((cc(1,i,1,k)+tr11*(cc(1,i,3,k)-cc(1,ic,2,k)) &
156 +tr12*(cc(1,i,5,k)-cc(1,ic,4,k)))-(ti11*(cc(1,i-1,3,k) &
157 -cc(1,ic-1,2,k))+ti12*(cc(1,i-1,5,k)-cc(1,ic-1,4,k))))
158 ch(1,i,k,5) = wa4(i-2) &
159 *((cc(1,i,1,k)+tr11*(cc(1,i,3,k)-cc(1,ic,2,k)) &
160 +tr12*(cc(1,i,5,k)-cc(1,ic,4,k)))-(ti11*(cc(1,i-1,3,k) &
161 -cc(1,ic-1,2,k))+ti12*(cc(1,i-1,5,k)-cc(1,ic-1,4,k)))) &
163 *((cc(1,i-1,1,k)+tr11*(cc(1,i-1,3,k)+cc(1,ic-1,2,k)) &
164 +tr12*(cc(1,i-1,5,k)+cc(1,ic-1,4,k)))+(ti11*(cc(1,i,3,k) &
165 +cc(1,ic,2,k))+ti12*(cc(1,i,5,k)+cc(1,ic,4,k))))