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