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