From d1c0c25cd21baff8edfe9273b2f975ac81da2703 Mon Sep 17 00:00:00 2001 From: julie Date: Thu, 12 Apr 2012 00:56:00 +0000 Subject: [PATCH] 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.... --- SRC/cherfsx.f | 6 +++--- SRC/cla_gercond_c.f | 5 +++++ SRC/cla_gercond_x.f | 4 ++++ SRC/cla_hercond_c.f | 11 +++++++++-- SRC/cla_hercond_x.f | 11 +++++++++-- SRC/cla_herfsx_extended.f | 26 +++++++++++++++++++++++--- SRC/cla_porcond_c.f | 11 +++++++++-- SRC/cla_porcond_x.f | 11 +++++++++-- SRC/cla_syrcond_c.f | 11 +++++++++-- SRC/cla_syrcond_x.f | 11 +++++++++-- SRC/cla_syrfsx_extended.f | 26 +++++++++++++++++++++++--- SRC/csyrfsx.f | 6 +++--- SRC/dla_syrcond.f | 4 ++++ SRC/dla_syrfsx_extended.f | 26 +++++++++++++++++++++++--- SRC/dsyrfsx.f | 6 +++--- SRC/sla_syrcond.f | 4 ++++ SRC/sla_syrfsx_extended.f | 26 +++++++++++++++++++++++--- SRC/ssyrfsx.f | 6 +++--- SRC/zherfsx.f | 20 ++++++++++---------- SRC/zla_gercond_c.f | 5 +++++ SRC/zla_gercond_x.f | 4 ++++ SRC/zla_hercond_c.f | 11 +++++++++-- SRC/zla_hercond_x.f | 11 +++++++++-- SRC/zla_herfsx_extended.f | 26 +++++++++++++++++++++++--- SRC/zla_porcond_c.f | 11 +++++++++-- SRC/zla_porcond_x.f | 11 +++++++++-- SRC/zla_syrcond_c.f | 11 +++++++++-- SRC/zla_syrcond_x.f | 11 +++++++++-- SRC/zla_syrfsx_extended.f | 26 +++++++++++++++++++++++--- SRC/zsyrfsx.f | 6 +++--- TESTING/LIN/cdrvhex.f | 2 +- TESTING/LIN/cdrvsyx.f | 2 +- TESTING/LIN/cerrhex.f | 4 ++-- TESTING/LIN/cerrsyx.f | 4 ++-- TESTING/LIN/ddrvsyx.f | 2 +- TESTING/LIN/derrsyx.f | 4 ++-- TESTING/LIN/sdrvsyx.f | 2 +- TESTING/LIN/serrsyx.f | 4 ++-- TESTING/LIN/zdrvsyx.f | 2 +- TESTING/LIN/zerrhex.f | 4 ++-- TESTING/LIN/zerrsyx.f | 4 ++-- 41 files changed, 314 insertions(+), 84 deletions(-) diff --git a/SRC/cherfsx.f b/SRC/cherfsx.f index a04f0e8..780c145 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 97d18a7..6a51689 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 586c22c..a458f2b 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 1ae2ac8..2762cdd 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 a164b0f..b7a93cc 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 d0d8013..013ff43 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 adcc339..fdbbe98 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 ea275af..e7bd8c1 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 c1b68f4..c696546 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 a752ae9..5d232a3 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 423b232..fc0b74a 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 0ff61b1..6d76b4c 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 1d6e781..f279a28 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 db2391a..3fd8334 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 fde1247..afa5581 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 3cff69d..20fa2de 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 4a37b02..f8ae0d9 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 611ce3a..9b9d70d 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 6ecf5f2..f6b5a5e 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 25f4d7c..10ce3dc 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 e886a30..1f55ada 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 77deaed..586cf9b 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 56fb0da..a3b19cf 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 577a4af..9f8c4e3 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 ad481a7..806ef8c 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 ae839b6..d293df9 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 64bdca5..f0ed72d 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 1cc62e6..aeed038 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 392dd13..7dcc80e 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 3ffa677..ce61e5e 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 06dd79b..782c6c0 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 a85a800..58b5c14 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 cec7ce6..cc3d2f0 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 00b1670..f904176 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 2245c51..b09699b 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 266b369..d94c02f 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 cf3616b..b3fc76f 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 79ed25e..48513d9 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 33ba010..9ea9c07 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 3414893..7dafede 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 a7c7bf8..3da57ae 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 ) -- 2.7.4