diff options
author | julie <julielangou@users.noreply.github.com> | 2012-04-12 00:56:00 +0000 |
---|---|---|
committer | julie <julielangou@users.noreply.github.com> | 2012-04-12 00:56:00 +0000 |
commit | d1c0c25cd21baff8edfe9273b2f975ac81da2703 (patch) | |
tree | f8e44c4112fca053cb04b9cc2d07fa905ef28c85 | |
parent | 21199982e23bb604c3a4e61f8dc3b5db69009039 (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....
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 ) |