! { dg-do compile } ! { dg-options "-Ofast" } SUBROUTINE FOO(N, A, B, C, D, E, F, G) COMPLEX A(*) LOGICAL H INTEGER G REAL I, C, J, F, F1, F2, K, E, L, M, B, D DO JC = 1, N K = F*REAL(A(JC)) Z = F*AIMAG(A(JC)) H = .FALSE. L = G IF(ABS(Z).LT.D .AND. I.GE. MAX(D, B*C, B*J)) THEN H = .TRUE. L = (D / F1) / MAX(D, F2*I) END IF IF(ABS(K).LT.D .AND. C.GE. MAX(D, B*I, B*J)) THEN L = MAX(L, (D / F1) / MAX(D, F2*C)) END IF IF(ABS(E).LT.D .AND. J.GE. MAX(D, B*C, B*I)) THEN H = .TRUE. L = MAX(L, (D / BNRM1) / MAX(D, BNRM2*J)) END IF IF(H) THEN M = (L*D)*MAX(ABS(K), ABS(Z), ABS(E)) END IF IF(H) THEN K = (L*REAL(A(JC)))*F Z = (L*AIMAG(A(JC)))*F END IF A(JC) = CMPLX(K, Z) END DO END