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