173 SUBROUTINE sorgtsqr( M, N, MB, NB, A, LDA, T, LDT, WORK, LWORK,
182 INTEGER INFO, , LDT, LWORK, M, N, MB, NB
185 REAL A( LDA, * ), T( LDT, * ), ( * )
192 parameter( one = 1.0e+0, zero = 0.0e+0 )
196 INTEGER IINFO, LDC, LWORKOPT, LC, LW, NBLOCAL, J
212 ELSE IF( n.LT.0 .OR. m.LT.n )
THEN
214 ELSE IF( mb.LE.n )
THEN
216 ELSE IF( nb.LT.1 )
THEN
218 ELSE IF( lda.LT.
max( 1, m ) )
THEN
220 ELSE IF( ldt.LT.
max( 1,
min( nb, n ) ) )
THEN
228 IF( lwork.LT.2 .AND. (.NOT.lquery) )
THEN
234 nblocal =
min( nb, n )
246 IF( ( lwork.LT.
max( 1, lworkopt ) ).AND.(.NOT.lquery) )
THEN
256 CALL xerbla(
'SORGTSQR', -info )
258 ELSE IF ( lquery )
THEN
259 work( 1 ) = real( lworkopt )
265 IF(
min( m, n ).EQ.0 )
THEN
266 work( 1 ) = real( lworkopt )
281 CALL slaset( 'f
', M, N, ZERO, ONE, WORK, LDC )
288 CALL SLAMTSQR( 'l
', 'n
', M, N, N, MB, NBLOCAL, A, LDA, T, LDT,
289 $ WORK, LDC, WORK( LC+1 ), LW, IINFO )
296 CALL SCOPY( M, WORK( (J-1)*LDC + 1 ), 1, A( 1, J ), 1 )
299 WORK( 1 ) = REAL( LWORKOPT )
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 xerbla(srname, info)
XERBLA
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 sorgtsqr(m, n, mb, nb, a, lda, t, ldt, work, lwork, info)
SORGTSQR