51 integer ch_dim1, ch_dim2, ch_dim3, ch_offset, cc_dim1, cc_dim2, cc_dim3,
52 cc_offset, c1_dim1, c1_dim2, c1_dim3, c1_offset, c2_dim1, c2_dim2,
53 c2_offset, ch2_dim1, ch2_dim2, ch2_offset, i__1, i__2, i__3,
60 integer i__, j, k, l, j2, m1, m2, ic, jc, lc, ik, is;
73 c2_offset = 1 + c2_dim1 * (1 + c2_dim2);
78 c1_offset = 1 + c1_dim1 * (1 + c1_dim2 * (1 + c1_dim3));
83 cc_offset = 1 + cc_dim1 * (1 + cc_dim2 * (1 + cc_dim3));
87 ch2_offset = 1 + ch2_dim1 * (1 + ch2_dim2);
92 ch_offset = 1 + ch_dim1 * (1 + ch_dim2 * (1 + ch_dim3));
96 m1d = (*m - 1) * *im1 + 1;
102 ipph = (*ip + 1) / 2;
105 nbd = (*ido - 1) / 2;
110 for (ik = 1; ik <= i__1; ++ik) {
114 for (m1 = 1; i__3 < 0 ? m1 >= i__2 : m1 <= i__2; m1 += i__3) {
116 ch2[m2 + (ik + ch2_dim2) * ch2_dim1] = c2[m1 + (ik + c2_dim2) *
123 for (j = 2; j <= i__1; ++j) {
125 for (k = 1; k <= i__3; ++k) {
129 for (m1 = 1; i__4 < 0 ? m1 >= i__2 : m1 <= i__2; m1 += i__4) {
131 ch[m2 + ((k + j * ch_dim3) * ch_dim2 + 1) * ch_dim1] = c1[m1
132 + ((k + j * c1_dim3) * c1_dim2 + 1) * c1_dim1];
144 for (j = 2; j <= i__1; ++j) {
148 for (i__ = 3; i__ <= i__3; i__ += 2) {
151 for (k = 1; k <= i__4; ++k) {
155 for (m1 = 1; i__5 < 0 ? m1 >= i__2 : m1 <= i__2; m1 += i__5) {
157 ch[m2 + (i__ - 1 + (k + j * ch_dim3) * ch_dim2) * ch_dim1]
158 = wa[idij - 1] * c1[m1 + (i__ - 1 + (k + j *
159 c1_dim3) * c1_dim2) * c1_dim1] + wa[idij] * c1[m1
160 + (i__ + (k + j * c1_dim3) * c1_dim2) * c1_dim1];
161 ch[m2 + (i__ + (k + j * ch_dim3) * ch_dim2) * ch_dim1] =
162 wa[idij - 1] * c1[m1 + (i__ + (k + j * c1_dim3) *
163 c1_dim2) * c1_dim1] - wa[idij] * c1[m1 + (i__ - 1
164 + (k + j * c1_dim3) * c1_dim2) * c1_dim1];
177 for (j = 2; j <= i__1; ++j) {
180 for (k = 1; k <= i__3; ++k) {
183 for (i__ = 3; i__ <= i__4; i__ += 2) {
188 for (m1 = 1; i__2 < 0 ? m1 >= i__5 : m1 <= i__5; m1 += i__2) {
190 ch[m2 + (i__ - 1 + (k + j * ch_dim3) * ch_dim2) * ch_dim1]
191 = wa[idij - 1] * c1[m1 + (i__ - 1 + (k + j *
192 c1_dim3) * c1_dim2) * c1_dim1] + wa[idij] * c1[m1
193 + (i__ + (k + j * c1_dim3) * c1_dim2) * c1_dim1];
194 ch[m2 + (i__ + (k + j * ch_dim3) * ch_dim2) * ch_dim1] =
195 wa[idij - 1] * c1[m1 + (i__ + (k + j * c1_dim3) *
196 c1_dim2) * c1_dim1] - wa[idij] * c1[m1 + (i__ - 1
197 + (k + j * c1_dim3) * c1_dim2) * c1_dim1];
211 for (j = 2; j <= i__1; ++j) {
214 for (k = 1; k <= i__3; ++k) {
216 for (i__ = 3; i__ <= i__4; i__ += 2) {
220 for (m1 = 1; i__5 < 0 ? m1 >= i__2 : m1 <= i__2; m1 += i__5) {
222 c1[m1 + (i__ - 1 + (k + j * c1_dim3) * c1_dim2) * c1_dim1]
223 = ch[m2 + (i__ - 1 + (k + j * ch_dim3) * ch_dim2)
224 * ch_dim1] + ch[m2 + (i__ - 1 + (k + jc *
225 ch_dim3) * ch_dim2) * ch_dim1];
226 c1[m1 + (i__ - 1 + (k + jc * c1_dim3) * c1_dim2) *
227 c1_dim1] = ch[m2 + (i__ + (k + j * ch_dim3) *
228 ch_dim2) * ch_dim1] - ch[m2 + (i__ + (k + jc *
229 ch_dim3) * ch_dim2) * ch_dim1];
230 c1[m1 + (i__ + (k + j * c1_dim3) * c1_dim2) * c1_dim1] =
231 ch[m2 + (i__ + (k + j * ch_dim3) * ch_dim2) *
232 ch_dim1] + ch[m2 + (i__ + (k + jc * ch_dim3) *
234 c1[m1 + (i__ + (k + jc * c1_dim3) * c1_dim2) * c1_dim1] =
235 ch[m2 + (i__ - 1 + (k + jc * ch_dim3) * ch_dim2) *
236 ch_dim1] - ch[m2 + (i__ - 1 + (k + j * ch_dim3) *
249 for (j = 2; j <= i__1; ++j) {
252 for (i__ = 3; i__ <= i__3; i__ += 2) {
254 for (k = 1; k <= i__4; ++k) {
258 for (m1 = 1; i__2 < 0 ? m1 >= i__5 : m1 <= i__5; m1 += i__2) {
260 c1[m1 + (i__ - 1 + (k + j * c1_dim3) * c1_dim2) * c1_dim1]
261 = ch[m2 + (i__ - 1 + (k + j * ch_dim3) * ch_dim2)
262 * ch_dim1] + ch[m2 + (i__ - 1 + (k + jc *
263 ch_dim3) * ch_dim2) * ch_dim1];
264 c1[m1 + (i__ - 1 + (k + jc * c1_dim3) * c1_dim2) *
265 c1_dim1] = ch[m2 + (i__ + (k + j * ch_dim3) *
266 ch_dim2) * ch_dim1] - ch[m2 + (i__ + (k + jc *
267 ch_dim3) * ch_dim2) * ch_dim1];
268 c1[m1 + (i__ + (k + j * c1_dim3) * c1_dim2) * c1_dim1] =
269 ch[m2 + (i__ + (k + j * ch_dim3) * ch_dim2) *
270 ch_dim1] + ch[m2 + (i__ + (k + jc * ch_dim3) *
272 c1[m1 + (i__ + (k + jc * c1_dim3) * c1_dim2) * c1_dim1] =
273 ch[m2 + (i__ - 1 + (k + jc * ch_dim3) * ch_dim2) *
274 ch_dim1] - ch[m2 + (i__ - 1 + (k + j * ch_dim3) *
287 for (ik = 1; ik <= i__1; ++ik) {
291 for (m1 = 1; i__4 < 0 ? m1 >= i__3 : m1 <= i__3; m1 += i__4) {
293 c2[m1 + (ik + c2_dim2) * c2_dim1] = ch2[m2 + (ik + ch2_dim2) *
301 for (j = 2; j <= i__1; ++j) {
304 for (k = 1; k <= i__4; ++k) {
308 for (m1 = 1; i__2 < 0 ? m1 >= i__3 : m1 <= i__3; m1 += i__2) {
310 c1[m1 + ((k + j * c1_dim3) * c1_dim2 + 1) * c1_dim1] = ch[m2
311 + ((k + j * ch_dim3) * ch_dim2 + 1) * ch_dim1] + ch[
312 m2 + ((k + jc * ch_dim3) * ch_dim2 + 1) * ch_dim1];
313 c1[m1 + ((k + jc * c1_dim3) * c1_dim2 + 1) * c1_dim1] = ch[m2
314 + ((k + jc * ch_dim3) * ch_dim2 + 1) * ch_dim1] - ch[
315 m2 + ((k + j * ch_dim3) * ch_dim2 + 1) * ch_dim1];
326 for (l = 2; l <= i__1; ++l) {
328 ar1h = dcp * ar1 - dsp * ai1;
329 ai1 = dcp * ai1 + dsp * ar1;
332 for (ik = 1; ik <= i__4; ++ik) {
336 for (m1 = 1; i__3 < 0 ? m1 >= i__2 : m1 <= i__2; m1 += i__3) {
338 ch2[m2 + (ik + l * ch2_dim2) * ch2_dim1] = c2[m1 + (ik +
339 c2_dim2) * c2_dim1] + ar1 * c2[m1 + (ik + (c2_dim2 <<
341 ch2[m2 + (ik + lc * ch2_dim2) * ch2_dim1] = ai1 * c2[m1 + (ik
342 + *ip * c2_dim2) * c2_dim1];
352 for (j = 3; j <= i__4; ++j) {
354 ar2h = dc2 * ar2 - ds2 * ai2;
355 ai2 = dc2 * ai2 + ds2 * ar2;
358 for (ik = 1; ik <= i__3; ++ik) {
362 for (m1 = 1; i__5 < 0 ? m1 >= i__2 : m1 <= i__2; m1 += i__5) {
364 ch2[m2 + (ik + l * ch2_dim2) * ch2_dim1] += ar2 * c2[m1 +
365 (ik + j * c2_dim2) * c2_dim1];
366 ch2[m2 + (ik + lc * ch2_dim2) * ch2_dim1] += ai2 * c2[m1
367 + (ik + jc * c2_dim2) * c2_dim1];
377 for (j = 2; j <= i__1; ++j) {
379 for (ik = 1; ik <= i__4; ++ik) {
383 for (m1 = 1; i__5 < 0 ? m1 >= i__3 : m1 <= i__3; m1 += i__5) {
385 ch2[m2 + (ik + ch2_dim2) * ch2_dim1] += c2[m1 + (ik + j *
398 for (k = 1; k <= i__1; ++k) {
400 for (i__ = 1; i__ <= i__4; ++i__) {
404 for (m1 = 1; i__3 < 0 ? m1 >= i__5 : m1 <= i__5; m1 += i__3) {
406 cc[m1 + (i__ + (k * cc_dim3 + 1) * cc_dim2) * cc_dim1] = ch[
407 m2 + (i__ + (k + ch_dim3) * ch_dim2) * ch_dim1];
417 for (i__ = 1; i__ <= i__1; ++i__) {
419 for (k = 1; k <= i__4; ++k) {
423 for (m1 = 1; i__5 < 0 ? m1 >= i__3 : m1 <= i__3; m1 += i__5) {
425 cc[m1 + (i__ + (k * cc_dim3 + 1) * cc_dim2) * cc_dim1] = ch[
426 m2 + (i__ + (k + ch_dim3) * ch_dim2) * ch_dim1];
435 for (j = 2; j <= i__1; ++j) {
439 for (k = 1; k <= i__4; ++k) {
443 for (m1 = 1; i__3 < 0 ? m1 >= i__5 : m1 <= i__5; m1 += i__3) {
445 cc[m1 + (*ido + (j2 - 2 + k * cc_dim3) * cc_dim2) * cc_dim1] =
446 ch[m2 + ((k + j * ch_dim3) * ch_dim2 + 1) * ch_dim1];
447 cc[m1 + ((j2 - 1 + k * cc_dim3) * cc_dim2 + 1) * cc_dim1] =
448 ch[m2 + ((k + jc * ch_dim3) * ch_dim2 + 1) * ch_dim1];
462 for (j = 2; j <= i__1; ++j) {
466 for (k = 1; k <= i__4; ++k) {
468 for (i__ = 3; i__ <= i__3; i__ += 2) {
473 for (m1 = 1; i__2 < 0 ? m1 >= i__5 : m1 <= i__5; m1 += i__2) {
475 cc[m1 + (i__ - 1 + (j2 - 1 + k * cc_dim3) * cc_dim2) *
476 cc_dim1] = ch[m2 + (i__ - 1 + (k + j * ch_dim3) *
477 ch_dim2) * ch_dim1] + ch[m2 + (i__ - 1 + (k + jc *
478 ch_dim3) * ch_dim2) * ch_dim1];
479 cc[m1 + (ic - 1 + (j2 - 2 + k * cc_dim3) * cc_dim2) *
480 cc_dim1] = ch[m2 + (i__ - 1 + (k + j * ch_dim3) *
481 ch_dim2) * ch_dim1] - ch[m2 + (i__ - 1 + (k + jc *
482 ch_dim3) * ch_dim2) * ch_dim1];
483 cc[m1 + (i__ + (j2 - 1 + k * cc_dim3) * cc_dim2) *
484 cc_dim1] = ch[m2 + (i__ + (k + j * ch_dim3) *
485 ch_dim2) * ch_dim1] + ch[m2 + (i__ + (k + jc *
486 ch_dim3) * ch_dim2) * ch_dim1];
487 cc[m1 + (ic + (j2 - 2 + k * cc_dim3) * cc_dim2) * cc_dim1]
488 = ch[m2 + (i__ + (k + jc * ch_dim3) * ch_dim2) *
489 ch_dim1] - ch[m2 + (i__ + (k + j * ch_dim3) *
502 for (j = 2; j <= i__1; ++j) {
506 for (i__ = 3; i__ <= i__4; i__ += 2) {
509 for (k = 1; k <= i__3; ++k) {
513 for (m1 = 1; i__5 < 0 ? m1 >= i__2 : m1 <= i__2; m1 += i__5) {
515 cc[m1 + (i__ - 1 + (j2 - 1 + k * cc_dim3) * cc_dim2) *
516 cc_dim1] = ch[m2 + (i__ - 1 + (k + j * ch_dim3) *
517 ch_dim2) * ch_dim1] + ch[m2 + (i__ - 1 + (k + jc *
518 ch_dim3) * ch_dim2) * ch_dim1];
519 cc[m1 + (ic - 1 + (j2 - 2 + k * cc_dim3) * cc_dim2) *
520 cc_dim1] = ch[m2 + (i__ - 1 + (k + j * ch_dim3) *
521 ch_dim2) * ch_dim1] - ch[m2 + (i__ - 1 + (k + jc *
522 ch_dim3) * ch_dim2) * ch_dim1];
523 cc[m1 + (i__ + (j2 - 1 + k * cc_dim3) * cc_dim2) *
524 cc_dim1] = ch[m2 + (i__ + (k + j * ch_dim3) *
525 ch_dim2) * ch_dim1] + ch[m2 + (i__ + (k + jc *
526 ch_dim3) * ch_dim2) * ch_dim1];
527 cc[m1 + (ic + (j2 - 2 + k * cc_dim3) * cc_dim2) * cc_dim1]
528 = ch[m2 + (i__ + (k + jc * ch_dim3) * ch_dim2) *
529 ch_dim1] - ch[m2 + (i__ + (k + j * ch_dim3) *