From bf07985d7004ca7bebf0ccf8994b077cdbb0c23b Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 16 Jan 2023 15:22:16 +0100 Subject: [PATCH] Philippe 16/01/2023: QPASSM and RPASSM: remove 2 always 1 arguments --- src/MNH/fft.f90 | 264 ++++++++++++++++++++++++------------------------ 1 file changed, 130 insertions(+), 134 deletions(-) diff --git a/src/MNH/fft.f90 b/src/MNH/fft.f90 index 59ac09b1d..60ee2eaab 100644 --- a/src/MNH/fft.f90 +++ b/src/MNH/fft.f90 @@ -202,15 +202,15 @@ SUBROUTINE FFT991( A, WORK, TRIGS, IFAX, JUMP, N, ILOT, ISIGN, KSZA, KSZW, KSZT IERR=-1 IF ( IGO == 1 ) THEN CALL RPASSM(A(IA:),A(IA+ILA:),WORK(1:),WORK(IFAC*ILA+1:), & - TRIGS(:), & - 1,1,JUMP,NX,NVEX,N,IFAC,ILA,IERR, & - SIZE(A(IA:)),SIZE(A(IA+ILA:)),SIZE(WORK(1:)), & + TRIGS(:), & + JUMP,NX,NVEX,N,IFAC,ILA,IERR, & + SIZE(A(IA:)),SIZE(A(IA+ILA:)),SIZE(WORK(1:)), & SIZE(WORK(IFAC*ILA+1:)),SIZE(TRIGS(:))) ELSE CALL RPASSM(WORK(1:),WORK(ILA+1:),A(IA:),A(IA+IFAC*ILA:), & - TRIGS(:), & - 1,1,NX,JUMP,NVEX,N,IFAC,ILA,IERR, & - SIZE(WORK(1:)),SIZE(WORK(ILA+1:)),SIZE(A(IA:)), & + TRIGS(:), & + NX,JUMP,NVEX,N,IFAC,ILA,IERR, & + SIZE(WORK(1:)),SIZE(WORK(ILA+1:)),SIZE(A(IA:)), & SIZE(A(IA+IFAC*ILA:)),SIZE(TRIGS(:))) END IF IF (IERR.NE.0) GO TO 500 @@ -267,13 +267,13 @@ SUBROUTINE FFT991( A, WORK, TRIGS, IFAX, JUMP, N, ILOT, ISIGN, KSZA, KSZW, KSZT IF ( IGO == 1 ) THEN CALL QPASSM(A(IA:),A(IA+IFAC*ILA:),WORK(1:),WORK(ILA+1:), & TRIGS(:), & - 1,1,JUMP,NX,NVEX,N,IFAC,ILA,IERR, & + JUMP,NX,NVEX,N,IFAC,ILA,IERR, & SIZE(A(IA:)),SIZE(A(IA+IFAC*ILA:)),SIZE(WORK(1:)), & SIZE(WORK(ILA+1:)),SIZE(TRIGS(:))) ELSE CALL QPASSM(WORK(1:),WORK(IFAC*ILA+1:),A(IA:),A(IA+ILA:), & TRIGS(:), & - 1,1,NX,JUMP,NVEX,N,IFAC,ILA,IERR, & + NX,JUMP,NVEX,N,IFAC,ILA,IERR, & SIZE(WORK(1:)),SIZE(WORK(IFAC*ILA+1:)),SIZE(A(IA:)), & SIZE(A(IA+ILA:)),SIZE(TRIGS(:))) END IF @@ -352,7 +352,7 @@ END SUBROUTINE FFT991 -SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KSZ2,KSZ3,KSZ4,KSZ5) +SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KSZ2,KSZ3,KSZ4,KSZ5) #ifdef MNH_OPENACC USE MODE_MNH_ZWORK, ONLY: MNH_MEM_GET, MNH_MEM_POSITION_PIN, MNH_MEM_RELEASE #endif @@ -364,7 +364,7 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS REAL, DIMENSION(KSZ3), INTENT(INOUT) :: C REAL, DIMENSION(KSZ4), INTENT(INOUT) :: D REAL, DIMENSION(KSZ5), INTENT(IN) :: TRIGS - INTEGER, INTENT(IN) :: INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA + INTEGER, INTENT(IN) :: INC3, INC4, ILOT, N, IFAC, ILA INTEGER, INTENT(OUT) :: IERR INTEGER, INTENT(IN) :: KSZ1,KSZ2,KSZ3,KSZ4,KSZ5 ! @@ -372,12 +372,10 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS ! OF MULTIPLE REAL FFT (FOURIER SYNTHESIS) ROUTINE ! ! A IS FIRST REAL INPUT VECTOR -! EQUIVALENCE B(1) WITH A (ILA*INC1+1) +! EQUIVALENCE B(1) WITH A (ILA+1) ! C IS FIRST REAL OUTPUT VECTOR -! EQUIVALENCE D(1) WITH C(IFAC*ILA*INC2+1) +! EQUIVALENCE D(1) WITH C(IFAC*ILA+1) ! TRIGS IS A PRECALCULATED LIST OF SINES & COSINES -! INC1 IS THE ADDRESSING INCREMENT FOR A -! INC2 IS THE ADDRESSING INCREMENT FOR C ! INC3 IS THE INCREMENT BETWEEN INPUT VECTORS A ! INC4 IS THE INCREMENT BETWEEN OUTPUT VECTORS C ! ILOT IS THE NUMBER OF VECTORS @@ -424,8 +422,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS !acc kernels M=N/IFAC - IINK=ILA*INC1 - JINK=ILA*INC2 + IINK=ILA + JINK=ILA JUMP=(IFAC-1)*JINK KSTOP=(N-IFAC)/(2*IFAC) @@ -446,7 +444,7 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS ! CODING FOR FACTOR 2 ! ------------------- IA=1 - IB=IA+(2*M-ILA)*INC1 + IB=IA+2*M-ILA JA=1 JB=JA+JINK @@ -467,8 +465,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JB+J)=A(IA+I)-A(IB+I) END DO !acc end kernels - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels IA=IA+IINK @@ -499,8 +497,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JB+J)=C1*(A(IA+I)-A(IB+I))-S1*(B(IA+I)+B(IB+I)) D(JB+J)=S1*(A(IA+I)-A(IB+I))+C1*(B(IA+I)+B(IB+I)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO IA=IA+IINK IB=IB-IINK @@ -524,8 +522,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JA+J)=A(IA+I) C(JB+J)=-B(IA+I) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -546,8 +544,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JA+J)=2.0*(A(IA+I)+A(IB+I)) C(JB+J)=2.0*(A(IA+I)-A(IB+I)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -559,7 +557,7 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS ! CODING FOR FACTOR 3 ! ------------------- IA=1 - IB=IA+(2*M-ILA)*INC1 + IB=IA+2*M-ILA IC=IB JA=1 JB=JA+JINK @@ -582,8 +580,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JB+J)=(A(IA+I)-0.5*A(IB+I))-(XSIN60*(B(IB+I))) C(JC+J)=(A(IA+I)-0.5*A(IB+I))+(XSIN60*(B(IB+I))) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels IA=IA+IINK @@ -635,8 +633,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS +C2*((B(IA+I)-0.5*(B(IB+I)-B(IC+I)))-(XSIN60*(A(IB+I)-A(IC+ & I)))) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO IA=IA+IINK IB=IB+IINK @@ -663,8 +661,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JB+J)=(0.5*A(IA+I)-A(IB+I))-(XSIN60*B(IA+I)) C(JC+J)=-(0.5*A(IA+I)-A(IB+I))-(XSIN60*B(IA+I)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -687,8 +685,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JB+J)=(2.0*A(IA+I)-A(IB+I))-(SSIN60*B(IB+I)) C(JC+J)=(2.0*A(IA+I)-A(IB+I))+(SSIN60*B(IB+I)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -701,8 +699,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS ! CODING FOR FACTOR 4 ! ------------------- IA=1 - IB=IA+(2*M-ILA)*INC1 - IC=IB+2*M*INC1 + IB=IA+2*M-ILA + IC=IB+2*M ID=IB JA=1 JB=JA+JINK @@ -727,8 +725,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JC+J)=(A(IA+I)+A(IC+I))-A(IB+I) C(JD+J)=(A(IA+I)-A(IC+I))+B(IB+I) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels IA=IA+IINK @@ -782,8 +780,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS S3*((A(IA+I)-A(IC+I))+(B(IB+I)+B(ID+I))) & +C3*((B(IA+I)+B(IC+I))-(A(IB+I)-A(ID+I))) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO IA=IA+IINK IB=IB+IINK @@ -813,8 +811,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JC+J)=B(IB+I)-B(IA+I) C(JD+J)=-SIN45*((A(IA+I)-A(IB+I))+(B(IA+I)+B(IB+I))) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -837,8 +835,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JC+J)=2.0*((A(IA+I)+A(IC+I))-A(IB+I)) C(JD+J)=2.0*((A(IA+I)-A(IC+I))+B(IB+I)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -851,8 +849,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS ! CODING FOR FACTOR 5 ! ------------------- IA=1 - IB=IA+(2*M-ILA)*INC1 - IC=IB+2*M*INC1 + IB=IA+2*M-ILA + IC=IB+2*M ID=IC IE=IB JA=1 @@ -888,8 +886,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS I))) & +(XSIN72*B(IB+I)+XSIN36*B(IC+I)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels IA=IA+IINK @@ -951,8 +949,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JD+J)=C3*(A20(IJK)+A21(IJK))-S3*(B20(IJK)-B21(IJK)) D(JD+J)=S3*(A20(IJK)+A21(IJK))+C3*(B20(IJK)-B21(IJK)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO IA=IA+IINK IB=IB+IINK @@ -991,8 +989,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS I))) & -(XSIN72*B(IA+I)-XSIN36*B(IB+I)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -1023,8 +1021,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JE+J)=(2.0*(A(IA+I)-0.25*(A(IB+I)+A(IC+I))) & +QQRT5*(A(IB+I)-A(IC+I)))+(SSIN72*B(IB+I)+SSIN36*B(IC+I)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -1037,9 +1035,9 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS ! CODING FOR FACTOR 6 ! ------------------- IA=1 - IB=IA+(2*M-ILA)*INC1 - IC=IB+2*M*INC1 - ID=IC+2*M*INC1 + IB=IA+2*M-ILA + IC=IB+2*M + ID=IC+2*M IE=IC IF=IB JA=1 @@ -1073,8 +1071,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JE+J)=((A(IA+I)+A(ID+I))-0.5*(A(IB+I)+A(IC+I))) & +(XSIN60*(B(IB+I)-B(IC+I))) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels IA=IA+IINK @@ -1146,8 +1144,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JF+J)=C5*(A20(IJK)+B21(IJK))-S5*(B20(IJK)+A21(IJK)) D(JF+J)=S5*(A20(IJK)+B21(IJK))+C5*(B20(IJK)+A21(IJK)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO IA=IA+IINK IB=IB+IINK @@ -1182,8 +1180,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JC+J)=XSIN60*(B(IC+I)-B(IA+I))+(0.5*(A(IA+I)+A(IC+I))-A(IB+I)) C(JE+J)=XSIN60*(B(IC+I)-B(IA+I))-(0.5*(A(IA+I)+A(IC+I))-A(IB+I)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -1213,8 +1211,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JE+J)=(2.0*(A(IA+I)+A(ID+I))-(A(IB+I)+A(IC+I))) & +(SSIN60*(B(IB+I)-B(IC+I))) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -1231,10 +1229,10 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS ELSE !$acc kernels IA=1 - IB=IA+ILA*INC1 - IC=IB+2*ILA*INC1 - ID=IC+2*ILA*INC1 - IE=ID+2*ILA*INC1 + IB=IA+ILA + IC=IB+2*ILA + ID=IC+2*ILA + IE=ID+2*ILA JA=1 JB=JA+JINK JC=JB+JINK @@ -1268,8 +1266,8 @@ SUBROUTINE RPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JH+J)=2.0*((A(IA+I)-A(IE+I))+B(IC+I)) & +SSIN45*((A(IB+I)-A(ID+I))+(B(IB+I)+B(ID+I))) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels IBAD=0 @@ -1297,7 +1295,7 @@ END SUBROUTINE RPASSM -SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KSZ2,KSZ3,KSZ4,KSZ5) +SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KSZ2,KSZ3,KSZ4,KSZ5) IMPLICIT NONE REAL, DIMENSION(KSZ1), INTENT(IN) :: A @@ -1305,7 +1303,7 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS REAL, DIMENSION(KSZ3), INTENT(INOUT) :: C REAL, DIMENSION(KSZ4), INTENT(INOUT) :: D REAL, DIMENSION(KSZ5), INTENT(IN) :: TRIGS - INTEGER, INTENT(IN) :: INC1, INC2, INC3, INC4, ILOT, N, IFAC, ILA + INTEGER, INTENT(IN) :: INC3, INC4, ILOT, N, IFAC, ILA INTEGER, INTENT(OUT) :: IERR INTEGER, INTENT(IN) :: KSZ1, KSZ2, KSZ3, KSZ4, KSZ5 ! @@ -1313,12 +1311,10 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS ! OF MULTIPLE REAL FFT (FOURIER ANALYSIS) ROUTINE ! ! A IS FIRST REAL INPUT VECTOR -! EQUIVALENCE B(1) WITH A(IFAC*ILA*INC1+1) +! EQUIVALENCE B(1) WITH A(IFAC*ILA+1) ! C IS FIRST REAL OUTPUT VECTOR -! EQUIVALENCE D(1) WITH C(ILA*INC2+1) +! EQUIVALENCE D(1) WITH C(ILA+1) ! TRIGS IS A PRECALCULATED LIST OF SINES & COSINES -! INC1 IS THE ADDRESSING INCREMENT FOR A -! INC2 IS THE ADDRESSING INCREMENT FOR C ! INC3 IS THE INCREMENT BETWEEN INPUT VECTORS A ! INC4 IS THE INCREMENT BETWEEN OUTPUT VECTORS C ! ILOT IS THE NUMBER OF VECTORS @@ -1350,8 +1346,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS M=N/IFAC - IINK=ILA*INC1 - JINK=ILA*INC2 + IINK=ILA + JINK=ILA IJUMP=(IFAC-1)*IINK KSTOP=(N-IFAC)/(2*IFAC) @@ -1372,7 +1368,7 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS IA=1 IB=IA+IINK JA=1 - JB=JA+(2*M-ILA)*INC2 + JB=JA+2*M-ILA IF ( ILA /= M ) THEN @@ -1390,8 +1386,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JA+J)=A(IA+I)+A(IB+I) C(JB+J)=A(IA+I)-A(IB+I) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels JA=JA+JINK @@ -1421,8 +1417,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS D(JA+J)=(C1*B(IB+I)-S1*A(IB+I))+B(IA+I) D(JB+J)=(C1*B(IB+I)-S1*A(IB+I))-B(IA+I) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO IBASE=IBASE+IJUMP JA=JA+JINK @@ -1447,8 +1443,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JA+J)=A(IA+I) D(JA+J)=-A(IB+I) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -1470,8 +1466,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JA+J)=Z*(A(IA+I)+A(IB+I)) C(JB+J)=Z*(A(IA+I)-A(IB+I)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels @@ -1489,7 +1485,7 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS IB=IA+IINK IC=IB+IINK JA=1 - JB=JA+(2*M-ILA)*INC2 + JB=JA+2*M-ILA JC=JB IF ( ILA /= M ) THEN @@ -1509,8 +1505,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JB+J)=A(IA+I)-0.5*(A(IB+I)+A(IC+I)) D(JB+J)=XSIN60*(A(IC+I)-A(IB+I)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels JA=JA+JINK @@ -1552,8 +1548,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JC+J)=A2-B3 D(JC+J)=-(B2+A3) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO IBASE=IBASE+IJUMP JA=JA+JINK @@ -1580,8 +1576,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS D(JA+J)=-XSIN60*(A(IB+I)+A(IC+I)) C(JB+J)=A(IA+I)-(A(IB+I)-A(IC+I)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -1605,8 +1601,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JB+J)=Z*(A(IA+I)-0.5*(A(IB+I)+A(IC+I))) D(JB+J)=ZSIN60*(A(IC+I)-A(IB+I)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -1624,8 +1620,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS IC=IB+IINK ID=IC+IINK JA=1 - JB=JA+(2*M-ILA)*INC2 - JC=JB+2*M*INC2 + JB=JA+2*M-ILA + JC=JB+2*M JD=JB IF ( ILA /= M ) THEN @@ -1645,8 +1641,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JB+J)=A(IA+I)-A(IC+I) D(JB+J)=A(ID+I)-A(IB+I) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels JA=JA+JINK @@ -1696,8 +1692,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS D(JB+J)=B2-A3 D(JD+J)=-(B2+A3) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO IBASE=IBASE+IJUMP JA=JA+JINK @@ -1727,8 +1723,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS D(JA+J)=-A(IC+I)-SIN45*(A(IB+I)+A(ID+I)) D(JB+J)=A(IC+I)-SIN45*(A(IB+I)+A(ID+I)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -1751,8 +1747,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JB+J)=Z*(A(IA+I)-A(IC+I)) D(JB+J)=Z*(A(ID+I)-A(IB+I)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -1770,8 +1766,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS ID=IC+IINK IE=ID+IINK JA=1 - JB=JA+(2*M-ILA)*INC2 - JC=JB+2*M*INC2 + JB=JA+2*M-ILA + JC=JB+2*M JD=JC JE=JB @@ -1799,8 +1795,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS D(JB+J)=-XSIN72*A3-XSIN36*A4 D(JC+J)=-XSIN36*A3+XSIN72*A4 END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels JA=JA+JINK @@ -1868,8 +1864,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS D(JC+J)=B20-B21 D(JD+J)=-(B20+B21) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO IBASE=IBASE+IJUMP JA=JA+JINK @@ -1906,8 +1902,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS D(JA+J)=-XSIN36*A1-XSIN72*A2 D(JB+J)=-XSIN72*A1+XSIN36*A2 END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -1940,8 +1936,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS D(JB+J)=-ZSIN72*A3-ZSIN36*A4 D(JC+J)=-ZSIN36*A3+ZSIN72*A4 END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -1960,9 +1956,9 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS IE=ID+IINK IF=IE+IINK JA=1 - JB=JA+(2*M-ILA)*INC2 - JC=JB+2*M*INC2 - JD=JC+2*M*INC2 + JB=JA+2*M-ILA + JC=JB+2*M + JD=JC+2*M JE=JC JF=JB @@ -1988,8 +1984,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS D(JB+J)=XSIN60*((A(IE+I)-A(IB+I))-(A(IC+I)-A(IF+I))) C(JD+J)=(A(IA+I)-A(ID+I))+A11 END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels JA=JA+JINK @@ -2065,8 +2061,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JF+J)=A20+B21 D(JF+J)=A21+B20 END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO IBASE=IBASE+IJUMP JA=JA+JINK @@ -2099,8 +2095,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS C(JC+J)=(A(IA+I)+0.5*(A(IC+I)-A(IE+I)))-XSIN60*(A(IB+I)-A(IF+I)) D(JC+J)=-(A(ID+I)+0.5*(A(IB+I)+A(IF+I)))+XSIN60*(A(IC+I)+A(IE+I)) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -2129,8 +2125,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS D(JB+J)=ZSIN60*((A(IE+I)-A(IB+I))-(A(IC+I)-A(IF+I))) C(JD+J)=Z*((A(IA+I)-A(ID+I))+A11) END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels END IF @@ -2156,10 +2152,10 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS IG=IF+IINK IH=IG+IINK JA=1 - JB=JA+ILA*INC2 - JC=JB+2*M*INC2 - JD=JC+2*M*INC2 - JE=JD+2*M*INC2 + JB=JA+ILA + JC=JB+2*M + JD=JC+2*M + JE=JD+2*M Z=1.0/REAL(N) ZSIN45=Z*SQRT(0.5) @@ -2190,8 +2186,8 @@ SUBROUTINE QPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,ILOT,N,IFAC,ILA,IERR,KSZ1,KS ! I=I+INC3 ! J=J+INC4 END DO - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 + IBASE=IBASE+1 + JBASE=JBASE+1 END DO !$acc end kernels IBAD=0 -- GitLab