174 SUBROUTINE sorgtsqr( M, N, MB, NB, A, LDA, T, LDT, WORK, LWORK,
183 INTEGER INFO, LDA, LDT, LWORK, M, N, MB, NB
186 REAL A( LDA, * ), T( LDT, * ), WORK( * )
193 parameter( one = 1.0e+0, zero = 0.0e+0 )
197 INTEGER IINFO, LDC, LWORKOPT, LC, LW, NBLOCAL, J
201 EXTERNAL sroundup_lwork
217 ELSE IF( n.LT.0 .OR. m.LT.n )
THEN
219 ELSE IF( mb.LE.n )
THEN
221 ELSE IF( nb.LT.1 )
THEN
223 ELSE IF( lda.LT.max( 1, m ) )
THEN
225 ELSE IF( ldt.LT.max( 1, min( nb, n ) ) )
THEN
233 IF( lwork.LT.2 .AND. (.NOT.lquery) )
THEN
239 nblocal = min( nb, n )
251 IF( ( lwork.LT.max( 1, lworkopt ) ).AND.(.NOT.lquery) )
THEN
261 CALL xerbla(
'SORGTSQR', -info )
263 ELSE IF ( lquery )
THEN
264 work( 1 ) = sroundup_lwork( lworkopt )
270 IF( min( m, n ).EQ.0 )
THEN
271 work( 1 ) = sroundup_lwork( lworkopt )
286 CALL slaset(
'F', m, n, zero, one, work, ldc )
293 CALL slamtsqr(
'L',
'N', m, n, n, mb, nblocal, a, lda, t, ldt,
294 $ work, ldc, work( lc+1 ), lw, iinfo )
301 CALL scopy( m, work( (j-1)*ldc + 1 ), 1, a( 1, j ), 1 )
304 work( 1 ) = sroundup_lwork( lworkopt )
subroutine xerbla(srname, info)
subroutine scopy(n, sx, incx, sy, incy)
SCOPY
subroutine slamtsqr(side, trans, m, n, k, mb, nb, a, lda, t, ldt, c, ldc, work, lwork, info)
SLAMTSQR
subroutine slaset(uplo, m, n, alpha, beta, a, lda)
SLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values.
subroutine sorgtsqr(m, n, mb, nb, a, lda, t, ldt, work, lwork, info)
SORGTSQR