! { dg-do compile } ! { dg-options "-O2 -fcheck=bounds" } FUNCTION F06FKFN(N,W,INCW,X,INCX) IMPLICIT NONE INTEGER, PARAMETER :: WP = KIND(0.0D0) REAL (KIND=WP) :: F06FKFN REAL (KIND=WP), PARAMETER :: ONE = 1.0E+0_WP REAL (KIND=WP), PARAMETER :: ZERO = 0.0E+0_WP INTEGER, INTENT (IN) :: INCW, INCX, N REAL (KIND=WP), INTENT (IN) :: W(*), X(*) REAL (KIND=WP) :: ABSYI, NORM, SCALE, SSQ INTEGER :: I, IW, IX REAL (KIND=WP), EXTERNAL :: F06BMFN INTRINSIC ABS, SQRT IF (N<1) THEN NORM = ZERO ELSE IF (N==1) THEN NORM = SQRT(W(1))*ABS(X(1)) ELSE IF (INCW>0) THEN IW = 1 ELSE IW = 1 - (N-1)*INCW END IF IF (INCX>0) THEN IX = 1 ELSE IX = 1 - (N-1)*INCX END IF SCALE = ZERO SSQ = ONE DO I = 1, N IF ((W(IW)/=ZERO) .AND. (X(IX)/=ZERO)) THEN ABSYI = SQRT(W(IW))*ABS(X(IX)) IF (SCALE