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 xerbla(srname, info)
subroutine zhbgst(vect, uplo, n, ka, kb, ab, ldab, bb, ldbb, x, ldx, work, rwork, info)
ZHBGST
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 zpbstf(uplo, n, kd, ab, ldab, info)
ZPBSTF
subroutine zsteqr(compz, n, d, e, z, ldz, work, info)
ZSTEQR
subroutine dsterf(n, d, e, info)
DSTERF