C------------------------------------------------------------
C C3FFT(MFFT) <---> DCFTM(SSL2)
C IFFT = 1:INVERSE FFT
C IFFT = -1:FFT
SUBROUTINE C3FFT(ZRB,KFT1,KFT1_1,KFT2,KFT3,IWL,IWM,IWN
& ,IDUM1,IFFT,IDUM2,IWORK,IERR)
IMPLICIT REAL(A-H,O-Y)
IMPLICIT COMPLEX(Z)
INCLUDE 'PACVPP'
C-----ARRAYS FOR MFFT--------------------------------------------
DIMENSION IWL(8*IFX2+28),IWM(8*IFY2+28),IWN(8*IFZ2+28)
& ,IWORK(2*IFX2)
DIMENSION ID(3)
DIMENSION ZRB(IFX2,IFY2,IFZ2)
DIMENSION A(IFX2-1,IFY2,IFZ2),B(IFX2-1,IFY2,IFZ2)
C
IF (IFFT.NE.0) THEN
C
KFT1 = IFX2
KFT2 = IFY2
KFT3 = IFZ2
C
ID(1)= KFT1-1
ID(2)= KFT2
ID(3)= KFT3
C
KSUM=KFT1*KFT2*KFT3
KVOL=(KFT1-1)*KFT2*KFT3
DO 111 K=1,IFZ2
DO 112 J=1,IFY2
DO 113 I=1,IFX2-1
A(I,J,K)=DREAL(ZRB(I,J,K))
B(I,J,K)=DIMAG(ZRB(I,J,K))
113 CONTINUE
112 CONTINUE
111 CONTINUE
C
C SUBROUTINE C3FFT(ZRB,KFT1,KFT1-1,KFT2,KFT3,IWL,IWM,IWN
C & ,IDUM1,IFFT,IDUM2,IWORK,IERR)
C IFFT=1:INVERSE FFT,IFFT=-1:FFT
C CALL DCFTM(A,B,N,M,ISN,ICON):ISN=1:FFT,ISN=-1:INVERSE FFT
C CALL TIME(ITIME1,' ',1)
CALL DCFTM(A,B,ID,3,-IFFT,IERR)
C CALL TIME(ITIME1,'DCFTM ',2)
IF (IERR.NE.0) THEN
WRITE (6,*) ' C3FFT(SET UP)] IERR = ',IERR
STOP
END IF
C
DO 211 K=1,IFZ2
DO 212 J=1,IFY2
DO 213 I=1,IFX2-1
ZRB(I,J,K)=DCMPLX(A(I,J,K),B(I,J,K))
213 CONTINUE
212 CONTINUE
211 CONTINUE
END IF
C
RETURN
END