[2759] | 1 | |
---|
| 2 | FFTPACK5 - a FORTRAN library of fast Fourier transforms |
---|
| 3 | |
---|
| 4 | Copyright (C) 1995-2004, Scientific Computing Division, |
---|
| 5 | University Corporation for Atmospheric Research |
---|
| 6 | Licensed under the GNU General Public License (GPL) |
---|
| 7 | |
---|
| 8 | Authors: Paul N. Swarztrauber and Richard A. Valent |
---|
| 9 | |
---|
| 10 | $Id: README,v 1.2 2004/06/17 21:59:51 rodney Exp $ |
---|
| 11 | |
---|
| 12 | Website |
---|
| 13 | ------- |
---|
| 14 | |
---|
| 15 | http://www.scd.ucar.edu/css/software/fftpack5 |
---|
| 16 | |
---|
| 17 | |
---|
| 18 | Documentation |
---|
| 19 | ------------- |
---|
| 20 | |
---|
| 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. |
---|
| 25 | |
---|
| 26 | |
---|
| 27 | Compiling Library |
---|
| 28 | ----------------- |
---|
| 29 | |
---|
| 30 | [Editor's note - this refers to the original build, |
---|
| 31 | not the WRF modified build.] |
---|
| 32 | |
---|
| 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. |
---|
| 39 | |
---|
| 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). |
---|
| 45 | |
---|
| 46 | |
---|
| 47 | Complex Transform Routines |
---|
| 48 | __________________________ |
---|
| 49 | |
---|
| 50 | CFFT1I 1D complex initialization |
---|
| 51 | CFFT1B 1D complex backward |
---|
| 52 | CFFT1F 1D complex forward |
---|
| 53 | |
---|
| 54 | CFFT2I 2D complex initialization |
---|
| 55 | CFFT2B 2D complex backward |
---|
| 56 | CFFT2F 2D complex forward |
---|
| 57 | |
---|
| 58 | CFFTMI multiple complex initialization |
---|
| 59 | CFFTMB multiple complex backward |
---|
| 60 | CFFTMF multiple complex forward |
---|
| 61 | |
---|
| 62 | |
---|
| 63 | Real Transform Routines |
---|
| 64 | _______________________ |
---|
| 65 | |
---|
| 66 | RFFT1I 1D real initialization |
---|
| 67 | RFFT1B 1D real backward |
---|
| 68 | RFFT1F 1D real forward |
---|
| 69 | |
---|
| 70 | RFFT2I 2D real initialization |
---|
| 71 | RFFT2B 2D real backward |
---|
| 72 | RFFT2F 2D real forward |
---|
| 73 | |
---|
| 74 | RFFTMI multiple real initialization |
---|
| 75 | RFFTMB multiple real backward |
---|
| 76 | RFFTMF multiple real forward |
---|
| 77 | |
---|
| 78 | |
---|
| 79 | Real Cosine Transform Routines |
---|
| 80 | ______________________________ |
---|
| 81 | |
---|
| 82 | COST1I 1D real cosine initialization |
---|
| 83 | COST1B 1D real cosine backward |
---|
| 84 | COST1F 1D real cosine forward |
---|
| 85 | |
---|
| 86 | COSTMI multiple real cosine initialization |
---|
| 87 | COSTMB multiple real cosine backward |
---|
| 88 | COSTMF multiple real cosine forward |
---|
| 89 | |
---|
| 90 | |
---|
| 91 | Real Sine Transform Routines |
---|
| 92 | ____________________________ |
---|
| 93 | |
---|
| 94 | SINT1I 1D real sine initialization |
---|
| 95 | SINT1B 1D real sine backward |
---|
| 96 | SINT1F 1D real sine forward |
---|
| 97 | |
---|
| 98 | SINTMI multiple real sine initialization |
---|
| 99 | SINTMB multiple real sine backward |
---|
| 100 | SINTMF multiple real sine forward |
---|
| 101 | |
---|
| 102 | |
---|
| 103 | Real Quarter-Cosine Transform Routines |
---|
| 104 | ______________________________________ |
---|
| 105 | |
---|
| 106 | COSQ1I 1D real quarter-cosine initialization |
---|
| 107 | COSQ1B 1D real quarter-cosine backward |
---|
| 108 | COSQ1F 1D real quarter-cosine forward |
---|
| 109 | |
---|
| 110 | COSQMI multiple real quarter-cosine initialization |
---|
| 111 | COSQMB multiple real quarter-cosine backward |
---|
| 112 | COSQMF multiple real quarter-cosine forward |
---|
| 113 | |
---|
| 114 | |
---|
| 115 | Real Quarter-Sine Transform Routines |
---|
| 116 | ____________________________________ |
---|
| 117 | |
---|
| 118 | SINQ1I 1D real quarter-sine initialization |
---|
| 119 | SINQ1B 1D real quarter-sine backward |
---|
| 120 | SINQ1F 1D real quarter-sine forward |
---|
| 121 | |
---|
| 122 | SINQMI multiple real quarter-sine initialization |
---|
| 123 | SINQMB multiple real quarter-sine backward |
---|
| 124 | SINQMF multiple real quarter-sine forward |
---|
| 125 | |
---|
| 126 | |
---|
| 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. |
---|
| 131 | |
---|
| 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. |
---|
| 140 | |
---|
| 141 | All of the transform routines in FFTPACK5 are normalized. |
---|
| 142 | |
---|
| 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. |
---|
| 149 | |
---|
| 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. |
---|
| 153 | |
---|
| 154 | (1) "Vectorizing the Fast Fourier Transforms", by Paul Swarztrauber, |
---|
| 155 | Parallel Computations, G. Rodrigue, ed., Academic Press, |
---|
| 156 | New York 1982. |
---|
| 157 | |
---|
| 158 | (2) "Fast Fourier Transforms Algorithms for Vector Computers", by |
---|
| 159 | Paul Swarztrauber, Parallel Computing, (1984) pp.45-63. |
---|
| 160 | |
---|
| 161 | |
---|
| 162 | |
---|
| 163 | |
---|
| 164 | |
---|
| 165 | |
---|
| 166 | |
---|
| 167 | |
---|
| 168 | |
---|
| 169 | |
---|
| 170 | |
---|
| 171 | |
---|
| 172 | |
---|
| 173 | |
---|
| 174 | |
---|
| 175 | |
---|
| 176 | |
---|
| 177 | |
---|
| 178 | |
---|