189 SUBROUTINE dtpqrt( M, N, L, NB, A, LDA, B, LDB, T, LDT, WORK,
198 INTEGER info, lda, ldb, ldt, n, m, l, nb
201 DOUBLE PRECISION a( lda, * ), b( ldb, * ), t( ldt, * ), work( * )
208 INTEGER i, ib, lb, mb, iinfo
220 ELSE IF( n.LT.0 )
THEN
222 ELSE IF( l.LT.0 .OR. l.GT.min(m,n) )
THEN
224 ELSE IF( nb.LT.1 .OR. nb.GT.n )
THEN
226 ELSE IF( lda.LT.max( 1, n ) )
THEN
228 ELSE IF( ldb.LT.max( 1, m ) )
THEN
230 ELSE IF( ldt.LT.nb )
THEN
234 CALL
xerbla(
'DTPQRT', -info )
240 IF( m.EQ.0 .OR. n.EQ.0 ) return
246 ib = min( n-i+1, nb )
247 mb = min( m-l+i+ib-1, m )
254 CALL
dtpqrt2( mb, ib, lb, a(i,i), lda, b( 1, i ), ldb,
255 $ t(1, i ), ldt, iinfo )
260 CALL
dtprfb(
'L',
'T',
'F',
'C', mb, n-i-ib+1, ib, lb,
261 $ b( 1, i ), ldb, t( 1, i ), ldt,
262 $ a( i, i+ib ), lda, b( 1, i+ib ), ldb,