From a37f229a71799055bd348f6bc195304e3fff7c68 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sun, 26 Mar 2023 17:09:15 +0200 Subject: [PATCH] Replace the partially defined constant INDIBL with 1 --- SRC/chbgvx.f | 15 +++++++-------- SRC/chpevx.f | 15 +++++++-------- SRC/dsbgvx.f | 15 +++++++-------- SRC/dspevx.f | 15 +++++++-------- SRC/dstevx.f | 15 +++++++-------- SRC/ssbgvx.f | 15 +++++++-------- SRC/sspevx.f | 15 +++++++-------- SRC/sstevx.f | 15 +++++++-------- SRC/zhbgvx.f | 15 +++++++-------- SRC/zhpevx.f | 15 +++++++-------- 10 files changed, 70 insertions(+), 80 deletions(-) diff --git a/SRC/chbgvx.f b/SRC/chbgvx.f index 57cf51a551..6b37a4127a 100644 --- a/SRC/chbgvx.f +++ b/SRC/chbgvx.f @@ -327,7 +327,7 @@ SUBROUTINE CHBGVX( JOBZ, RANGE, UPLO, N, KA, KB, AB, LDAB, BB, * .. Local Scalars .. LOGICAL ALLEIG, INDEIG, TEST, UPPER, VALEIG, WANTZ CHARACTER ORDER, VECT - INTEGER I, IINFO, INDD, INDE, INDEE, INDIBL, INDISP, + INTEGER I, IINFO, INDD, INDE, INDEE, INDISP, $ INDIWK, INDRWK, INDWRK, ITMP1, J, JJ, NSPLIT REAL TMP1 * .. @@ -470,17 +470,16 @@ SUBROUTINE CHBGVX( JOBZ, RANGE, UPLO, N, KA, KB, AB, LDAB, BB, ELSE ORDER = 'E' END IF - INDIBL = 1 - INDISP = INDIBL + N + INDISP = 1 + N INDIWK = INDISP + N CALL SSTEBZ( RANGE, ORDER, N, VL, VU, IL, IU, ABSTOL, $ RWORK( INDD ), RWORK( INDE ), M, NSPLIT, W, - $ IWORK( INDIBL ), IWORK( INDISP ), RWORK( INDRWK ), + $ IWORK( 1 ), IWORK( INDISP ), RWORK( INDRWK ), $ IWORK( INDIWK ), INFO ) * IF( WANTZ ) THEN CALL CSTEIN( N, RWORK( INDD ), RWORK( INDE ), M, W, - $ IWORK( INDIBL ), IWORK( INDISP ), Z, LDZ, + $ IWORK( 1 ), IWORK( INDISP ), Z, LDZ, $ RWORK( INDRWK ), IWORK( INDIWK ), IFAIL, INFO ) * * Apply unitary matrix used in reduction to tridiagonal @@ -510,11 +509,11 @@ SUBROUTINE CHBGVX( JOBZ, RANGE, UPLO, N, KA, KB, AB, LDAB, BB, 40 CONTINUE * IF( I.NE.0 ) THEN - ITMP1 = IWORK( INDIBL+I-1 ) + ITMP1 = IWORK( 1 + I-1 ) W( I ) = W( J ) - IWORK( INDIBL+I-1 ) = IWORK( INDIBL+J-1 ) + IWORK( 1 + I-1 ) = IWORK( 1 + J-1 ) W( J ) = TMP1 - IWORK( INDIBL+J-1 ) = ITMP1 + IWORK( 1 + J-1 ) = ITMP1 CALL CSWAP( N, Z( 1, I ), 1, Z( 1, J ), 1 ) IF( INFO.NE.0 ) THEN ITMP1 = IFAIL( I ) diff --git a/SRC/chpevx.f b/SRC/chpevx.f index a5af973a73..1f602701a0 100644 --- a/SRC/chpevx.f +++ b/SRC/chpevx.f @@ -264,7 +264,7 @@ SUBROUTINE CHPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, * .. Local Scalars .. LOGICAL ALLEIG, INDEIG, TEST, VALEIG, WANTZ CHARACTER ORDER - INTEGER I, IINFO, IMAX, INDD, INDE, INDEE, INDIBL, + INTEGER I, IINFO, IMAX, INDD, INDE, INDEE, $ INDISP, INDIWK, INDRWK, INDTAU, INDWRK, ISCALE, $ ITMP1, J, JJ, NSPLIT REAL ABSTLL, ANRM, BIGNUM, EPS, RMAX, RMIN, SAFMIN, @@ -434,17 +434,16 @@ SUBROUTINE CHPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, ELSE ORDER = 'E' END IF - INDIBL = 1 - INDISP = INDIBL + N + INDISP = 1 + N INDIWK = INDISP + N CALL SSTEBZ( RANGE, ORDER, N, VLL, VUU, IL, IU, ABSTLL, $ RWORK( INDD ), RWORK( INDE ), M, NSPLIT, W, - $ IWORK( INDIBL ), IWORK( INDISP ), RWORK( INDRWK ), + $ IWORK( 1 ), IWORK( INDISP ), RWORK( INDRWK ), $ IWORK( INDIWK ), INFO ) * IF( WANTZ ) THEN CALL CSTEIN( N, RWORK( INDD ), RWORK( INDE ), M, W, - $ IWORK( INDIBL ), IWORK( INDISP ), Z, LDZ, + $ IWORK( 1 ), IWORK( INDISP ), Z, LDZ, $ RWORK( INDRWK ), IWORK( INDIWK ), IFAIL, INFO ) * * Apply unitary matrix used in reduction to tridiagonal @@ -482,11 +481,11 @@ SUBROUTINE CHPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, 30 CONTINUE * IF( I.NE.0 ) THEN - ITMP1 = IWORK( INDIBL+I-1 ) + ITMP1 = IWORK( 1 + I-1 ) W( I ) = W( J ) - IWORK( INDIBL+I-1 ) = IWORK( INDIBL+J-1 ) + IWORK( 1 + I-1 ) = IWORK( 1 + J-1 ) W( J ) = TMP1 - IWORK( INDIBL+J-1 ) = ITMP1 + IWORK( 1 + J-1 ) = ITMP1 CALL CSWAP( N, Z( 1, I ), 1, Z( 1, J ), 1 ) IF( INFO.NE.0 ) THEN ITMP1 = IFAIL( I ) diff --git a/SRC/dsbgvx.f b/SRC/dsbgvx.f index 55dbce2eef..20de179314 100644 --- a/SRC/dsbgvx.f +++ b/SRC/dsbgvx.f @@ -317,7 +317,7 @@ SUBROUTINE DSBGVX( JOBZ, RANGE, UPLO, N, KA, KB, AB, LDAB, BB, * .. Local Scalars .. LOGICAL ALLEIG, INDEIG, TEST, UPPER, VALEIG, WANTZ CHARACTER ORDER, VECT - INTEGER I, IINFO, INDD, INDE, INDEE, INDIBL, INDISP, + INTEGER I, IINFO, INDD, INDE, INDEE, INDISP, $ INDIWO, INDWRK, ITMP1, J, JJ, NSPLIT DOUBLE PRECISION TMP1 * .. @@ -457,17 +457,16 @@ SUBROUTINE DSBGVX( JOBZ, RANGE, UPLO, N, KA, KB, AB, LDAB, BB, ELSE ORDER = 'E' END IF - INDIBL = 1 - INDISP = INDIBL + N + INDISP = 1 + N INDIWO = INDISP + N CALL DSTEBZ( RANGE, ORDER, N, VL, VU, IL, IU, ABSTOL, $ WORK( INDD ), WORK( INDE ), M, NSPLIT, W, - $ IWORK( INDIBL ), IWORK( INDISP ), WORK( INDWRK ), + $ IWORK( 1 ), IWORK( INDISP ), WORK( INDWRK ), $ IWORK( INDIWO ), INFO ) * IF( WANTZ ) THEN CALL DSTEIN( N, WORK( INDD ), WORK( INDE ), M, W, - $ IWORK( INDIBL ), IWORK( INDISP ), Z, LDZ, + $ IWORK( 1 ), IWORK( INDISP ), Z, LDZ, $ WORK( INDWRK ), IWORK( INDIWO ), IFAIL, INFO ) * * Apply transformation matrix used in reduction to tridiagonal @@ -497,11 +496,11 @@ SUBROUTINE DSBGVX( JOBZ, RANGE, UPLO, N, KA, KB, AB, LDAB, BB, 40 CONTINUE * IF( I.NE.0 ) THEN - ITMP1 = IWORK( INDIBL+I-1 ) + ITMP1 = IWORK( 1 + I-1 ) W( I ) = W( J ) - IWORK( INDIBL+I-1 ) = IWORK( INDIBL+J-1 ) + IWORK( 1 + I-1 ) = IWORK( 1 + J-1 ) W( J ) = TMP1 - IWORK( INDIBL+J-1 ) = ITMP1 + IWORK( 1 + J-1 ) = ITMP1 CALL DSWAP( N, Z( 1, I ), 1, Z( 1, J ), 1 ) IF( INFO.NE.0 ) THEN ITMP1 = IFAIL( I ) diff --git a/SRC/dspevx.f b/SRC/dspevx.f index f56ce298f7..658cb1f527 100644 --- a/SRC/dspevx.f +++ b/SRC/dspevx.f @@ -255,7 +255,7 @@ SUBROUTINE DSPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, * .. Local Scalars .. LOGICAL ALLEIG, INDEIG, TEST, VALEIG, WANTZ CHARACTER ORDER - INTEGER I, IINFO, IMAX, INDD, INDE, INDEE, INDIBL, + INTEGER I, IINFO, IMAX, INDD, INDE, INDEE, $ INDISP, INDIWO, INDTAU, INDWRK, ISCALE, ITMP1, $ J, JJ, NSPLIT DOUBLE PRECISION ABSTLL, ANRM, BIGNUM, EPS, RMAX, RMIN, SAFMIN, @@ -424,17 +424,16 @@ SUBROUTINE DSPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, ELSE ORDER = 'E' END IF - INDIBL = 1 - INDISP = INDIBL + N + INDISP = 1 + N INDIWO = INDISP + N CALL DSTEBZ( RANGE, ORDER, N, VLL, VUU, IL, IU, ABSTLL, $ WORK( INDD ), WORK( INDE ), M, NSPLIT, W, - $ IWORK( INDIBL ), IWORK( INDISP ), WORK( INDWRK ), + $ IWORK( 1 ), IWORK( INDISP ), WORK( INDWRK ), $ IWORK( INDIWO ), INFO ) * IF( WANTZ ) THEN CALL DSTEIN( N, WORK( INDD ), WORK( INDE ), M, W, - $ IWORK( INDIBL ), IWORK( INDISP ), Z, LDZ, + $ IWORK( 1 ), IWORK( INDISP ), Z, LDZ, $ WORK( INDWRK ), IWORK( INDIWO ), IFAIL, INFO ) * * Apply orthogonal matrix used in reduction to tridiagonal @@ -471,11 +470,11 @@ SUBROUTINE DSPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, 30 CONTINUE * IF( I.NE.0 ) THEN - ITMP1 = IWORK( INDIBL+I-1 ) + ITMP1 = IWORK( 1 + I-1 ) W( I ) = W( J ) - IWORK( INDIBL+I-1 ) = IWORK( INDIBL+J-1 ) + IWORK( 1 + I-1 ) = IWORK( 1 + J-1 ) W( J ) = TMP1 - IWORK( INDIBL+J-1 ) = ITMP1 + IWORK( 1 + J-1 ) = ITMP1 CALL DSWAP( N, Z( 1, I ), 1, Z( 1, J ), 1 ) IF( INFO.NE.0 ) THEN ITMP1 = IFAIL( I ) diff --git a/SRC/dstevx.f b/SRC/dstevx.f index f93c1d3b75..e0cd07da05 100644 --- a/SRC/dstevx.f +++ b/SRC/dstevx.f @@ -248,7 +248,7 @@ SUBROUTINE DSTEVX( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, * .. Local Scalars .. LOGICAL ALLEIG, INDEIG, TEST, VALEIG, WANTZ CHARACTER ORDER - INTEGER I, IMAX, INDIBL, INDISP, INDIWO, INDWRK, + INTEGER I, IMAX, INDISP, INDIWO, INDWRK, $ ISCALE, ITMP1, J, JJ, NSPLIT DOUBLE PRECISION BIGNUM, EPS, RMAX, RMIN, SAFMIN, SIGMA, SMLNUM, $ TMP1, TNRM, VLL, VUU @@ -399,15 +399,14 @@ SUBROUTINE DSTEVX( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, ORDER = 'E' END IF INDWRK = 1 - INDIBL = 1 - INDISP = INDIBL + N + INDISP = 1 + N INDIWO = INDISP + N CALL DSTEBZ( RANGE, ORDER, N, VLL, VUU, IL, IU, ABSTOL, D, E, M, - $ NSPLIT, W, IWORK( INDIBL ), IWORK( INDISP ), + $ NSPLIT, W, IWORK( 1 ), IWORK( INDISP ), $ WORK( INDWRK ), IWORK( INDIWO ), INFO ) * IF( WANTZ ) THEN - CALL DSTEIN( N, D, E, M, W, IWORK( INDIBL ), IWORK( INDISP ), + CALL DSTEIN( N, D, E, M, W, IWORK( 1 ), IWORK( INDISP ), $ Z, LDZ, WORK( INDWRK ), IWORK( INDIWO ), IFAIL, $ INFO ) END IF @@ -439,11 +438,11 @@ SUBROUTINE DSTEVX( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, 30 CONTINUE * IF( I.NE.0 ) THEN - ITMP1 = IWORK( INDIBL+I-1 ) + ITMP1 = IWORK( 1 + I-1 ) W( I ) = W( J ) - IWORK( INDIBL+I-1 ) = IWORK( INDIBL+J-1 ) + IWORK( 1 + I-1 ) = IWORK( 1 + J-1 ) W( J ) = TMP1 - IWORK( INDIBL+J-1 ) = ITMP1 + IWORK( 1 + J-1 ) = ITMP1 CALL DSWAP( N, Z( 1, I ), 1, Z( 1, J ), 1 ) IF( INFO.NE.0 ) THEN ITMP1 = IFAIL( I ) diff --git a/SRC/ssbgvx.f b/SRC/ssbgvx.f index 64a67534e1..271f359641 100644 --- a/SRC/ssbgvx.f +++ b/SRC/ssbgvx.f @@ -317,7 +317,7 @@ SUBROUTINE SSBGVX( JOBZ, RANGE, UPLO, N, KA, KB, AB, LDAB, BB, * .. Local Scalars .. LOGICAL ALLEIG, INDEIG, TEST, UPPER, VALEIG, WANTZ CHARACTER ORDER, VECT - INTEGER I, IINFO, INDD, INDE, INDEE, INDIBL, INDISP, + INTEGER I, IINFO, INDD, INDE, INDEE, INDISP, $ INDIWO, INDWRK, ITMP1, J, JJ, NSPLIT REAL TMP1 * .. @@ -457,17 +457,16 @@ SUBROUTINE SSBGVX( JOBZ, RANGE, UPLO, N, KA, KB, AB, LDAB, BB, ELSE ORDER = 'E' END IF - INDIBL = 1 - INDISP = INDIBL + N + INDISP = 1 + N INDIWO = INDISP + N CALL SSTEBZ( RANGE, ORDER, N, VL, VU, IL, IU, ABSTOL, $ WORK( INDD ), WORK( INDE ), M, NSPLIT, W, - $ IWORK( INDIBL ), IWORK( INDISP ), WORK( INDWRK ), + $ IWORK( 1 ), IWORK( INDISP ), WORK( INDWRK ), $ IWORK( INDIWO ), INFO ) * IF( WANTZ ) THEN CALL SSTEIN( N, WORK( INDD ), WORK( INDE ), M, W, - $ IWORK( INDIBL ), IWORK( INDISP ), Z, LDZ, + $ IWORK( 1 ), IWORK( INDISP ), Z, LDZ, $ WORK( INDWRK ), IWORK( INDIWO ), IFAIL, INFO ) * * Apply transformation matrix used in reduction to tridiagonal @@ -497,11 +496,11 @@ SUBROUTINE SSBGVX( JOBZ, RANGE, UPLO, N, KA, KB, AB, LDAB, BB, 40 CONTINUE * IF( I.NE.0 ) THEN - ITMP1 = IWORK( INDIBL+I-1 ) + ITMP1 = IWORK( 1 + I-1 ) W( I ) = W( J ) - IWORK( INDIBL+I-1 ) = IWORK( INDIBL+J-1 ) + IWORK( 1 + I-1 ) = IWORK( 1 + J-1 ) W( J ) = TMP1 - IWORK( INDIBL+J-1 ) = ITMP1 + IWORK( 1 + J-1 ) = ITMP1 CALL SSWAP( N, Z( 1, I ), 1, Z( 1, J ), 1 ) IF( INFO.NE.0 ) THEN ITMP1 = IFAIL( I ) diff --git a/SRC/sspevx.f b/SRC/sspevx.f index e33712d58f..6d60ed7aca 100644 --- a/SRC/sspevx.f +++ b/SRC/sspevx.f @@ -255,7 +255,7 @@ SUBROUTINE SSPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, * .. Local Scalars .. LOGICAL ALLEIG, INDEIG, TEST, VALEIG, WANTZ CHARACTER ORDER - INTEGER I, IINFO, IMAX, INDD, INDE, INDEE, INDIBL, + INTEGER I, IINFO, IMAX, INDD, INDE, INDEE, $ INDISP, INDIWO, INDTAU, INDWRK, ISCALE, ITMP1, $ J, JJ, NSPLIT REAL ABSTLL, ANRM, BIGNUM, EPS, RMAX, RMIN, SAFMIN, @@ -424,17 +424,16 @@ SUBROUTINE SSPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, ELSE ORDER = 'E' END IF - INDIBL = 1 - INDISP = INDIBL + N + INDISP = 1 + N INDIWO = INDISP + N CALL SSTEBZ( RANGE, ORDER, N, VLL, VUU, IL, IU, ABSTLL, $ WORK( INDD ), WORK( INDE ), M, NSPLIT, W, - $ IWORK( INDIBL ), IWORK( INDISP ), WORK( INDWRK ), + $ IWORK( 1 ), IWORK( INDISP ), WORK( INDWRK ), $ IWORK( INDIWO ), INFO ) * IF( WANTZ ) THEN CALL SSTEIN( N, WORK( INDD ), WORK( INDE ), M, W, - $ IWORK( INDIBL ), IWORK( INDISP ), Z, LDZ, + $ IWORK( 1 ), IWORK( INDISP ), Z, LDZ, $ WORK( INDWRK ), IWORK( INDIWO ), IFAIL, INFO ) * * Apply orthogonal matrix used in reduction to tridiagonal @@ -471,11 +470,11 @@ SUBROUTINE SSPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, 30 CONTINUE * IF( I.NE.0 ) THEN - ITMP1 = IWORK( INDIBL+I-1 ) + ITMP1 = IWORK( 1 + I-1 ) W( I ) = W( J ) - IWORK( INDIBL+I-1 ) = IWORK( INDIBL+J-1 ) + IWORK( 1 + I-1 ) = IWORK( 1 + J-1 ) W( J ) = TMP1 - IWORK( INDIBL+J-1 ) = ITMP1 + IWORK( 1 + J-1 ) = ITMP1 CALL SSWAP( N, Z( 1, I ), 1, Z( 1, J ), 1 ) IF( INFO.NE.0 ) THEN ITMP1 = IFAIL( I ) diff --git a/SRC/sstevx.f b/SRC/sstevx.f index 570864e6e0..6d8c8e5cab 100644 --- a/SRC/sstevx.f +++ b/SRC/sstevx.f @@ -248,7 +248,7 @@ SUBROUTINE SSTEVX( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, * .. Local Scalars .. LOGICAL ALLEIG, INDEIG, TEST, VALEIG, WANTZ CHARACTER ORDER - INTEGER I, IMAX, INDIBL, INDISP, INDIWO, INDWRK, + INTEGER I, IMAX, INDISP, INDIWO, INDWRK, $ ISCALE, ITMP1, J, JJ, NSPLIT REAL BIGNUM, EPS, RMAX, RMIN, SAFMIN, SIGMA, SMLNUM, $ TMP1, TNRM, VLL, VUU @@ -399,15 +399,14 @@ SUBROUTINE SSTEVX( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, ORDER = 'E' END IF INDWRK = 1 - INDIBL = 1 - INDISP = INDIBL + N + INDISP = 1 + N INDIWO = INDISP + N CALL SSTEBZ( RANGE, ORDER, N, VLL, VUU, IL, IU, ABSTOL, D, E, M, - $ NSPLIT, W, IWORK( INDIBL ), IWORK( INDISP ), + $ NSPLIT, W, IWORK( 1 ), IWORK( INDISP ), $ WORK( INDWRK ), IWORK( INDIWO ), INFO ) * IF( WANTZ ) THEN - CALL SSTEIN( N, D, E, M, W, IWORK( INDIBL ), IWORK( INDISP ), + CALL SSTEIN( N, D, E, M, W, IWORK( 1 ), IWORK( INDISP ), $ Z, LDZ, WORK( INDWRK ), IWORK( INDIWO ), IFAIL, $ INFO ) END IF @@ -439,11 +438,11 @@ SUBROUTINE SSTEVX( JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, 30 CONTINUE * IF( I.NE.0 ) THEN - ITMP1 = IWORK( INDIBL+I-1 ) + ITMP1 = IWORK( 1 + I-1 ) W( I ) = W( J ) - IWORK( INDIBL+I-1 ) = IWORK( INDIBL+J-1 ) + IWORK( 1 + I-1 ) = IWORK( 1 + J-1 ) W( J ) = TMP1 - IWORK( INDIBL+J-1 ) = ITMP1 + IWORK( 1 + J-1 ) = ITMP1 CALL SSWAP( N, Z( 1, I ), 1, Z( 1, J ), 1 ) IF( INFO.NE.0 ) THEN ITMP1 = IFAIL( I ) diff --git a/SRC/zhbgvx.f b/SRC/zhbgvx.f index 79a3811b21..3832ed4141 100644 --- a/SRC/zhbgvx.f +++ b/SRC/zhbgvx.f @@ -327,7 +327,7 @@ SUBROUTINE ZHBGVX( JOBZ, RANGE, UPLO, N, KA, KB, AB, LDAB, BB, * .. Local Scalars .. LOGICAL ALLEIG, INDEIG, TEST, UPPER, VALEIG, WANTZ CHARACTER ORDER, VECT - INTEGER I, IINFO, INDD, INDE, INDEE, INDIBL, INDISP, + INTEGER I, IINFO, INDD, INDE, INDEE, INDISP, $ INDIWK, INDRWK, INDWRK, ITMP1, J, JJ, NSPLIT DOUBLE PRECISION TMP1 * .. @@ -470,17 +470,16 @@ SUBROUTINE ZHBGVX( JOBZ, RANGE, UPLO, N, KA, KB, AB, LDAB, BB, ELSE ORDER = 'E' END IF - INDIBL = 1 - INDISP = INDIBL + N + INDISP = 1 + N INDIWK = INDISP + N CALL DSTEBZ( RANGE, ORDER, N, VL, VU, IL, IU, ABSTOL, $ RWORK( INDD ), RWORK( INDE ), M, NSPLIT, W, - $ IWORK( INDIBL ), IWORK( INDISP ), RWORK( INDRWK ), + $ IWORK( 1 ), IWORK( INDISP ), RWORK( INDRWK ), $ IWORK( INDIWK ), INFO ) * IF( WANTZ ) THEN CALL ZSTEIN( N, RWORK( INDD ), RWORK( INDE ), M, W, - $ IWORK( INDIBL ), IWORK( INDISP ), Z, LDZ, + $ IWORK( 1 ), IWORK( INDISP ), Z, LDZ, $ RWORK( INDRWK ), IWORK( INDIWK ), IFAIL, INFO ) * * Apply unitary matrix used in reduction to tridiagonal @@ -510,11 +509,11 @@ SUBROUTINE ZHBGVX( JOBZ, RANGE, UPLO, N, KA, KB, AB, LDAB, BB, 40 CONTINUE * IF( I.NE.0 ) THEN - ITMP1 = IWORK( INDIBL+I-1 ) + ITMP1 = IWORK( 1 + I-1 ) W( I ) = W( J ) - IWORK( INDIBL+I-1 ) = IWORK( INDIBL+J-1 ) + IWORK( 1 + I-1 ) = IWORK( 1 + J-1 ) W( J ) = TMP1 - IWORK( INDIBL+J-1 ) = ITMP1 + IWORK( 1 + J-1 ) = ITMP1 CALL ZSWAP( N, Z( 1, I ), 1, Z( 1, J ), 1 ) IF( INFO.NE.0 ) THEN ITMP1 = IFAIL( I ) diff --git a/SRC/zhpevx.f b/SRC/zhpevx.f index f22e84bd70..0fc80c51a4 100644 --- a/SRC/zhpevx.f +++ b/SRC/zhpevx.f @@ -264,7 +264,7 @@ SUBROUTINE ZHPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, * .. Local Scalars .. LOGICAL ALLEIG, INDEIG, TEST, VALEIG, WANTZ CHARACTER ORDER - INTEGER I, IINFO, IMAX, INDD, INDE, INDEE, INDIBL, + INTEGER I, IINFO, IMAX, INDD, INDE, INDEE, $ INDISP, INDIWK, INDRWK, INDTAU, INDWRK, ISCALE, $ ITMP1, J, JJ, NSPLIT DOUBLE PRECISION ABSTLL, ANRM, BIGNUM, EPS, RMAX, RMIN, SAFMIN, @@ -434,17 +434,16 @@ SUBROUTINE ZHPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, ELSE ORDER = 'E' END IF - INDIBL = 1 - INDISP = INDIBL + N + INDISP = 1 + N INDIWK = INDISP + N CALL DSTEBZ( RANGE, ORDER, N, VLL, VUU, IL, IU, ABSTLL, $ RWORK( INDD ), RWORK( INDE ), M, NSPLIT, W, - $ IWORK( INDIBL ), IWORK( INDISP ), RWORK( INDRWK ), + $ IWORK( 1 ), IWORK( INDISP ), RWORK( INDRWK ), $ IWORK( INDIWK ), INFO ) * IF( WANTZ ) THEN CALL ZSTEIN( N, RWORK( INDD ), RWORK( INDE ), M, W, - $ IWORK( INDIBL ), IWORK( INDISP ), Z, LDZ, + $ IWORK( 1 ), IWORK( INDISP ), Z, LDZ, $ RWORK( INDRWK ), IWORK( INDIWK ), IFAIL, INFO ) * * Apply unitary matrix used in reduction to tridiagonal @@ -482,11 +481,11 @@ SUBROUTINE ZHPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, 30 CONTINUE * IF( I.NE.0 ) THEN - ITMP1 = IWORK( INDIBL+I-1 ) + ITMP1 = IWORK( 1 + I-1 ) W( I ) = W( J ) - IWORK( INDIBL+I-1 ) = IWORK( INDIBL+J-1 ) + IWORK( 1 + I-1 ) = IWORK( 1 + J-1 ) W( J ) = TMP1 - IWORK( INDIBL+J-1 ) = ITMP1 + IWORK( 1 + J-1 ) = ITMP1 CALL ZSWAP( N, Z( 1, I ), 1, Z( 1, J ), 1 ) IF( INFO.NE.0 ) THEN ITMP1 = IFAIL( I )