146 SUBROUTINE dtbtrs( UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, B,
155 CHARACTER diag, trans, uplo
156 INTEGER info, kd, ldab, ldb, n, nrhs
159 DOUBLE PRECISION ab( ldab, * ), b( ldb, * )
165 DOUBLE PRECISION zero
166 parameter( zero = 0.0d+0 )
169 LOGICAL nounit, upper
187 nounit =
lsame( diag,
'N' )
188 upper =
lsame( uplo,
'U' )
189 IF( .NOT.upper .AND. .NOT.
lsame( uplo,
'L' ) )
THEN
191 ELSE IF( .NOT.
lsame( trans,
'N' ) .AND. .NOT.
192 $
lsame( trans,
'T' ) .AND. .NOT.
lsame( trans,
'C' ) )
THEN
194 ELSE IF( .NOT.nounit .AND. .NOT.
lsame( diag,
'U' ) )
THEN
196 ELSE IF( n.LT.0 )
THEN
198 ELSE IF( kd.LT.0 )
THEN
200 ELSE IF( nrhs.LT.0 )
THEN
202 ELSE IF( ldab.LT.kd+1 )
THEN
204 ELSE IF( ldb.LT.max( 1, n ) )
THEN
208 CALL
xerbla(
'DTBTRS', -info )
222 IF( ab( kd+1, info ).EQ.zero )
227 IF( ab( 1, info ).EQ.zero )
237 CALL
dtbsv( uplo, trans, diag, n, kd, ab, ldab, b( 1, j ), 1 )