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
17
static
integer
c__4 = 4;
18
static
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
*,
59
integer
*),
rfftmi_
(
integer
*,
doublereal
*,
integer
*,
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
101
L100:
102
return
0;
103
}
/* rfft2i_ */
104
extlib
fftpacx
rfft2i.c
Generated by
1.9.8