C------------------------------------------------------------           
C     C3FFT(MFFT) <---> HZFT7M(MSL2)
C     IFFT =  1:INVERSE FFT
C     IFFT = -1:FFT
C     SUBROUTINE C3FFT_HITACHI(ZRB,KFT1,KFT1_1,KFT2,KFT3,IWL,IWM,IWN
      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),IP1(3),IP2(3),IP3(3),IOPT(2)
C
C     ZWK(NWK): NWK >= MAX((NX + NWKW)*NY*NZ, NX*(NY + NWKW)*NZ)
C
C     PARAMETER(ISX=0,ISY=0,ISZ=0,IFX=KNX+ISX,IFY=KNY+ISY,IFZ=KNZ+ISZ)
C     PARAMETER(IFX2=2*IFX-1,IFY2=2*IFY-2,IFZ2=2*IFZ-2)
C     PARAMETER(KFFT=IFX2*IFY2*IFZ2)
C
      PARAMETER(KFFT2=IFX2*(IFY2+1)*IFZ2)
C                                                      KFFT
      DIMENSION ZTB1(IFX2-1),ZTB2(IFY2),ZTB3(IFZ2),ZWK(KFFT2)
      DIMENSION ZRB(IFX2,IFY2,IFZ2)
C
      KFT1 =  IFX2                                                      
      KFT2 =  IFY2                                                      
      KFT3 =  IFZ2                                                      
C
      NWKW = 1
C
C     NX = 36 = 2^2*3^2*5^0
C
      IP1(1) = 2
      IP1(2) = 2
      IP1(3) = 0
C
C     NY = 72 = 2^3*3^2*5^0
C
      IP2(1) = 3
      IP2(2) = 2
      IP2(3) = 0
C
C     NZ = 72 = 2^3*3^2*5^0
C
      IP3(1) = 3
      IP3(2) = 2
      IP3(3) = 0
C
      IF (IFFT.EQ.0) THEN
        IOPT(1) = 1
        IOPT(2) = 0
      ELSE IF (IFFT.EQ.1) THEN
        IOPT(1) = 2
        IOPT(2) = 2
      ELSE IF (IFFT.EQ.-1) THEN
        IOPT(1) = 1
        IOPT(2) = 2
      END IF
C
      KSUM=KFT1*KFT2*KFT3                                               
      KVOL=(KFT1-1)*KFT2*KFT3                                           
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
      CALL HZFT7M(ZRB,KFT1,KFT2,KFT1-1,KFT2,KFT3,IP1,IP2,IP3,IOPT,
     &            ZTB1,ZTB2,ZTB3,ZWK,NWKW,IERR)
C
      IF (IERR.NE.0) THEN                                               
          WRITE (6,*) ' C3FFT(SET UP)]  IERR = ',IERR                   
          STOP                                                          
      END IF                                                            
C
      RETURN                                                            
      END