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