1! { dg-do compile } 2! { dg-options "-Ofast" } 3! { dg-additional-options "-mavx2" { target { x86_64-*-* i?86-*-* } } } 4 SUBROUTINE FOO(EF3,CA,ZA,NATA,IC4,NFRGPT) 5 IMPLICIT DOUBLE PRECISION (A-H,O-Z) 6 PARAMETER (MXATM=500) 7 COMMON DE(3,MXATM) 8 DIMENSION CA(3,NATA) 9 DIMENSION ZA(NATA) 10 DIMENSION EF3(3,NFRGPT) 11 DO II = 1,NATA 12 XII = XJ - CA(1,II) 13 YII = YJ - CA(2,II) 14 ZII = ZJ - CA(3,II) 15 RJII = SQRT(XII*XII + YII*YII + ZII*ZII) 16 R3 = RJII*RJII*RJII 17 IF (IC4.EQ.0) THEN 18 DE(1,II) = DE(1,II) - S2*ZA(II)*XII/R3 19 DE(2,II) = DE(2,II) - S2*ZA(II)*YII/R3 20 DE(3,II) = DE(3,II) - S2*ZA(II)*ZII/R3 21 ELSE 22 EF3(1,IC4+II) = EF3(1,IC4+II) - S2*ZA(II)*XII/R3 23 EF3(2,IC4+II) = EF3(2,IC4+II) - S2*ZA(II)*YII/R3 24 EF3(3,IC4+II) = EF3(3,IC4+II) - S2*ZA(II)*ZII/R3 25 END IF 26 END DO 27 RETURN 28 END 29