S3DFFT,D3DFFT(3)            MathKeisan FFT routine            S3DFFT,D3DFFT(3)



NAME
       s3dfft, d3dfft - three-dimensional FFT - real storage mode.
                        (OpenMP Parallel Support).

SYNOPSIS
       libfft.a

          INTEGER   l1, l2, l3, ldxy, mdxy, iopt, ier
          REAL      x(ldxy, mdxy, l3), y(ldxy, mdxy, l3)
          CALL S3DFFT (x, y, l1, l2, l3, ldxy, mdxy, iopt, ier)

          INTEGER   l1, l2, l3, ldxy, mdxy, iopt, ier
          REAL(kind=8)   x(ldxy, mdxy, l3), y(ldxy, mdxy, l3)
          CALL D3DFFT (x, y, l1, l2, l3, ldxy, mdxy, iopt, ier)

       libfft_64.a

          INTEGER(kind=8)     l1, l2, l3, ldxy, mdxy, iopt, ier
          REAL(kind=8)   x(ldxy, mdxy, l3), y(ldxy, mdxy, l3)
          CALL S3DFFT (x, y, l1, l2, l3, ldxy, mdxy, iopt, ier)

          INTEGER(kind=8)     l1, l2, l3, ldxy, mdxy, iopt, ier
          REAL(kind=8)   x(ldxy, mdxy, l3), y(ldxy, mdxy, l3)
          CALL D3DFFT (x, y, l1, l2, l3, ldxy, mdxy, iopt, ier)

DESCRIPTION
       Given  a  set of complex data with real and imaginary parts in separate
       real arrays, these subprograms compute the three-dimensional forward or
       inverse  discrete  Fourier  transform  using a mixed-radix fast Fourier
       transform (FFT) algorithm.

       A pair of companion subprograms, C3DFFT and Z3DFFT, performs  the  same
       operation, but with the complex data presented in a complex array.

       Set  the OpenMp environmental variable OMP_NUM_THREADS to the number of
       threads you would like to use.


ARGUMENTS
       Input

       x      Array of real parts of the data to be transformed.

       y      Array of imaginary parts of the data to be transformed.

       l1     Number of rows of data (l1>0).

       l2     Number of columns of data (l2>0).

       l3     Number of planes of data (l3>0).

       ldxy   The leading dimension of arrays x and y, with ldxy >= l1.

       mdxy   The middle dimension of arrays x and y, with mdxy >= l2.

       iopt   Option flag:


              iopt >=   0    Compute forward transform.
              iopt <    0    Compute inverse transform.

       Output

       x and y
              The transformed data replaces the input if ier = 0 is  returned.

       ier    Status response:


              ier  =   0  Normal return - transform successful.
              ier  =  -1  l1 < 1.
              ier  =  -2  l2 < 1.
              ier  =  -3  l3 < 1.
              ier  =  -4  ldxy < l1.
              ier  =  -5  mdxy < l2.



MLIB routine                                                  S3DFFT,D3DFFT(3)