1 | |
---|
2 | FFTPACK5 - a FORTRAN library of fast Fourier transforms |
---|
3 | |
---|
4 | Authors: Paul N. Swarztrauber and Richard A. Valent |
---|
5 | |
---|
6 | $Id: README,v 1.2 2004/06/17 21:59:51 rodney Exp $ |
---|
7 | |
---|
8 | Website |
---|
9 | ------- |
---|
10 | |
---|
11 | http://www.scd.ucar.edu/css/software/fftpack5 |
---|
12 | |
---|
13 | |
---|
14 | Documentation |
---|
15 | ------------- |
---|
16 | |
---|
17 | Documentation is provided in PDF format in the file fftpack5.pdf. |
---|
18 | This information is also available in HTML format at the above |
---|
19 | website. Information about building the library follows below, |
---|
20 | as well as a synopsis of the library. |
---|
21 | |
---|
22 | |
---|
23 | Compiling Library |
---|
24 | ----------------- |
---|
25 | |
---|
26 | [Editor's note - this refers to the original build, |
---|
27 | not the WRF modified build.] |
---|
28 | |
---|
29 | The included Makefile if configured to build a static |
---|
30 | library on most currently availble unix and unix-like |
---|
31 | operating systems. The given make targets (type "make" |
---|
32 | without any arguments for a list of targets) correspond |
---|
33 | to compiler names; e.g. intel = Intel F95 compiler, |
---|
34 | gnu = GNU g77 compiler, sun = Sun Solaris compiler, etc. |
---|
35 | |
---|
36 | The source code is by default configured for single precision |
---|
37 | real numbers. If double precision is desired, the Makefile must |
---|
38 | be modified with the appropriate compiler options for promoting |
---|
39 | real to double precision as well as promoting constants to double |
---|
40 | precision (this is often "-r8" on some, but not all, compilers). |
---|
41 | |
---|
42 | |
---|
43 | Complex Transform Routines |
---|
44 | __________________________ |
---|
45 | |
---|
46 | CFFT1I 1D complex initialization |
---|
47 | CFFT1B 1D complex backward |
---|
48 | CFFT1F 1D complex forward |
---|
49 | |
---|
50 | CFFT2I 2D complex initialization |
---|
51 | CFFT2B 2D complex backward |
---|
52 | CFFT2F 2D complex forward |
---|
53 | |
---|
54 | CFFTMI multiple complex initialization |
---|
55 | CFFTMB multiple complex backward |
---|
56 | CFFTMF multiple complex forward |
---|
57 | |
---|
58 | |
---|
59 | Real Transform Routines |
---|
60 | _______________________ |
---|
61 | |
---|
62 | RFFT1I 1D real initialization |
---|
63 | RFFT1B 1D real backward |
---|
64 | RFFT1F 1D real forward |
---|
65 | |
---|
66 | RFFT2I 2D real initialization |
---|
67 | RFFT2B 2D real backward |
---|
68 | RFFT2F 2D real forward |
---|
69 | |
---|
70 | RFFTMI multiple real initialization |
---|
71 | RFFTMB multiple real backward |
---|
72 | RFFTMF multiple real forward |
---|
73 | |
---|
74 | |
---|
75 | Real Cosine Transform Routines |
---|
76 | ______________________________ |
---|
77 | |
---|
78 | COST1I 1D real cosine initialization |
---|
79 | COST1B 1D real cosine backward |
---|
80 | COST1F 1D real cosine forward |
---|
81 | |
---|
82 | COSTMI multiple real cosine initialization |
---|
83 | COSTMB multiple real cosine backward |
---|
84 | COSTMF multiple real cosine forward |
---|
85 | |
---|
86 | |
---|
87 | Real Sine Transform Routines |
---|
88 | ____________________________ |
---|
89 | |
---|
90 | SINT1I 1D real sine initialization |
---|
91 | SINT1B 1D real sine backward |
---|
92 | SINT1F 1D real sine forward |
---|
93 | |
---|
94 | SINTMI multiple real sine initialization |
---|
95 | SINTMB multiple real sine backward |
---|
96 | SINTMF multiple real sine forward |
---|
97 | |
---|
98 | |
---|
99 | Real Quarter-Cosine Transform Routines |
---|
100 | ______________________________________ |
---|
101 | |
---|
102 | COSQ1I 1D real quarter-cosine initialization |
---|
103 | COSQ1B 1D real quarter-cosine backward |
---|
104 | COSQ1F 1D real quarter-cosine forward |
---|
105 | |
---|
106 | COSQMI multiple real quarter-cosine initialization |
---|
107 | COSQMB multiple real quarter-cosine backward |
---|
108 | COSQMF multiple real quarter-cosine forward |
---|
109 | |
---|
110 | |
---|
111 | Real Quarter-Sine Transform Routines |
---|
112 | ____________________________________ |
---|
113 | |
---|
114 | SINQ1I 1D real quarter-sine initialization |
---|
115 | SINQ1B 1D real quarter-sine backward |
---|
116 | SINQ1F 1D real quarter-sine forward |
---|
117 | |
---|
118 | SINQMI multiple real quarter-sine initialization |
---|
119 | SINQMB multiple real quarter-sine backward |
---|
120 | SINQMF multiple real quarter-sine forward |
---|
121 | |
---|
122 | |
---|
123 | Library FFTPACK5 contains 1D, 2D, and multiple fast Fourier |
---|
124 | subroutines, written in Fortran 77, for transforming real and complex |
---|
125 | data, real even and odd wave data, and real even and odd quarter-wave |
---|
126 | data. |
---|
127 | |
---|
128 | All of the FFTPACK5 routines listed above are grouped in triplets |
---|
129 | e.g. {CFFT1I, CFFT1F, CFFT1B}. The suffix "I" denotes "initialize", |
---|
130 | "F" denotes "forward" (as in "forward transform") and "B" denotes |
---|
131 | "backward". In an application program, before calling "B" or "F" |
---|
132 | routines for the first time, or before calling them with a different |
---|
133 | length, users must initialize an array by calling the "I" routine of |
---|
134 | the appropriate pair or triplet. Note that "I" routines need not be |
---|
135 | called each time before a "B" or "F" routine is called. |
---|
136 | |
---|
137 | All of the transform routines in FFTPACK5 are normalized. |
---|
138 | |
---|
139 | Error messages are written to unit 6 by routine XERFFT. The |
---|
140 | standard version of XERFFT issues an error message and halts execution, |
---|
141 | so that no FFTPACK routine will return to the calling program with |
---|
142 | error return IER different than zero. Users may consider modifying the |
---|
143 | STOP statement in order to call system-specific exception-handling |
---|
144 | facilities. |
---|
145 | |
---|
146 | FFTPACK5 is written in standard Fortran 77 except for several |
---|
147 | instances where arrays of type REAL or COMPLEX are passed to a |
---|
148 | subroutine and used as a different type. |
---|
149 | |
---|
150 | (1) "Vectorizing the Fast Fourier Transforms", by Paul Swarztrauber, |
---|
151 | Parallel Computations, G. Rodrigue, ed., Academic Press, |
---|
152 | New York 1982. |
---|
153 | |
---|
154 | (2) "Fast Fourier Transforms Algorithms for Vector Computers", by |
---|
155 | Paul Swarztrauber, Parallel Computing, (1984) pp.45-63. |
---|
156 | |
---|
157 | |
---|
158 | |
---|
159 | |
---|
160 | |
---|
161 | |
---|
162 | |
---|
163 | |
---|
164 | |
---|
165 | |
---|
166 | |
---|
167 | |
---|
168 | |
---|
169 | |
---|
170 | |
---|
171 | |
---|
172 | |
---|
173 | |
---|
174 | |
---|