PLaSK library
Loading...
Searching...
No Matches
rfft2i.c
Go to the documentation of this file.
1/* rfft2i.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__4 = 4;
18static integer c_n5 = -5;
19
20/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
21/* * * */
22/* * copyright (c) 2011 by UCAR * */
23/* * * */
24/* * University Corporation for Atmospheric Research * */
25/* * * */
26/* * all rights reserved * */
27/* * * */
28/* * FFTPACK version 5.1 * */
29/* * * */
30/* * A Fortran Package of Fast Fourier * */
31/* * * */
32/* * Subroutines and Example Programs * */
33/* * * */
34/* * by * */
35/* * * */
36/* * Paul Swarztrauber and Dick Valent * */
37/* * * */
38/* * of * */
39/* * * */
40/* * the National Center for Atmospheric Research * */
41/* * * */
42/* * Boulder, Colorado (80307) U.S.A. * */
43/* * * */
44/* * which is sponsored by * */
45/* * * */
46/* * the National Science Foundation * */
47/* * * */
48/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
49
50/* Subroutine */ int rfft2i_(integer *l, integer *m, doublereal *wsave,
51 integer *lensav, integer *ier)
52{
53 /* Builtin functions */
54 double log(doublereal);
55
56 /* Local variables */
57 integer ier1, mmsav, lwsav, mwsav;
58 extern /* Subroutine */ int cfftmi_(integer *, doublereal *, integer *,
60 , xerfft_(char *, integer *, ftnlen);
61
62
63/* INITIALIZE IER */
64
65 /* Parameter adjustments */
66 --wsave;
67
68 /* Function Body */
69 *ier = 0;
70
71/* VERIFY LENSAV */
72
73 lwsav = *l + (integer) (log((doublereal) (*l)) / log(2.)) + 4;
74 mwsav = (*m << 1) + (integer) (log((doublereal) (*m)) / log(2.)) + 4;
75 mmsav = *m + (integer) (log((doublereal) (*m)) / log(2.)) + 4;
76 if (*lensav < lwsav + mwsav + mmsav) {
77 *ier = 2;
78 xerfft_("RFFT2I", &c__4, (ftnlen)6);
79 goto L100;
80 }
81
82 rfftmi_(l, &wsave[1], &lwsav, &ier1);
83 if (ier1 != 0) {
84 *ier = 20;
85 xerfft_("RFFT2I", &c_n5, (ftnlen)6);
86 goto L100;
87 }
88 cfftmi_(m, &wsave[lwsav + 1], &mwsav, &ier1);
89 if (ier1 != 0) {
90 *ier = 20;
91 xerfft_("RFFT2I", &c_n5, (ftnlen)6);
92 }
93
94 rfftmi_(m, &wsave[lwsav + mwsav + 1], &mmsav, &ier1);
95 if (ier1 != 0) {
96 *ier = 20;
97 xerfft_("RFFT2I", &c_n5, (ftnlen)6);
98 goto L100;
99 }
100
101L100:
102 return 0;
103} /* rfft2i_ */
104