GFT_set_fft - Sets the size of the 1D, 2D or 3D FFT and allocates work and trigonometric arrays.
CALL GFT_set_fft(Nx=n, FFT=h, code=ierr)
CALL GFT_set_fft(Nx=n, Ny=m, FFT=h, code=ierr)
CALL GFT_set_fft(Nx=n, Ny=m, Nz=l, FFT=h, code=ierr)
<IN> n, m, l : Integer. Size of the FFT.
n or m or l must be even in all FFT cases.
Only FFTs of base 2, 3 and 5 or a combination are considered in this release.
<OUT> h : GFT handel of type one of the following derived data types:
1) GFT_CC : to perform a Complex-Complex FFT and inverse.
2) GFT_RCR : to perform a Real-Complex FFT and inverse.
3) GFT_MRCR: to perform a multiple 1D Real-Complex FFT and inverse.
4) GFT_MCC : to perform a multiple 1D Complex-Complex FFT and inverse.
<OUT> ierr : Integer. Optional error code. It will always return 0 in this release.
In this example, we set the size of a 2D FFT to later perform a Real-Complex or a Complex-Real FFT.
USE GFT
INTEGER :: n, m
TYPE(GFT_RCR) :: h
...
n=15; m=12
CALL GFT_set_fft( Nx=n, Ny=m, FFT=h)
...
This routine allocates work and trigonometric arrays as needed and returns a handel to further perform the FFT. So user has not to worry any more about the amount of memory to be reserved for these arrays. However, this advantage has a counterpart which is performances of the FFT may slow down significantly when the work array has an even size.