diff --git a/SRC/cgeesx.f b/SRC/cgeesx.f index 4d0f81e53..1f43380a3 100644 --- a/SRC/cgeesx.f +++ b/SRC/cgeesx.f @@ -373,6 +373,8 @@ SUBROUTINE CGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, * IF( N.EQ.0 ) THEN SDIM = 0 + IF (WANTSE .OR. WANTSB) RCONDE = 1.0E0 + IF (WANTSV .OR. WANTSB) RCONDV = 0.0E0 RETURN END IF * diff --git a/SRC/chbevx.f b/SRC/chbevx.f index cde356a51..79159a626 100644 --- a/SRC/chbevx.f +++ b/SRC/chbevx.f @@ -382,8 +382,11 @@ SUBROUTINE CHBEVX( JOBZ, RANGE, UPLO, N, KD, AB, LDAB, Q, LDQ, END IF IF( M.EQ.1 ) THEN W( 1 ) = REAL( CTMP1 ) - IF( WANTZ ) - $ Z( 1, 1 ) = CONE + IF( WANTZ ) THEN + Q( 1, 1 ) = ONE + Z( 1, 1 ) = ONE + IFAIL(1) = 0 + ENDIF END IF RETURN END IF diff --git a/SRC/cheevx.f b/SRC/cheevx.f index bf2e30884..986cbf3a1 100644 --- a/SRC/cheevx.f +++ b/SRC/cheevx.f @@ -390,8 +390,10 @@ SUBROUTINE CHEEVX( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, W( 1 ) = REAL( A( 1, 1 ) ) END IF END IF - IF( WANTZ ) - $ Z( 1, 1 ) = CONE + IF( WANTZ ) THEN + Z( 1, 1 ) = ONE + IFAIL(1) = 0 + ENDIF RETURN END IF * diff --git a/SRC/chpevx.f b/SRC/chpevx.f index 766a04fda..4738eb05c 100644 --- a/SRC/chpevx.f +++ b/SRC/chpevx.f @@ -341,8 +341,10 @@ SUBROUTINE CHPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, W( 1 ) = REAL( AP( 1 ) ) END IF END IF - IF( WANTZ ) - $ Z( 1, 1 ) = CONE + IF( WANTZ ) THEN + Z( 1, 1 ) = CONE + IFAIL(1) = 0 + ENDIF RETURN END IF * diff --git a/SRC/chpgvx.f b/SRC/chpgvx.f index 6b2f57086..353d64d5c 100644 --- a/SRC/chpgvx.f +++ b/SRC/chpgvx.f @@ -355,6 +355,7 @@ SUBROUTINE CHPGVX( ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU, * * Quick return if possible * + M = 0 IF( N.EQ.0 ) $ RETURN * diff --git a/SRC/dgeesx.f b/SRC/dgeesx.f index 4d99b5ba4..8cc4e7bec 100644 --- a/SRC/dgeesx.f +++ b/SRC/dgeesx.f @@ -421,6 +421,8 @@ SUBROUTINE DGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, * IF( N.EQ.0 ) THEN SDIM = 0 + IF (WANTSE .OR. WANTSB) RCONDE = 1.0D0 + IF (WANTSV .OR. WANTSB) RCONDV = 0.0D0 RETURN END IF * diff --git a/SRC/dsbevx.f b/SRC/dsbevx.f index f9e15f524..a204fc504 100644 --- a/SRC/dsbevx.f +++ b/SRC/dsbevx.f @@ -373,8 +373,11 @@ SUBROUTINE DSBEVX( JOBZ, RANGE, UPLO, N, KD, AB, LDAB, Q, LDQ, END IF IF( M.EQ.1 ) THEN W( 1 ) = TMP1 - IF( WANTZ ) - $ Z( 1, 1 ) = ONE + IF( WANTZ ) THEN + Q( 1, 1 ) = ONE + Z( 1, 1 ) = ONE + IFAIL(1) = ZERO + ENDIF END IF RETURN END IF diff --git a/SRC/dspevx.f b/SRC/dspevx.f index 1dea63e71..8e32c27a9 100644 --- a/SRC/dspevx.f +++ b/SRC/dspevx.f @@ -332,8 +332,10 @@ SUBROUTINE DSPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, W( 1 ) = AP( 1 ) END IF END IF - IF( WANTZ ) - $ Z( 1, 1 ) = ONE + IF( WANTZ ) THEN + Z( 1, 1 ) = ONE + IFAIL(1) = ZERO + ENDIF RETURN END IF * diff --git a/SRC/dsyevx.f b/SRC/dsyevx.f index 1f9954850..c1f5aa3f5 100644 --- a/SRC/dsyevx.f +++ b/SRC/dsyevx.f @@ -378,8 +378,10 @@ SUBROUTINE DSYEVX( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, W( 1 ) = A( 1, 1 ) END IF END IF - IF( WANTZ ) - $ Z( 1, 1 ) = ONE + IF( WANTZ ) THEN + Z( 1, 1 ) = ONE + IFAIL(1) = ZERO + ENDIF RETURN END IF * diff --git a/SRC/sgeesx.f b/SRC/sgeesx.f index 0a760c83c..f0144cacc 100644 --- a/SRC/sgeesx.f +++ b/SRC/sgeesx.f @@ -422,6 +422,8 @@ SUBROUTINE SGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, * IF( N.EQ.0 ) THEN SDIM = 0 + IF (WANTSE .OR. WANTSB) RCONDE = 1.0E0 + IF (WANTSV .OR. WANTSB) RCONDV = 0.0E0 RETURN END IF * diff --git a/SRC/ssbevx.f b/SRC/ssbevx.f index 44028482b..d13383f82 100644 --- a/SRC/ssbevx.f +++ b/SRC/ssbevx.f @@ -373,8 +373,11 @@ SUBROUTINE SSBEVX( JOBZ, RANGE, UPLO, N, KD, AB, LDAB, Q, LDQ, END IF IF( M.EQ.1 ) THEN W( 1 ) = TMP1 - IF( WANTZ ) - $ Z( 1, 1 ) = ONE + IF( WANTZ ) THEN + Q( 1, 1 ) = ONE + Z( 1, 1 ) = ONE + IFAIL(1) = ZERO + ENDIF END IF RETURN END IF diff --git a/SRC/sspevx.f b/SRC/sspevx.f index 16a2b666b..4daeee8fa 100644 --- a/SRC/sspevx.f +++ b/SRC/sspevx.f @@ -332,8 +332,10 @@ SUBROUTINE SSPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, W( 1 ) = AP( 1 ) END IF END IF - IF( WANTZ ) - $ Z( 1, 1 ) = ONE + IF( WANTZ ) THEN + Z( 1, 1 ) = ONE + IFAIL(1) = ZERO + ENDIF RETURN END IF * diff --git a/SRC/ssyevx.f b/SRC/ssyevx.f index d898adcca..4deaa910d 100644 --- a/SRC/ssyevx.f +++ b/SRC/ssyevx.f @@ -379,8 +379,10 @@ SUBROUTINE SSYEVX( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, W( 1 ) = A( 1, 1 ) END IF END IF - IF( WANTZ ) - $ Z( 1, 1 ) = ONE + IF( WANTZ ) THEN + Z( 1, 1 ) = ONE + IFAIL(1) = ZERO + ENDIF RETURN END IF * diff --git a/SRC/zgeesx.f b/SRC/zgeesx.f index cd297bf51..54f0f4ca3 100644 --- a/SRC/zgeesx.f +++ b/SRC/zgeesx.f @@ -372,6 +372,8 @@ SUBROUTINE ZGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, * IF( N.EQ.0 ) THEN SDIM = 0 + IF (WANTSE .OR. WANTSB) RCONDE = 1.0D0 + IF (WANTSV .OR. WANTSB) RCONDV = 0.0D0 RETURN END IF * diff --git a/SRC/zhbevx.f b/SRC/zhbevx.f index c0b928184..944598462 100644 --- a/SRC/zhbevx.f +++ b/SRC/zhbevx.f @@ -382,8 +382,11 @@ SUBROUTINE ZHBEVX( JOBZ, RANGE, UPLO, N, KD, AB, LDAB, Q, LDQ, END IF IF( M.EQ.1 ) THEN W( 1 ) = DBLE( CTMP1 ) - IF( WANTZ ) - $ Z( 1, 1 ) = CONE + IF( WANTZ ) THEN + Q( 1, 1 ) = ONE + Z( 1, 1 ) = ONE + IFAIL(1) = 0 + ENDIF END IF RETURN END IF diff --git a/SRC/zheevx.f b/SRC/zheevx.f index f8696e4e5..3601254f6 100644 --- a/SRC/zheevx.f +++ b/SRC/zheevx.f @@ -389,8 +389,10 @@ SUBROUTINE ZHEEVX( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, W( 1 ) = DBLE( A( 1, 1 ) ) END IF END IF - IF( WANTZ ) - $ Z( 1, 1 ) = CONE + IF( WANTZ ) THEN + Z( 1, 1 ) = ONE + IFAIL(1) = 0 + ENDIF RETURN END IF * diff --git a/SRC/zhpevx.f b/SRC/zhpevx.f index 4b797f6b0..888cb8ad0 100644 --- a/SRC/zhpevx.f +++ b/SRC/zhpevx.f @@ -341,8 +341,10 @@ SUBROUTINE ZHPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, W( 1 ) = DBLE( AP( 1 ) ) END IF END IF - IF( WANTZ ) - $ Z( 1, 1 ) = CONE + IF( WANTZ ) THEN + Z( 1, 1 ) = CONE + IFAIL(1) = 0 + ENDIF RETURN END IF * diff --git a/SRC/zhpgvx.f b/SRC/zhpgvx.f index d3bbe9ad1..b61349767 100644 --- a/SRC/zhpgvx.f +++ b/SRC/zhpgvx.f @@ -355,6 +355,7 @@ SUBROUTINE ZHPGVX( ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU, * * Quick return if possible * + M = 0 IF( N.EQ.0 ) $ RETURN *