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