1C PR rtl-optimization/44691 2C { dg-do compile { target powerpc*-*-* ia64-*-* i?86-*-* x86_64-*-* } } 3C { dg-options "-O2 -fselective-scheduling2" } 4 5 SUBROUTINE ORIEN(IW,NATOT,NTOTORB,NATORB,P,T) 6 IMPLICIT DOUBLE PRECISION(A-H,O-Z) 7 DIMENSION NATORB(NATOT),P(NTOTORB*(NTOTORB+1)/2) 8 DIMENSION T(NTOTORB,NTOTORB) 9 DO 9000 IATOM=1,NATOT 10 ILAST = NTOTORB 11 IF (IATOM.NE.NATOT) ILAST=NATORB(IATOM+1)-1 12 DO 8000 IAOI=NATORB(IATOM),ILAST 13 DO 7000 IAOJ = IAOI+1,ILAST 14 R2 = 0.0D+00 15 R3 = 0.0D+00 16 DO 6000 INOTA=1,NATOT 17 DO 5000 IK=NATORB(INOTA),NTOTORB 18 IMAI=MAX(IK,IAOI) 19 IMII=MIN(IK,IAOI) 20 IMAJ=MAX(IK,IAOJ) 21 IMIJ=MIN(IK,IAOJ) 22 IKI=(IMAI*(IMAI-1))/2 + IMII 23 IKJ=(IMAJ*(IMAJ-1))/2 + IMIJ 24 PIKI=P(IKI) 25 PIKJ=P(IKJ) 26 R2 = R2 + (PIKI**4)-6*(PIKI*PIKI*PIKJ*PIKJ)+(PIKJ) 27 5000 CONTINUE 28 6000 CONTINUE 29 R2 = (R2/4.0D+00) 30 Q = SQRT(R2*R2 + R3*R3) 31 IF (Q.LT.1.0D-08) GO TO 7000 32 A = COS(THETA) 33 B = -SIN(THETA) 34 CALL ROT1INT(NTOTORB,IAOI,IAOJ,A,B,P) 35 7000 CONTINUE 36 8000 CONTINUE 37 9000 CONTINUE 38 RETURN 39 END 40 41 42