122 SUBROUTINE cungtr( UPLO, N, A, LDA, TAU, WORK, LWORK, INFO )
130 INTEGER INFO, LDA, LWORK, N
133 COMPLEX A( LDA, * ), TAU( * ), WORK( * )
140 parameter( zero = ( 0.0e+0, 0.0e+0 ),
141 $ one = ( 1.0e+0, 0.0e+0 ) )
144 LOGICAL LQUERY, UPPER
145 INTEGER I, IINFO, J, LWKOPT, NB
150 EXTERNAL ilaenv, lsame
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,
'CUNGQL',
' ', n-1, n-1, n-1, -1 )
179 nb = ilaenv( 1,
'CUNGQR',
' ', n-1, n-1, n-1, -1 )
181 lwkopt = max( 1, n-1 )*nb
186 CALL xerbla(
'CUNGTR', -info )
188 ELSE IF( lquery )
THEN
209 a( i, j ) = a( i, j+1 )
220 CALL cungql( n-1, n-1, n-1, a, lda, tau, work, lwork, iinfo )
233 a( i, j ) = a( i, j-1 )
244 CALL cungqr( n-1, n-1, n-1, a( 2, 2 ), lda, tau, work,
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine cungql(M, N, K, A, LDA, TAU, WORK, LWORK, INFO)
CUNGQL
subroutine cungtr(UPLO, N, A, LDA, TAU, WORK, LWORK, INFO)
CUNGTR
subroutine cungqr(M, N, K, A, LDA, TAU, WORK, LWORK, INFO)
CUNGQR