122 SUBROUTINE zungtr( UPLO, N, A, LDA, TAU, WORK, LWORK, INFO )
130 INTEGER INFO, LDA, LWORK, N
133 COMPLEX*16 A( lda, * ), TAU( * ), WORK( * )
140 parameter( zero = ( 0.0d+0, 0.0d+0 ),
141 $ one = ( 1.0d+0, 0.0d+0 ) )
144 LOGICAL LQUERY, UPPER
145 INTEGER I, IINFO, J, LWKOPT, NB
150 EXTERNAL lsame, ilaenv
163 lquery = ( lwork.EQ.-1 )
164 upper = lsame( uplo,
'U' )
165 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN 167 ELSE IF( n.LT.0 )
THEN 169 ELSE IF( lda.LT.max( 1, n ) )
THEN 171 ELSE IF( lwork.LT.max( 1, n-1 ) .AND. .NOT.lquery )
THEN 177 nb = ilaenv( 1,
'ZUNGQL',
' ', n-1, n-1, n-1, -1 )
179 nb = ilaenv( 1,
'ZUNGQR',
' ', n-1, n-1, n-1, -1 )
181 lwkopt = max( 1, n-1 )*nb
186 CALL xerbla(
'ZUNGTR', -info )
188 ELSE IF( lquery )
THEN 209 a( i, j ) = a( i, j+1 )
220 CALL zungql( n-1, n-1, n-1, a, lda, tau, work, lwork, iinfo )
233 a( i, j ) = a( i, j-1 )
244 CALL zungqr( n-1, n-1, n-1, a( 2, 2 ), lda, tau, work,
subroutine zungql(M, N, K, A, LDA, TAU, WORK, LWORK, INFO)
ZUNGQL
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zungtr(UPLO, N, A, LDA, TAU, WORK, LWORK, INFO)
ZUNGTR
subroutine zungqr(M, N, K, A, LDA, TAU, WORK, LWORK, INFO)
ZUNGQR