181 SUBROUTINE zhbgv( JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W, Z,
182 $ LDZ, WORK, RWORK, INFO )
190 INTEGER INFO, KA, KB, LDAB, LDBB, LDZ, N
193 DOUBLE PRECISION RWORK( * ), W( * )
194 COMPLEX*16 AB( ldab, * ), BB( ldbb, * ), WORK( * ),
203 INTEGER IINFO, INDE, INDWRK
216 wantz = lsame( jobz,
'V' )
217 upper = lsame( uplo,
'U' )
220 IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN 222 ELSE IF( .NOT.( upper .OR. lsame( uplo,
'L' ) ) )
THEN 224 ELSE IF( n.LT.0 )
THEN 226 ELSE IF( ka.LT.0 )
THEN 228 ELSE IF( kb.LT.0 .OR. kb.GT.ka )
THEN 230 ELSE IF( ldab.LT.ka+1 )
THEN 232 ELSE IF( ldbb.LT.kb+1 )
THEN 234 ELSE IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN 238 CALL xerbla(
'ZHBGV', -info )
249 CALL zpbstf( uplo, n, kb, bb, ldbb, info )
259 CALL zhbgst( jobz, uplo, n, ka, kb, ab, ldab, bb, ldbb, z, ldz,
260 $ work, rwork( indwrk ), iinfo )
269 CALL zhbtrd( vect, uplo, n, ka, ab, ldab, w, rwork( inde ), z,
274 IF( .NOT.wantz )
THEN 275 CALL dsterf( n, w, rwork( inde ), info )
277 CALL zsteqr( jobz, n, w, rwork( inde ), z, ldz,
278 $ rwork( indwrk ), info )
subroutine zsteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
ZSTEQR
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zhbgv(JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W, Z, LDZ, WORK, RWORK, INFO)
ZHBGV
subroutine zhbtrd(VECT, UPLO, N, KD, AB, LDAB, D, E, Q, LDQ, WORK, INFO)
ZHBTRD
subroutine dsterf(N, D, E, INFO)
DSTERF
subroutine zpbstf(UPLO, N, KD, AB, LDAB, INFO)
ZPBSTF
subroutine zhbgst(VECT, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, X, LDX, WORK, RWORK, INFO)
ZHBGST