@@ -319,8 +319,8 @@ SUBROUTINE CLAHEF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
319319* Set A(J, J+1) = T(J, J+1)
320320*
321321 A( K, J+1 ) = WORK( 2 )
322- IF ( (A( K, J ).EQ. ZERO ) .AND.
323- $ ( (J .EQ. M ) .OR. (A( K, J+1 ).EQ. ZERO))) THEN
322+ IF ( (A( K, J ).EQ. ZERO ) .AND. (A( K, J +1 ) .EQ. ZERO) .AND.
323+ $ ((K .EQ. 1 ) .OR. (A( K-1 , J ).EQ. ZERO)) ) THEN
324324 IF (INFO .EQ. 0 ) THEN
325325 INFO = J
326326 END IF
@@ -346,8 +346,11 @@ SUBROUTINE CLAHEF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
346346 $ A( K, J+2 ), LDA)
347347 END IF
348348 ELSE
349- IF ( (A( K, J ).EQ. ZERO) .AND. (INFO.EQ. 0 ) ) THEN
350- INFO = J
349+ IF ( (A( K, J ).EQ. ZERO) .AND.
350+ $ ((K.EQ. 1 ) .OR. (A( J-1 , J ).EQ. ZERO)) ) THEN
351+ IF (INFO.EQ. 0 ) THEN
352+ INFO = J
353+ END IF
351354 END IF
352355 END IF
353356 J = J + 1
@@ -473,8 +476,8 @@ SUBROUTINE CLAHEF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
473476* Set A(J+1, J) = T(J+1, J)
474477*
475478 A( J+1 , K ) = WORK( 2 )
476- IF ( (A( J, K ).EQ. ZERO) .AND.
477- $ ( (J .EQ. M ) .OR. (A( J+1 , K ).EQ. ZERO)) ) THEN
479+ IF ( (A( J, K ).EQ. ZERO) .AND. (A( J +1 , K ) .EQ. ZERO) .AND.
480+ $ ((K .EQ. 1 ) .OR. (A( J, K-1 ).EQ. ZERO)) ) THEN
478481 IF (INFO .EQ. 0 )
479482 $ INFO = J
480483 END IF
@@ -499,8 +502,12 @@ SUBROUTINE CLAHEF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
499502 $ A( J+2 , K ), LDA )
500503 END IF
501504 ELSE
502- IF ( (A( J, K ).EQ. ZERO) .AND. (J.EQ. M)
503- $ .AND. (INFO.EQ. 0 ) ) INFO = J
505+ IF ( (A( J, K ).EQ. ZERO) .AND.
506+ $ ((K.EQ. 1 ) .OR. (A( J, K-1 ).EQ. ZERO)) ) THEN
507+ IF (INFO.EQ. 0 ) THEN
508+ INFO = J
509+ END IF
510+ END IF
504511 END IF
505512 J = J + 1
506513 GO TO 30
0 commit comments