173 SUBROUTINE sorgtsqr( M, N, MB, NB, A, LDA, T, LDT, WORK, LWORK,
182 INTEGER INFO, LDA, LDT, LWORK, M, N, MB, NB
185 REAL A( lda, * ), T( ldt, * ), WORK( * )
192 parameter( one = 1.0e+0, zero = 0.0e+0 )
196 INTEGER IINFO, LDC, LWORKOPT, LC, LW, NBLOCAL, J
202 INTRINSIC REAL, MAX, MIN
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 sorgtsqr(M, N, MB, NB, A, LDA, T, LDT, WORK, LWORK, INFO)
SORGTSQR
subroutine xerbla(SRNAME, INFO)
XERBLA
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 scopy(N, SX, INCX, SY, INCY)
SCOPY