PLaSK library
Loading...
Searching...
No Matches
rfftmb.c
Go to the documentation of this file.
1/* rfftmb.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__6 = 6;
18static integer c__8 = 8;
19static integer c__10 = 10;
20static integer c_n1 = -1;
21
22/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
23/* * * */
24/* * copyright (c) 2011 by UCAR * */
25/* * * */
26/* * University Corporation for Atmospheric Research * */
27/* * * */
28/* * all rights reserved * */
29/* * * */
30/* * FFTPACK version 5.1 * */
31/* * * */
32/* * A Fortran Package of Fast Fourier * */
33/* * * */
34/* * Subroutines and Example Programs * */
35/* * * */
36/* * by * */
37/* * * */
38/* * Paul Swarztrauber and Dick Valent * */
39/* * * */
40/* * of * */
41/* * * */
42/* * the National Center for Atmospheric Research * */
43/* * * */
44/* * Boulder, Colorado (80307) U.S.A. * */
45/* * * */
46/* * which is sponsored by * */
47/* * * */
48/* * the National Science Foundation * */
49/* * * */
50/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
51
52/* Subroutine */ int rfftmb_(integer *lot, integer *jump, integer *n, integer
53 *inc, doublereal *r__, integer *lenr, doublereal *wsave, integer *
54 lensav, doublereal *work, integer *lenwrk, integer *ier)
55{
56 /* Builtin functions */
57 double log(doublereal);
58
59 /* Local variables */
60 extern /* Subroutine */ int mrftb1_(integer *, integer *, integer *,
62 ;
63 extern logical xercon_(integer *, integer *, integer *, integer *);
64 extern /* Subroutine */ int xerfft_(char *, integer *, ftnlen);
65
66
67 /* Parameter adjustments */
68 --r__;
69 --wsave;
70 --work;
71
72 /* Function Body */
73 *ier = 0;
74
75 if (*lenr < (*lot - 1) * *jump + *inc * (*n - 1) + 1) {
76 *ier = 1;
77 xerfft_("RFFTMB ", &c__6, (ftnlen)7);
78 } else if (*lensav < *n + (integer) (log((doublereal) (*n)) / log(2.)) +
79 4) {
80 *ier = 2;
81 xerfft_("RFFTMB ", &c__8, (ftnlen)7);
82 } else if (*lenwrk < *lot * *n) {
83 *ier = 3;
84 xerfft_("RFFTMB ", &c__10, (ftnlen)7);
85 } else if (! xercon_(inc, jump, n, lot)) {
86 *ier = 4;
87 xerfft_("RFFTMB ", &c_n1, (ftnlen)7);
88 }
89
90 if (*n == 1) {
91 return 0;
92 }
93
94 mrftb1_(lot, jump, n, inc, &r__[1], &work[1], &wsave[1], &wsave[*n + 1]);
95 return 0;
96} /* rfftmb_ */
97