176 SUBROUTINE zunmhr( SIDE, TRANS, M, N, ILO, IHI, A, LDA, TAU, C,
177 $ LDC, WORK, LWORK, INFO )
184 CHARACTER SIDE, TRANS
185 INTEGER IHI, ILO, INFO, LDA, LDC, LWORK, M, N
188 COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * )
195 INTEGER I1, I2, IINFO, LWKOPT, MI, NB, NH, NI, NQ, NW
200 EXTERNAL lsame, ilaenv
214 left = lsame( side,
'L' )
215 lquery = ( lwork.EQ.-1 )
226 IF( .NOT.left .AND. .NOT.lsame( side,
'R' ) )
THEN
228 ELSE IF( .NOT.lsame( trans,
'N' ) .AND. .NOT.lsame( trans,
'C' ) )
231 ELSE IF( m.LT.0 )
THEN
233 ELSE IF( n.LT.0 )
THEN
235 ELSE IF( ilo.LT.1 .OR. ilo.GT.max( 1, nq ) )
THEN
237 ELSE IF( ihi.LT.min( ilo, nq ) .OR. ihi.GT.nq )
THEN
239 ELSE IF( lda.LT.max( 1, nq ) )
THEN
241 ELSE IF( ldc.LT.max( 1, m ) )
THEN
243 ELSE IF( lwork.LT.nw .AND. .NOT.lquery )
THEN
249 nb = ilaenv( 1,
'ZUNMQR', side // trans, nh, n, nh, -1 )
251 nb = ilaenv( 1,
'ZUNMQR', side // trans, m, nh, nh, -1 )
258 CALL xerbla(
'ZUNMHR', -info )
260 ELSE IF( lquery )
THEN
266 IF( m.EQ.0 .OR. n.EQ.0 .OR. nh.EQ.0 )
THEN
283 CALL zunmqr( side, trans, mi, ni, nh, a( ilo+1, ilo ), lda,
284 $ tau( ilo ), c( i1, i2 ), ldc, work, lwork, iinfo )
subroutine xerbla(srname, info)
subroutine zunmhr(side, trans, m, n, ilo, ihi, a, lda, tau, c, ldc, work, lwork, info)
ZUNMHR
subroutine zunmqr(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info)
ZUNMQR