fftw_test Fortran90 code which calls fftw(), which computes fast Fourier transforms, written by Matteo Frigo and Steven Johnson.
fftw() computes the discrete Fourier transform of:
The length of the data is not required to be a power of 2. Any length of data can be processed.
The data is not restricted to 1 dimensional vectors. fftw() can handle data that is 2 or 3 dimensional. In fact, the program can handle data with any dimensionality.
Interested users should go to the fftw() home page: https://www.fftw.org/ which contains the current source code, examples, and documentation.
Any Fortran program, subroutine or function that calls the fftw() functions must include, in its declarations, the statement
include "fftw3.f90"
which will add the appropriate declarations for the FFTW functions.
At link time, you must include the compiled fftw() library, which is probably a file with the name libfftw.a. If directory is the directory where this library is stored, then an appropriate command might be
gfortran myprog.f90 -Ldirectory -lfftw
The computer code and data files described and made available on this web page are distributed under the MIT license
Non-free licenses may also be purchased from MIT, for users who do not want their programs protected by the GPL.
fftw_test() is available in a C version and a Fortran90 version.
fftpack5, a Fortran90 library which implements the Fast Fourier Transform by Paul Swarztrauber and Dick Valent;
fftpack5.1, a Fortran90 library which implements the Fast Fourier Transform by Paul Swarztrauber and Dick Valent;
nms, a Fortran90 library which includes a number of FFT routines.
sftpack, a Fortran90 library which implements the "slow" Fourier transform, intended as a teaching tool and comparison with the fast Fourier transform.
walsh_transform, a Fortran90 library which implements versions of the Walsh and Haar transforms.
Matteo Frigo, Steven Johnson.