summaryrefslogtreecommitdiff
path: root/SRC/zlasyf_aa.f
diff options
context:
space:
mode:
Diffstat (limited to 'SRC/zlasyf_aa.f')
-rw-r--r--SRC/zlasyf_aa.f22
1 files changed, 14 insertions, 8 deletions
diff --git a/SRC/zlasyf_aa.f b/SRC/zlasyf_aa.f
index dff71042..8e28d4f2 100644
--- a/SRC/zlasyf_aa.f
+++ b/SRC/zlasyf_aa.f
@@ -315,8 +315,8 @@
* Set A(J, J+1) = T(J, J+1)
*
A( K, J+1 ) = WORK( 2 )
- IF( (A( K, J ).EQ.ZERO ) .AND.
- $ ( (J.EQ.M) .OR. (A( K, J+1 ).EQ.ZERO))) THEN
+ IF( (A( K, J ).EQ.ZERO ) .AND. (A( K, J+1 ).EQ.ZERO) .AND.
+ $ ((K.EQ.1) .OR. (A( K-1, J ).EQ.ZERO)) ) THEN
IF(INFO .EQ. 0) THEN
INFO = J
ENDIF
@@ -342,8 +342,11 @@
$ A( K, J+2 ), LDA)
END IF
ELSE
- IF( (A( K, J ).EQ.ZERO) .AND. (INFO.EQ.0) ) THEN
- INFO = J
+ IF( (A( K, J ).EQ.ZERO) .AND.
+ $ ((K.EQ.1) .OR. (A( J-1, J ).EQ.ZERO)) ) THEN
+ IF (INFO.EQ.0) THEN
+ INFO = J
+ END IF
END IF
END IF
J = J + 1
@@ -465,8 +468,8 @@
* Set A(J+1, J) = T(J+1, J)
*
A( J+1, K ) = WORK( 2 )
- IF( (A( J, K ).EQ.ZERO) .AND.
- $ ( (J.EQ.M) .OR. (A( J+1, K ).EQ.ZERO)) ) THEN
+ IF( (A( J, K ).EQ.ZERO) .AND. (A( J+1, K ).EQ.ZERO) .AND.
+ $ ((K.EQ.1) .OR. (A( J, K-1 ).EQ.ZERO)) ) THEN
IF (INFO .EQ. 0)
$ INFO = J
END IF
@@ -491,8 +494,11 @@
$ A( J+2, K ), LDA )
END IF
ELSE
- IF( (A( J, K ).EQ.ZERO) .AND. (INFO.EQ.0) ) THEN
- INFO = J
+ IF( (A( J, K ).EQ.ZERO) .AND.
+ $ ((K.EQ.1) .OR. (A( J, K-1 ).EQ.ZERO)) ) THEN
+ IF (INFO.EQ.0) THEN
+ INFO = J
+ END IF
END IF
END IF
J = J + 1