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