PLaSK library
Loading...
Searching...
No Matches
cmfm1b.c
Go to the documentation of this file.
1/* cmfm1b.f -- translated by f2c (version 20100827).
2 You must link the resulting object file with libf2c:
3 on Microsoft Windows system, link with libf2c.lib;
4 on Linux or Unix systems, link with .../path/to/libf2c.a -lm
5 or, if you install libf2c.a in a standard place, with -lf2c -lm
6 -- in that order, at the end of the command line, as in
7 cc *.o -lf2c -lm
8 Source for libf2c is in /netlib/f2c/libf2c.zip, e.g.,
9
10 http://www.netlib.org/f2c/libf2c.zip
11*/
12
13#include "f2c.h"
14
15/* Table of constant values */
16
17static integer c__1 = 1;
18
19/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
20/* * * */
21/* * copyright (c) 2011 by UCAR * */
22/* * * */
23/* * University Corporation for Atmospheric Research * */
24/* * * */
25/* * all rights reserved * */
26/* * * */
27/* * FFTPACK version 5.1 * */
28/* * * */
29/* * A Fortran Package of Fast Fourier * */
30/* * * */
31/* * Subroutines and Example Programs * */
32/* * * */
33/* * by * */
34/* * * */
35/* * Paul Swarztrauber and Dick Valent * */
36/* * * */
37/* * of * */
38/* * * */
39/* * the National Center for Atmospheric Research * */
40/* * * */
41/* * Boulder, Colorado (80307) U.S.A. * */
42/* * * */
43/* * which is sponsored by * */
44/* * * */
45/* * the National Science Foundation * */
46/* * * */
47/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
48
49/* Subroutine */ int cmfm1b_(integer *lot, integer *jump, integer *n, integer
50 *inc, doublecomplex *c__, doublereal *ch, doublereal *wa, doublereal *
51 fnf, doublereal *fac)
52{
53 /* System generated locals */
54 integer i__1, i__2;
55
56 /* Local variables */
57 integer k1, l1, l2, na, nf, ip, iw, lid, ido, nbr;
58 extern /* Subroutine */ int cmf2kb_(), cmf3kb_(), cmf4kb_(), cmf5kb_(),
59 cmfgkb_();
60
61
62/* FFTPACK 5.0 auxiliary routine */
63
64 /* Parameter adjustments */
65 --fac;
66 --wa;
67 --ch;
68 --c__;
69
70 /* Function Body */
71 nf = (integer) (*fnf);
72 na = 0;
73 l1 = 1;
74 iw = 1;
75 i__1 = nf;
76 for (k1 = 1; k1 <= i__1; ++k1) {
77 ip = (integer) fac[k1];
78 l2 = ip * l1;
79 ido = *n / l2;
80 lid = l1 * ido;
81/* Computing MIN */
82 i__2 = ip - 2;
83 nbr = na + 1 + (min(i__2,4) << 1);
84 switch (nbr) {
85 case 1: goto L52;
86 case 2: goto L62;
87 case 3: goto L53;
88 case 4: goto L63;
89 case 5: goto L54;
90 case 6: goto L64;
91 case 7: goto L55;
92 case 8: goto L65;
93 case 9: goto L56;
94 case 10: goto L66;
95 }
96L52:
97 cmf2kb_(lot, &ido, &l1, &na, &c__[1], jump, inc, &ch[1], &c__1, lot, &
98 wa[iw]);
99 goto L120;
100L62:
101 cmf2kb_(lot, &ido, &l1, &na, &ch[1], &c__1, lot, &c__[1], jump, inc, &
102 wa[iw]);
103 goto L120;
104L53:
105 cmf3kb_(lot, &ido, &l1, &na, &c__[1], jump, inc, &ch[1], &c__1, lot, &
106 wa[iw]);
107 goto L120;
108L63:
109 cmf3kb_(lot, &ido, &l1, &na, &ch[1], &c__1, lot, &c__[1], jump, inc, &
110 wa[iw]);
111 goto L120;
112L54:
113 cmf4kb_(lot, &ido, &l1, &na, &c__[1], jump, inc, &ch[1], &c__1, lot, &
114 wa[iw]);
115 goto L120;
116L64:
117 cmf4kb_(lot, &ido, &l1, &na, &ch[1], &c__1, lot, &c__[1], jump, inc, &
118 wa[iw]);
119 goto L120;
120L55:
121 cmf5kb_(lot, &ido, &l1, &na, &c__[1], jump, inc, &ch[1], &c__1, lot, &
122 wa[iw]);
123 goto L120;
124L65:
125 cmf5kb_(lot, &ido, &l1, &na, &ch[1], &c__1, lot, &c__[1], jump, inc, &
126 wa[iw]);
127 goto L120;
128L56:
129 cmfgkb_(lot, &ido, &ip, &l1, &lid, &na, &c__[1], &c__[1], jump, inc, &
130 ch[1], &ch[1], &c__1, lot, &wa[iw]);
131 goto L120;
132L66:
133 cmfgkb_(lot, &ido, &ip, &l1, &lid, &na, &ch[1], &ch[1], &c__1, lot, &
134 c__[1], &c__[1], jump, inc, &wa[iw]);
135L120:
136 l1 = l2;
137 iw += (ip - 1) * (ido + ido);
138 if (ip <= 5) {
139 na = 1 - na;
140 }
141/* L125: */
142 }
143 return 0;
144} /* cmfm1b_ */
145