122 SUBROUTINE sorgtr( UPLO, N, A, LDA, TAU, WORK, LWORK, INFO )
130 INTEGER INFO, LDA, LWORK, N
133 REAL A( LDA, * ), ( * ), WORK( * )
140 parameter( zero = 0.0e+0, one = 1.0e+0 )
143 LOGICAL LQUERY, UPPER
144 INTEGER I, IINFO, J, LWKOPT, NB
149 EXTERNAL ilaenv, lsame
162 lquery = ( lwork.EQ.-1 )
163 upper = lsame( uplo,
'U' )
164 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
166 ELSE IF( n.LT.0 )
THEN
168 ELSE IF( lda.LT.
max( 1, n ) )
THEN
170 ELSE IF( lwork.LT.
max( 1, n-1 ) .AND. .NOT.lquery )
THEN
176 nb = ilaenv( 1,
'SORGQL',
' ', n-1, n-1, n-1, -1 )
178 nb = ilaenv( 1,
'SORGQR',
' ', n-1, n-1, n-1, -1 )
180 lwkopt =
max( 1, n-1 )*nb
185 CALL xerbla(
'SORGTR', -info )
187 ELSE IF( lquery )
THEN
208 a( i, j ) = a( i, j+1 )
219 CALL sorgql( n-1, n-1, n-1, a, lda, tau, work, lwork, iinfo )
232 a( i, j ) = a( i, j-1 )
243 CALL sorgqr( n-1, n-1, n-1, a( 2, 2 ), lda, tau, work,
subroutine sorgql(m, n, k, a, lda, tau, work, lwork, info)
SORGQL
subroutine sorgtr(uplo, n, a, lda, tau, work, lwork, info)
SORGTR
subroutine sorgqr(m, n, k, a, lda, tau, work, lwork, info)
SORGQR