aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjulie <julielangou@users.noreply.github.com>2012-04-12 00:56:00 +0000
committerjulie <julielangou@users.noreply.github.com>2012-04-12 00:56:00 +0000
commitd1c0c25cd21baff8edfe9273b2f975ac81da2703 (patch)
treef8e44c4112fca053cb04b9cc2d07fa905ef28c85
parent21199982e23bb604c3a4e61f8dc3b5db69009039 (diff)
Follow up to rev r1130
Fix bug bug0088 reported by Mike Pont from NAG on the forum (see http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=13&t=2893) Actually there were a lot of problems regarding arguments checking. I tried to correct most of them. Apply the fix propose to all x[he/sy]rfsx.f routines - Use IGNORE_CWISE as suggested to prevent use of unitialize variable PARAMS I also appied the previous TESTING fix to all routines INFO has new value in ZHERFSX (see description of INFO between ZHESVX and ZHESVXX) This is set on line 634 (IF ( INFO .LE. N ) INFO = N + J) of zherfsx.f And this is not handled by the testing LIN/zdrvhex.f I just add .AND. INFO.LE.N at line 638 to avoid raising an error when INFO = N + J At the moment, I would recommand a further look at those routines. ZHE, ZSY led to 182 Tests failing to pass the threshold and the same for complex better than before, but still....
-rw-r--r--SRC/cherfsx.f6
-rw-r--r--SRC/cla_gercond_c.f5
-rw-r--r--SRC/cla_gercond_x.f4
-rw-r--r--SRC/cla_hercond_c.f11
-rw-r--r--SRC/cla_hercond_x.f11
-rw-r--r--SRC/cla_herfsx_extended.f26
-rw-r--r--SRC/cla_porcond_c.f11
-rw-r--r--SRC/cla_porcond_x.f11
-rw-r--r--SRC/cla_syrcond_c.f11
-rw-r--r--SRC/cla_syrcond_x.f11
-rw-r--r--SRC/cla_syrfsx_extended.f26
-rw-r--r--SRC/csyrfsx.f6
-rw-r--r--SRC/dla_syrcond.f4
-rw-r--r--SRC/dla_syrfsx_extended.f26
-rw-r--r--SRC/dsyrfsx.f6
-rw-r--r--SRC/sla_syrcond.f4
-rw-r--r--SRC/sla_syrfsx_extended.f26
-rw-r--r--SRC/ssyrfsx.f6
-rw-r--r--SRC/zherfsx.f20
-rw-r--r--SRC/zla_gercond_c.f5
-rw-r--r--SRC/zla_gercond_x.f4
-rw-r--r--SRC/zla_hercond_c.f11
-rw-r--r--SRC/zla_hercond_x.f11
-rw-r--r--SRC/zla_herfsx_extended.f26
-rw-r--r--SRC/zla_porcond_c.f11
-rw-r--r--SRC/zla_porcond_x.f11
-rw-r--r--SRC/zla_syrcond_c.f11
-rw-r--r--SRC/zla_syrcond_x.f11
-rw-r--r--SRC/zla_syrfsx_extended.f26
-rw-r--r--SRC/zsyrfsx.f6
-rw-r--r--TESTING/LIN/cdrvhex.f2
-rw-r--r--TESTING/LIN/cdrvsyx.f2
-rw-r--r--TESTING/LIN/cerrhex.f4
-rw-r--r--TESTING/LIN/cerrsyx.f4
-rw-r--r--TESTING/LIN/ddrvsyx.f2
-rw-r--r--TESTING/LIN/derrsyx.f4
-rw-r--r--TESTING/LIN/sdrvsyx.f2
-rw-r--r--TESTING/LIN/serrsyx.f4
-rw-r--r--TESTING/LIN/zdrvsyx.f2
-rw-r--r--TESTING/LIN/zerrhex.f4
-rw-r--r--TESTING/LIN/zerrsyx.f4
41 files changed, 314 insertions, 84 deletions
diff --git a/SRC/cherfsx.f b/SRC/cherfsx.f
index a04f0e87..780c1456 100644
--- a/SRC/cherfsx.f
+++ b/SRC/cherfsx.f
@@ -533,9 +533,9 @@
ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
INFO = -8
ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
- INFO = -11
+ INFO = -12
ELSE IF( LDX.LT.MAX( 1, N ) ) THEN
- INFO = -13
+ INFO = -14
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CHERFSX', -INFO )
@@ -677,7 +677,7 @@
IF ( RCOND_TMP .LT. ILLRCOND_THRESH ) THEN
ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) = 1.0
ERR_BNDS_COMP( J, LA_LINRX_TRUST_I ) = 0.0
- IF ( PARAMS( LA_LINRX_CWISE_I ) .EQ. 1.0
+ IF ( .NOT. IGNORE_CWISE
$ .AND. INFO.LT.N + J ) INFO = N + J
ELSE IF ( ERR_BNDS_COMP( J, LA_LINRX_ERR_I )
$ .LT. ERR_LBND ) THEN
diff --git a/SRC/cla_gercond_c.f b/SRC/cla_gercond_c.f
index 97d18a79..6a516897 100644
--- a/SRC/cla_gercond_c.f
+++ b/SRC/cla_gercond_c.f
@@ -192,8 +192,13 @@
NOTRANS = LSAME( TRANS, 'N' )
IF ( .NOT. NOTRANS .AND. .NOT. LSAME( TRANS, 'T' ) .AND. .NOT.
$ LSAME( TRANS, 'C' ) ) THEN
+ INFO = -1
ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CLA_GERCOND_C', -INFO )
diff --git a/SRC/cla_gercond_x.f b/SRC/cla_gercond_x.f
index 586c22c0..a458f2b7 100644
--- a/SRC/cla_gercond_x.f
+++ b/SRC/cla_gercond_x.f
@@ -189,6 +189,10 @@
INFO = -1
ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CLA_GERCOND_X', -INFO )
diff --git a/SRC/cla_hercond_c.f b/SRC/cla_hercond_c.f
index 1ae2ac84..2762cddc 100644
--- a/SRC/cla_hercond_c.f
+++ b/SRC/cla_hercond_c.f
@@ -159,7 +159,7 @@
* .. Local Scalars ..
INTEGER KASE, I, J
REAL AINVNM, ANORM, TMP
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX ZDUM
* ..
* .. Local Arrays ..
@@ -186,8 +186,15 @@
CLA_HERCOND_C = 0.0E+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CLA_HERCOND_C', -INFO )
diff --git a/SRC/cla_hercond_x.f b/SRC/cla_hercond_x.f
index a164b0f5..b7a93ccf 100644
--- a/SRC/cla_hercond_x.f
+++ b/SRC/cla_hercond_x.f
@@ -151,7 +151,7 @@
* .. Local Scalars ..
INTEGER KASE, I, J
REAL AINVNM, ANORM, TMP
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX ZDUM
* ..
* .. Local Arrays ..
@@ -178,8 +178,15 @@
CLA_HERCOND_X = 0.0E+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF ( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CLA_HERCOND_X', -INFO )
diff --git a/SRC/cla_herfsx_extended.f b/SRC/cla_herfsx_extended.f
index d0d8013c..013ff43e 100644
--- a/SRC/cla_herfsx_extended.f
+++ b/SRC/cla_herfsx_extended.f
@@ -373,7 +373,7 @@
*> \verbatim
*> INFO is INTEGER
*> = 0: Successful exit.
-*> < 0: if INFO = -i, the ith argument to CHETRS had an illegal
+*> < 0: if INFO = -i, the ith argument to CLA_HERFSX_EXTENDED had an illegal
*> value
*> \endverbatim
*
@@ -428,7 +428,7 @@
$ DZRAT, PREVNORMDX, PREV_DZ_Z, DXRATMAX,
$ DZRATMAX, DX_X, DZ_Z, FINAL_DX_X, FINAL_DZ_Z,
$ EPS, HUGEVAL, INCR_THRESH
- LOGICAL INCR_PREC
+ LOGICAL INCR_PREC, UPPER
COMPLEX ZDUM
* ..
* .. Parameters ..
@@ -479,7 +479,27 @@
* ..
* .. Executable Statements ..
*
- IF (INFO.NE.0) RETURN
+ INFO = 0
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -2
+ ELSE IF( N.LT.0 ) THEN
+ INFO = -3
+ ELSE IF( NRHS.LT.0 ) THEN
+ INFO = -4
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -6
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -8
+ ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
+ INFO = -13
+ ELSE IF( LDY.LT.MAX( 1, N ) ) THEN
+ INFO = -15
+ END IF
+ IF( INFO.NE.0 ) THEN
+ CALL XERBLA( 'CLA_HERFSX_EXTENDED', -INFO )
+ RETURN
+ END IF
EPS = SLAMCH( 'Epsilon' )
HUGEVAL = SLAMCH( 'Overflow' )
* Force HUGEVAL to Inf
diff --git a/SRC/cla_porcond_c.f b/SRC/cla_porcond_c.f
index adcc339c..fdbbe98f 100644
--- a/SRC/cla_porcond_c.f
+++ b/SRC/cla_porcond_c.f
@@ -151,7 +151,7 @@
INTEGER KASE
REAL AINVNM, ANORM, TMP
INTEGER I, J
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX ZDUM
* ..
* .. Local Arrays ..
@@ -178,8 +178,15 @@
CLA_PORCOND_C = 0.0E+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CLA_PORCOND_C', -INFO )
diff --git a/SRC/cla_porcond_x.f b/SRC/cla_porcond_x.f
index ea275afa..e7bd8c1a 100644
--- a/SRC/cla_porcond_x.f
+++ b/SRC/cla_porcond_x.f
@@ -142,7 +142,7 @@
* .. Local Scalars ..
INTEGER KASE, I, J
REAL AINVNM, ANORM, TMP
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX ZDUM
* ..
* .. Local Arrays ..
@@ -169,8 +169,15 @@
CLA_PORCOND_X = 0.0E+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF ( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CLA_PORCOND_X', -INFO )
diff --git a/SRC/cla_syrcond_c.f b/SRC/cla_syrcond_c.f
index c1b68f47..c696546c 100644
--- a/SRC/cla_syrcond_c.f
+++ b/SRC/cla_syrcond_c.f
@@ -160,7 +160,7 @@
INTEGER KASE
REAL AINVNM, ANORM, TMP
INTEGER I, J
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX ZDUM
* ..
* .. Local Arrays ..
@@ -187,8 +187,15 @@
CLA_SYRCOND_C = 0.0E+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CLA_SYRCOND_C', -INFO )
diff --git a/SRC/cla_syrcond_x.f b/SRC/cla_syrcond_x.f
index a752ae9d..5d232a35 100644
--- a/SRC/cla_syrcond_x.f
+++ b/SRC/cla_syrcond_x.f
@@ -152,7 +152,7 @@
INTEGER KASE
REAL AINVNM, ANORM, TMP
INTEGER I, J
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX ZDUM
* ..
* .. Local Arrays ..
@@ -179,8 +179,15 @@
CLA_SYRCOND_X = 0.0E+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF ( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CLA_SYRCOND_X', -INFO )
diff --git a/SRC/cla_syrfsx_extended.f b/SRC/cla_syrfsx_extended.f
index 423b232b..fc0b74a6 100644
--- a/SRC/cla_syrfsx_extended.f
+++ b/SRC/cla_syrfsx_extended.f
@@ -373,7 +373,7 @@
*> \verbatim
*> INFO is INTEGER
*> = 0: Successful exit.
-*> < 0: if INFO = -i, the ith argument to CSYTRS had an illegal
+*> < 0: if INFO = -i, the ith argument to CLA_SYRFSX_EXTENDED had an illegal
*> value
*> \endverbatim
*
@@ -428,7 +428,7 @@
$ DZRAT, PREVNORMDX, PREV_DZ_Z, DXRATMAX,
$ DZRATMAX, DX_X, DZ_Z, FINAL_DX_X, FINAL_DZ_Z,
$ EPS, HUGEVAL, INCR_THRESH
- LOGICAL INCR_PREC
+ LOGICAL INCR_PREC, UPPER
COMPLEX ZDUM
* ..
* .. Parameters ..
@@ -479,7 +479,27 @@
* ..
* .. Executable Statements ..
*
- IF ( INFO.NE.0 ) RETURN
+ INFO = 0
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -2
+ ELSE IF( N.LT.0 ) THEN
+ INFO = -3
+ ELSE IF( NRHS.LT.0 ) THEN
+ INFO = -4
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -6
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -8
+ ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
+ INFO = -13
+ ELSE IF( LDY.LT.MAX( 1, N ) ) THEN
+ INFO = -15
+ END IF
+ IF( INFO.NE.0 ) THEN
+ CALL XERBLA( 'CLA_SYRFSX_EXTENDED', -INFO )
+ RETURN
+ END IF
EPS = SLAMCH( 'Epsilon' )
HUGEVAL = SLAMCH( 'Overflow' )
* Force HUGEVAL to Inf
diff --git a/SRC/csyrfsx.f b/SRC/csyrfsx.f
index 0ff61b12..6d76b4c0 100644
--- a/SRC/csyrfsx.f
+++ b/SRC/csyrfsx.f
@@ -535,9 +535,9 @@
ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
INFO = -8
ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
- INFO = -11
+ INFO = -12
ELSE IF( LDX.LT.MAX( 1, N ) ) THEN
- INFO = -13
+ INFO = -14
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CSYRFSX', -INFO )
@@ -680,7 +680,7 @@
IF ( RCOND_TMP .LT. ILLRCOND_THRESH ) THEN
ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) = 1.0
ERR_BNDS_COMP( J, LA_LINRX_TRUST_I ) = 0.0
- IF ( PARAMS( LA_LINRX_CWISE_I ) .EQ. 1.0
+ IF ( .NOT. IGNORE_CWISE
$ .AND. INFO.LT.N + J ) INFO = N + J
ELSE IF ( ERR_BNDS_COMP( J, LA_LINRX_ERR_I )
$ .LT. ERR_LBND ) THEN
diff --git a/SRC/dla_syrcond.f b/SRC/dla_syrcond.f
index 1d6e7814..f279a285 100644
--- a/SRC/dla_syrcond.f
+++ b/SRC/dla_syrcond.f
@@ -192,6 +192,10 @@
INFO = 0
IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'DLA_SYRCOND', -INFO )
diff --git a/SRC/dla_syrfsx_extended.f b/SRC/dla_syrfsx_extended.f
index db2391ab..3fd8334d 100644
--- a/SRC/dla_syrfsx_extended.f
+++ b/SRC/dla_syrfsx_extended.f
@@ -374,7 +374,7 @@
*> \verbatim
*> INFO is INTEGER
*> = 0: Successful exit.
-*> < 0: if INFO = -i, the ith argument to DSYTRS had an illegal
+*> < 0: if INFO = -i, the ith argument to DLA_SYRFSX_EXTENDED had an illegal
*> value
*> \endverbatim
*
@@ -428,7 +428,7 @@
$ DZRAT, PREVNORMDX, PREV_DZ_Z, DXRATMAX,
$ DZRATMAX, DX_X, DZ_Z, FINAL_DX_X, FINAL_DZ_Z,
$ EPS, HUGEVAL, INCR_THRESH
- LOGICAL INCR_PREC
+ LOGICAL INCR_PREC, UPPER
* ..
* .. Parameters ..
INTEGER UNSTABLE_STATE, WORKING_STATE, CONV_STATE,
@@ -472,7 +472,27 @@
* ..
* .. Executable Statements ..
*
- IF ( INFO.NE.0 ) RETURN
+ INFO = 0
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -2
+ ELSE IF( N.LT.0 ) THEN
+ INFO = -3
+ ELSE IF( NRHS.LT.0 ) THEN
+ INFO = -4
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -6
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -8
+ ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
+ INFO = -13
+ ELSE IF( LDY.LT.MAX( 1, N ) ) THEN
+ INFO = -15
+ END IF
+ IF( INFO.NE.0 ) THEN
+ CALL XERBLA( 'DLA_SYRFSX_EXTENDED', -INFO )
+ RETURN
+ END IF
EPS = DLAMCH( 'Epsilon' )
HUGEVAL = DLAMCH( 'Overflow' )
* Force HUGEVAL to Inf
diff --git a/SRC/dsyrfsx.f b/SRC/dsyrfsx.f
index fde12474..afa5581b 100644
--- a/SRC/dsyrfsx.f
+++ b/SRC/dsyrfsx.f
@@ -534,9 +534,9 @@
ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
INFO = -8
ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
- INFO = -11
+ INFO = -12
ELSE IF( LDX.LT.MAX( 1, N ) ) THEN
- INFO = -13
+ INFO = -14
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'DSYRFSX', -INFO )
@@ -677,7 +677,7 @@
IF ( RCOND_TMP .LT. ILLRCOND_THRESH ) THEN
ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) = 1.0D+0
ERR_BNDS_COMP( J, LA_LINRX_TRUST_I ) = 0.0D+0
- IF ( PARAMS( LA_LINRX_CWISE_I ) .EQ. 1.0D+0
+ IF ( .NOT. IGNORE_CWISE
$ .AND. INFO.LT.N + J ) INFO = N + J
ELSE IF ( ERR_BNDS_COMP( J, LA_LINRX_ERR_I )
$ .LT. ERR_LBND ) THEN
diff --git a/SRC/sla_syrcond.f b/SRC/sla_syrcond.f
index 3cff69dc..20fa2de9 100644
--- a/SRC/sla_syrcond.f
+++ b/SRC/sla_syrcond.f
@@ -190,6 +190,10 @@
INFO = 0
IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'SLA_SYRCOND', -INFO )
diff --git a/SRC/sla_syrfsx_extended.f b/SRC/sla_syrfsx_extended.f
index 4a37b02b..f8ae0d94 100644
--- a/SRC/sla_syrfsx_extended.f
+++ b/SRC/sla_syrfsx_extended.f
@@ -371,7 +371,7 @@
*> \verbatim
*> INFO is INTEGER
*> = 0: Successful exit.
-*> < 0: if INFO = -i, the ith argument to SSYTRS had an illegal
+*> < 0: if INFO = -i, the ith argument to SLA_SYRFSX_EXTENDED had an illegal
*> value
*> \endverbatim
*
@@ -425,7 +425,7 @@
$ DZRAT, PREVNORMDX, PREV_DZ_Z, DXRATMAX,
$ DZRATMAX, DX_X, DZ_Z, FINAL_DX_X, FINAL_DZ_Z,
$ EPS, HUGEVAL, INCR_THRESH
- LOGICAL INCR_PREC
+ LOGICAL INCR_PREC, UPPER
* ..
* .. Parameters ..
INTEGER UNSTABLE_STATE, WORKING_STATE, CONV_STATE,
@@ -469,7 +469,27 @@
* ..
* .. Executable Statements ..
*
- IF ( INFO.NE.0 ) RETURN
+ INFO = 0
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -2
+ ELSE IF( N.LT.0 ) THEN
+ INFO = -3
+ ELSE IF( NRHS.LT.0 ) THEN
+ INFO = -4
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -6
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -8
+ ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
+ INFO = -13
+ ELSE IF( LDY.LT.MAX( 1, N ) ) THEN
+ INFO = -15
+ END IF
+ IF( INFO.NE.0 ) THEN
+ CALL XERBLA( 'SLA_SYRFSX_EXTENDED', -INFO )
+ RETURN
+ END IF
EPS = SLAMCH( 'Epsilon' )
HUGEVAL = SLAMCH( 'Overflow' )
* Force HUGEVAL to Inf
diff --git a/SRC/ssyrfsx.f b/SRC/ssyrfsx.f
index 611ce3a1..9b9d70d2 100644
--- a/SRC/ssyrfsx.f
+++ b/SRC/ssyrfsx.f
@@ -534,9 +534,9 @@
ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
INFO = -8
ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
- INFO = -11
+ INFO = -12
ELSE IF( LDX.LT.MAX( 1, N ) ) THEN
- INFO = -13
+ INFO = -14
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'SSYRFSX', -INFO )
@@ -677,7 +677,7 @@
IF ( RCOND_TMP .LT. ILLRCOND_THRESH ) THEN
ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) = 1.0
ERR_BNDS_COMP( J, LA_LINRX_TRUST_I ) = 0.0
- IF ( PARAMS( LA_LINRX_CWISE_I ) .EQ. 1.0
+ IF ( .NOT. IGNORE_CWISE
$ .AND. INFO.LT.N + J ) INFO = N + J
ELSE IF ( ERR_BNDS_COMP( J, LA_LINRX_ERR_I )
$ .LT. ERR_LBND ) THEN
diff --git a/SRC/zherfsx.f b/SRC/zherfsx.f
index 6ecf5f21..f6b5a5ec 100644
--- a/SRC/zherfsx.f
+++ b/SRC/zherfsx.f
@@ -446,7 +446,7 @@
* .. Local Scalars ..
CHARACTER(1) NORM
LOGICAL RCEQU
- INTEGER IINFO, J, PREC_TYPE, REF_TYPE
+ INTEGER J, PREC_TYPE, REF_TYPE
INTEGER N_NORMS
DOUBLE PRECISION ANORM, RCOND_TMP
DOUBLE PRECISION ILLRCOND_THRESH, ERR_LBND, CWISE_WRONG
@@ -533,9 +533,9 @@
ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
INFO = -8
ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
- INFO = -11
+ INFO = -12
ELSE IF( LDX.LT.MAX( 1, N ) ) THEN
- INFO = -13
+ INFO = -14
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZHERFSX', -INFO )
@@ -589,7 +589,7 @@
NORM = 'I'
ANORM = ZLANHE( NORM, UPLO, N, A, LDA, RWORK )
CALL ZHECON( UPLO, N, AF, LDAF, IPIV, ANORM, RCOND, WORK,
- $ IINFO )
+ $ INFO )
*
* Perform refinement on each right-hand side
*
@@ -603,7 +603,7 @@
$ WORK, RWORK, WORK(N+1),
$ TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N), RCOND,
$ ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
- $ IINFO )
+ $ INFO )
END IF
ERR_LBND = MAX( 10.0D+0, SQRT( DBLE( N ) ) ) * DLAMCH( 'Epsilon' )
@@ -613,10 +613,10 @@
*
IF ( RCEQU ) THEN
RCOND_TMP = ZLA_HERCOND_C( UPLO, N, A, LDA, AF, LDAF, IPIV,
- $ S, .TRUE., IINFO, WORK, RWORK )
+ $ S, .TRUE., INFO, WORK, RWORK )
ELSE
RCOND_TMP = ZLA_HERCOND_C( UPLO, N, A, LDA, AF, LDAF, IPIV,
- $ S, .FALSE., IINFO, WORK, RWORK )
+ $ S, .FALSE., INFO, WORK, RWORK )
END IF
DO J = 1, NRHS
*
@@ -661,7 +661,7 @@
IF ( ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) .LT. CWISE_WRONG )
$ THEN
RCOND_TMP = ZLA_HERCOND_X( UPLO, N, A, LDA, AF, LDAF,
- $ IPIV, X( 1, J ), IINFO, WORK, RWORK )
+ $ IPIV, X( 1, J ), INFO, WORK, RWORK )
ELSE
RCOND_TMP = 0.0D+0
END IF
@@ -677,8 +677,8 @@
IF ( RCOND_TMP .LT. ILLRCOND_THRESH ) THEN
ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) = 1.0D+0
ERR_BNDS_COMP( J, LA_LINRX_TRUST_I ) = 0.0D+0
- IF ( .NOT. IGNORE_CWISE
- $ .AND. INFO.LT.N + J ) INFO = N + J
+ IF ( .NOT. IGNORE_CWISE
+ $ .AND. INFO.LT.N + J ) INFO = N + J
ELSE IF ( ERR_BNDS_COMP( J, LA_LINRX_ERR_I )
$ .LT. ERR_LBND ) THEN
ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) = ERR_LBND
diff --git a/SRC/zla_gercond_c.f b/SRC/zla_gercond_c.f
index 25f4d7cd..10ce3dc4 100644
--- a/SRC/zla_gercond_c.f
+++ b/SRC/zla_gercond_c.f
@@ -193,8 +193,13 @@
NOTRANS = LSAME( TRANS, 'N' )
IF ( .NOT. NOTRANS .AND. .NOT. LSAME( TRANS, 'T' ) .AND. .NOT.
$ LSAME( TRANS, 'C' ) ) THEN
+ INFO = -1
ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZLA_GERCOND_C', -INFO )
diff --git a/SRC/zla_gercond_x.f b/SRC/zla_gercond_x.f
index e886a30a..1f55ada6 100644
--- a/SRC/zla_gercond_x.f
+++ b/SRC/zla_gercond_x.f
@@ -190,6 +190,10 @@
INFO = -1
ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZLA_GERCOND_X', -INFO )
diff --git a/SRC/zla_hercond_c.f b/SRC/zla_hercond_c.f
index 77deaedf..586cf9b6 100644
--- a/SRC/zla_hercond_c.f
+++ b/SRC/zla_hercond_c.f
@@ -161,7 +161,7 @@
* .. Local Scalars ..
INTEGER KASE, I, J
DOUBLE PRECISION AINVNM, ANORM, TMP
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX*16 ZDUM
* ..
* .. Local Arrays ..
@@ -188,8 +188,15 @@
ZLA_HERCOND_C = 0.0D+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZLA_HERCOND_C', -INFO )
diff --git a/SRC/zla_hercond_x.f b/SRC/zla_hercond_x.f
index 56fb0daf..a3b19cf4 100644
--- a/SRC/zla_hercond_x.f
+++ b/SRC/zla_hercond_x.f
@@ -153,7 +153,7 @@
* .. Local Scalars ..
INTEGER KASE, I, J
DOUBLE PRECISION AINVNM, ANORM, TMP
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX*16 ZDUM
* ..
* .. Local Arrays ..
@@ -180,8 +180,15 @@
ZLA_HERCOND_X = 0.0D+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF ( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZLA_HERCOND_X', -INFO )
diff --git a/SRC/zla_herfsx_extended.f b/SRC/zla_herfsx_extended.f
index 577a4af0..9f8c4e38 100644
--- a/SRC/zla_herfsx_extended.f
+++ b/SRC/zla_herfsx_extended.f
@@ -373,7 +373,7 @@
*> \verbatim
*> INFO is INTEGER
*> = 0: Successful exit.
-*> < 0: if INFO = -i, the ith argument to ZHETRS had an illegal
+*> < 0: if INFO = -i, the ith argument to ZLA_HERFSX_EXTENDED had an illegal
*> value
*> \endverbatim
*
@@ -428,7 +428,7 @@
$ DZRAT, PREVNORMDX, PREV_DZ_Z, DXRATMAX,
$ DZRATMAX, DX_X, DZ_Z, FINAL_DX_X, FINAL_DZ_Z,
$ EPS, HUGEVAL, INCR_THRESH
- LOGICAL INCR_PREC
+ LOGICAL INCR_PREC, UPPER
COMPLEX*16 ZDUM
* ..
* .. Parameters ..
@@ -479,7 +479,27 @@
* ..
* .. Executable Statements ..
*
- IF (INFO.NE.0) RETURN
+ INFO = 0
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -2
+ ELSE IF( N.LT.0 ) THEN
+ INFO = -3
+ ELSE IF( NRHS.LT.0 ) THEN
+ INFO = -4
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -6
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -8
+ ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
+ INFO = -13
+ ELSE IF( LDY.LT.MAX( 1, N ) ) THEN
+ INFO = -15
+ END IF
+ IF( INFO.NE.0 ) THEN
+ CALL XERBLA( 'ZLA_HERFSX_EXTENDED', -INFO )
+ RETURN
+ END IF
EPS = DLAMCH( 'Epsilon' )
HUGEVAL = DLAMCH( 'Overflow' )
* Force HUGEVAL to Inf
diff --git a/SRC/zla_porcond_c.f b/SRC/zla_porcond_c.f
index ad481a7c..806ef8c1 100644
--- a/SRC/zla_porcond_c.f
+++ b/SRC/zla_porcond_c.f
@@ -153,7 +153,7 @@
INTEGER KASE
DOUBLE PRECISION AINVNM, ANORM, TMP
INTEGER I, J
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX*16 ZDUM
* ..
* .. Local Arrays ..
@@ -180,8 +180,15 @@
ZLA_PORCOND_C = 0.0D+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZLA_PORCOND_C', -INFO )
diff --git a/SRC/zla_porcond_x.f b/SRC/zla_porcond_x.f
index ae839b6f..d293df95 100644
--- a/SRC/zla_porcond_x.f
+++ b/SRC/zla_porcond_x.f
@@ -144,7 +144,7 @@
* .. Local Scalars ..
INTEGER KASE, I, J
DOUBLE PRECISION AINVNM, ANORM, TMP
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX*16 ZDUM
* ..
* .. Local Arrays ..
@@ -171,8 +171,15 @@
ZLA_PORCOND_X = 0.0D+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF ( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZLA_PORCOND_X', -INFO )
diff --git a/SRC/zla_syrcond_c.f b/SRC/zla_syrcond_c.f
index 64bdca53..f0ed72d3 100644
--- a/SRC/zla_syrcond_c.f
+++ b/SRC/zla_syrcond_c.f
@@ -162,7 +162,7 @@
INTEGER KASE
DOUBLE PRECISION AINVNM, ANORM, TMP
INTEGER I, J
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX*16 ZDUM
* ..
* .. Local Arrays ..
@@ -189,8 +189,15 @@
ZLA_SYRCOND_C = 0.0D+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZLA_SYRCOND_C', -INFO )
diff --git a/SRC/zla_syrcond_x.f b/SRC/zla_syrcond_x.f
index 1cc62e60..aeed038b 100644
--- a/SRC/zla_syrcond_x.f
+++ b/SRC/zla_syrcond_x.f
@@ -154,7 +154,7 @@
INTEGER KASE
DOUBLE PRECISION AINVNM, ANORM, TMP
INTEGER I, J
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX*16 ZDUM
* ..
* .. Local Arrays ..
@@ -181,8 +181,15 @@
ZLA_SYRCOND_X = 0.0D+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZLA_SYRCOND_X', -INFO )
diff --git a/SRC/zla_syrfsx_extended.f b/SRC/zla_syrfsx_extended.f
index 392dd13b..7dcc80e3 100644
--- a/SRC/zla_syrfsx_extended.f
+++ b/SRC/zla_syrfsx_extended.f
@@ -373,7 +373,7 @@
*> \verbatim
*> INFO is INTEGER
*> = 0: Successful exit.
-*> < 0: if INFO = -i, the ith argument to ZSYTRS had an illegal
+*> < 0: if INFO = -i, the ith argument to ZLA_HERFSX_EXTENDED had an illegal
*> value
*> \endverbatim
*
@@ -428,7 +428,7 @@
$ DZRAT, PREVNORMDX, PREV_DZ_Z, DXRATMAX,
$ DZRATMAX, DX_X, DZ_Z, FINAL_DX_X, FINAL_DZ_Z,
$ EPS, HUGEVAL, INCR_THRESH
- LOGICAL INCR_PREC
+ LOGICAL INCR_PREC, UPPER
COMPLEX*16 ZDUM
* ..
* .. Parameters ..
@@ -479,7 +479,27 @@
* ..
* .. Executable Statements ..
*
- IF ( INFO.NE.0 ) RETURN
+ INFO = 0
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -2
+ ELSE IF( N.LT.0 ) THEN
+ INFO = -3
+ ELSE IF( NRHS.LT.0 ) THEN
+ INFO = -4
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -6
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -8
+ ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
+ INFO = -13
+ ELSE IF( LDY.LT.MAX( 1, N ) ) THEN
+ INFO = -15
+ END IF
+ IF( INFO.NE.0 ) THEN
+ CALL XERBLA( 'ZLA_HERFSX_EXTENDED', -INFO )
+ RETURN
+ END IF
EPS = DLAMCH( 'Epsilon' )
HUGEVAL = DLAMCH( 'Overflow' )
* Force HUGEVAL to Inf
diff --git a/SRC/zsyrfsx.f b/SRC/zsyrfsx.f
index 3ffa6774..ce61e5e6 100644
--- a/SRC/zsyrfsx.f
+++ b/SRC/zsyrfsx.f
@@ -535,9 +535,9 @@
ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
INFO = -8
ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
- INFO = -11
+ INFO = -12
ELSE IF( LDX.LT.MAX( 1, N ) ) THEN
- INFO = -13
+ INFO = -14
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZSYRFSX', -INFO )
@@ -680,7 +680,7 @@
IF ( RCOND_TMP .LT. ILLRCOND_THRESH ) THEN
ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) = 1.0D+0
ERR_BNDS_COMP( J, LA_LINRX_TRUST_I ) = 0.0D+0
- IF ( PARAMS( LA_LINRX_CWISE_I ) .EQ. 1.0D+0
+ IF (.NOT. IGNORE_CWISE
$ .AND. INFO.LT.N + J ) INFO = N + J
ELSE IF ( ERR_BNDS_COMP( J, LA_LINRX_ERR_I )
$ .LT. ERR_LBND ) THEN
diff --git a/TESTING/LIN/cdrvhex.f b/TESTING/LIN/cdrvhex.f
index 06dd79b3..782c6c07 100644
--- a/TESTING/LIN/cdrvhex.f
+++ b/TESTING/LIN/cdrvhex.f
@@ -635,7 +635,7 @@
*
* Check the error code from CHESVXX.
*
- IF( INFO.NE.K ) THEN
+ IF( INFO.NE.K .AND. INFO.LE.N ) THEN
CALL ALAERH( PATH, 'CHESVXX', INFO, K,
$ FACT // UPLO, N, N, -1, -1, NRHS, IMAT, NFAIL,
$ NERRS, NOUT )
diff --git a/TESTING/LIN/cdrvsyx.f b/TESTING/LIN/cdrvsyx.f
index a85a8009..58b5c14d 100644
--- a/TESTING/LIN/cdrvsyx.f
+++ b/TESTING/LIN/cdrvsyx.f
@@ -641,7 +641,7 @@
*
* Check the error code from CSYSVXX.
*
- IF( INFO.NE.K ) THEN
+ IF( INFO.NE.K .AND. INFO.LE.N ) THEN
CALL ALAERH( PATH, 'CSYSVXX', INFO, K,
$ FACT // UPLO, N, N, -1, -1, NRHS, IMAT, NFAIL,
$ NERRS, NOUT )
diff --git a/TESTING/LIN/cerrhex.f b/TESTING/LIN/cerrhex.f
index cec7ce60..cc3d2f02 100644
--- a/TESTING/LIN/cerrhex.f
+++ b/TESTING/LIN/cerrhex.f
@@ -294,12 +294,12 @@
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
CALL CHKXER( 'CHERFSX', INFOT, NOUT, LERR, OK )
- INFOT = 11
+ INFOT = 12
CALL CHERFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 1, X, 2,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
CALL CHKXER( 'CHERFSX', INFOT, NOUT, LERR, OK )
- INFOT = 13
+ INFOT = 14
CALL CHERFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 2, X, 1,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
diff --git a/TESTING/LIN/cerrsyx.f b/TESTING/LIN/cerrsyx.f
index 00b1670c..f904176c 100644
--- a/TESTING/LIN/cerrsyx.f
+++ b/TESTING/LIN/cerrsyx.f
@@ -277,12 +277,12 @@
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
CALL CHKXER( 'CSYRFSX', INFOT, NOUT, LERR, OK )
- INFOT = 11
+ INFOT = 12
CALL CSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 1, X, 2,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
CALL CHKXER( 'CSYRFSX', INFOT, NOUT, LERR, OK )
- INFOT = 13
+ INFOT = 14
CALL CSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 2, X, 1,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
diff --git a/TESTING/LIN/ddrvsyx.f b/TESTING/LIN/ddrvsyx.f
index 2245c51e..b09699bf 100644
--- a/TESTING/LIN/ddrvsyx.f
+++ b/TESTING/LIN/ddrvsyx.f
@@ -625,7 +625,7 @@
*
* Check the error code from DSYSVXX.
*
- IF( INFO.NE.K ) THEN
+ IF( INFO.NE.K .AND. INFO.LE.N ) THEN
CALL ALAERH( PATH, 'DSYSVXX', INFO, K,
$ FACT // UPLO, N, N, -1, -1, NRHS, IMAT, NFAIL,
$ NERRS, NOUT )
diff --git a/TESTING/LIN/derrsyx.f b/TESTING/LIN/derrsyx.f
index 266b369e..d94c02fb 100644
--- a/TESTING/LIN/derrsyx.f
+++ b/TESTING/LIN/derrsyx.f
@@ -278,12 +278,12 @@
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, IW, INFO )
CALL CHKXER( 'DSYRFSX', INFOT, NOUT, LERR, OK )
- INFOT = 11
+ INFOT = 12
CALL DSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 1, X, 2,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, IW, INFO )
CALL CHKXER( 'DSYRFSX', INFOT, NOUT, LERR, OK )
- INFOT = 13
+ INFOT = 14
CALL DSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 2, X, 1,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, IW, INFO )
diff --git a/TESTING/LIN/sdrvsyx.f b/TESTING/LIN/sdrvsyx.f
index cf3616bf..b3fc76f5 100644
--- a/TESTING/LIN/sdrvsyx.f
+++ b/TESTING/LIN/sdrvsyx.f
@@ -625,7 +625,7 @@
*
* Check the error code from SSYSVXX.
*
- IF( INFO.NE.K ) THEN
+ IF( INFO.NE.K .AND. INFO.LE.N ) THEN
CALL ALAERH( PATH, 'SSYSVXX', INFO, K,
$ FACT // UPLO, N, N, -1, -1, NRHS, IMAT, NFAIL,
$ NERRS, NOUT )
diff --git a/TESTING/LIN/serrsyx.f b/TESTING/LIN/serrsyx.f
index 79ed25e2..48513d9d 100644
--- a/TESTING/LIN/serrsyx.f
+++ b/TESTING/LIN/serrsyx.f
@@ -278,12 +278,12 @@
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, IW, INFO )
CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK )
- INFOT = 11
+ INFOT = 12
CALL SSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 1, X, 2,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, IW, INFO )
CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK )
- INFOT = 13
+ INFOT = 14
CALL SSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 2, X, 1,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, IW, INFO )
diff --git a/TESTING/LIN/zdrvsyx.f b/TESTING/LIN/zdrvsyx.f
index 33ba010d..9ea9c077 100644
--- a/TESTING/LIN/zdrvsyx.f
+++ b/TESTING/LIN/zdrvsyx.f
@@ -641,7 +641,7 @@
*
* Check the error code from ZSYSVXX.
*
- IF( INFO.NE.K ) THEN
+ IF( INFO.NE.K .AND. INFO.LE.N ) THEN
CALL ALAERH( PATH, 'ZSYSVXX', INFO, K,
$ FACT // UPLO, N, N, -1, -1, NRHS, IMAT, NFAIL,
$ NERRS, NOUT )
diff --git a/TESTING/LIN/zerrhex.f b/TESTING/LIN/zerrhex.f
index 34148934..7dafede0 100644
--- a/TESTING/LIN/zerrhex.f
+++ b/TESTING/LIN/zerrhex.f
@@ -280,12 +280,12 @@
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
CALL CHKXER( 'ZHERFSX', INFOT, NOUT, LERR, OK )
- INFOT = 11
+ INFOT = 12
CALL ZHERFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 1, X, 2,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
CALL CHKXER( 'ZHERFSX', INFOT, NOUT, LERR, OK )
- INFOT = 13
+ INFOT = 14
CALL ZHERFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 2, X, 1,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
diff --git a/TESTING/LIN/zerrsyx.f b/TESTING/LIN/zerrsyx.f
index a7c7bf8f..3da57aea 100644
--- a/TESTING/LIN/zerrsyx.f
+++ b/TESTING/LIN/zerrsyx.f
@@ -279,12 +279,12 @@
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
CALL CHKXER( 'ZSYRFSX', INFOT, NOUT, LERR, OK )
- INFOT = 11
+ INFOT = 12
CALL ZSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 1, X, 2,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
CALL CHKXER( 'ZSYRFSX', INFOT, NOUT, LERR, OK )
- INFOT = 13
+ INFOT = 14
CALL ZSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 2, X, 1,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )