120 SUBROUTINE sorgtr( UPLO, N, A, LDA, TAU, WORK, LWORK, INFO )
128 INTEGER INFO, LDA, LWORK, N
131 REAL A( LDA, * ), TAU( * ), WORK( * )
138 parameter( zero = 0.0e+0, one = 1.0e+0 )
141 LOGICAL LQUERY, UPPER
142 INTEGER I, IINFO, J, LWKOPT, NB
148 EXTERNAL ilaenv, lsame, sroundup_lwork
161 lquery = ( lwork.EQ.-1 )
162 upper = lsame( uplo,
'U' )
163 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
165 ELSE IF( n.LT.0 )
THEN
167 ELSE IF( lda.LT.max( 1, n ) )
THEN
169 ELSE IF( lwork.LT.max( 1, n-1 ) .AND. .NOT.lquery )
THEN
175 nb = ilaenv( 1,
'SORGQL',
' ', n-1, n-1, n-1, -1 )
177 nb = ilaenv( 1,
'SORGQR',
' ', n-1, n-1, n-1, -1 )
179 lwkopt = max( 1, n-1 )*nb
180 work( 1 ) = sroundup_lwork(lwkopt)
184 CALL xerbla(
'SORGTR', -info )
186 ELSE IF( lquery )
THEN
207 a( i, j ) = a( i, j+1 )
218 CALL sorgql( n-1, n-1, n-1, a, lda, tau, work, lwork,
232 a( i, j ) = a( i, j-1 )
243 CALL sorgqr( n-1, n-1, n-1, a( 2, 2 ), lda, tau, work,
247 work( 1 ) = sroundup_lwork(lwkopt)
subroutine sorgql(m, n, k, a, lda, tau, work, lwork, info)
SORGQL
subroutine sorgqr(m, n, k, a, lda, tau, work, lwork, info)
SORGQR
subroutine sorgtr(uplo, n, a, lda, tau, work, lwork, info)
SORGTR