Next: , Previous: 3D FFT, Up: 3D FFT


ZFFT3D Routine Documentation
— SUBROUTINE: ZFFT3D (MODE,L,M,N,X,COMM,INFO)
— Input: INTEGER MODE

The value of MODE on input determines the direction of transform to be performed by ZFFT3D.
On input:

  • MODE=-1 : forward 3D transform is performed.
  • MODE=1 : backward (reverse) 3D transform is performed.

— Input: INTEGER L

On input: the length of the first dimension of the 3D array of data to be transformed. If X is declared as a 3D array then L is the first dimension of X.

— Input: INTEGER M

On input: the length of the second dimension of the 3D array of data to be transformed. If X is declared as a 3D array then M is the second dimension of X.

— Input: INTEGER N

On input: the length of the third dimension of the 3D array of data to be transformed. If X is declared as a 3D array then N is the third dimension of X.

— Input/Output: COMPLEX*16 X(L*M*N)

On input: X contains the L by M by N complex 3D array to be transformed. Element ijk is stored in location i+(j-1)*L+(k-1)*L*M of X.
On output: X contains the transformed sequence.

— Input/Output: COMPLEX*16 COMM(L*M*N+3*(L+M+N))

COMM is a communication array used as temporary store.

— Output: INTEGER INFO

On output: INFO is an error indicator. On successful exit, INFO contains 0. If INFO = -i on exit, the i-th argument had an illegal value.

Example:

             CALL ZFFT3D(-1,L,M,N,X,COMM,INFO)
             DO 30 K = 1, N
               DO 20 J = 1, M
                 DO 10 I = 1, L
                   X(I,J) = X(I,J)*EXP(-0.001D0*DBLE(I+J+K))
        10       CONTINUE
        20     CONTINUE
        30   CONTINUE
             CALL ZFFT3D(1,L,M,N,X,COMM,INFO)