174 SUBROUTINE zunmhr( SIDE, TRANS, M, N, ILO, IHI, A, LDA, TAU, C,
175 $ LDC, WORK, LWORK, INFO )
182 CHARACTER SIDE, TRANS
183 INTEGER IHI, ILO, INFO, LDA, LDC, LWORK, M, N
186 COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * )
193 INTEGER I1, I2, IINFO, LWKOPT, MI, NB, NH, NI, NQ, NW
198 EXTERNAL lsame, ilaenv
212 left = lsame( side,
'L' )
213 lquery = ( lwork.EQ.-1 )
224 IF( .NOT.left .AND. .NOT.lsame( side,
'R' ) )
THEN
226 ELSE IF( .NOT.lsame( trans,
'N' ) .AND.
227 $ .NOT.lsame( trans,
'C' ) )
230 ELSE IF( m.LT.0 )
THEN
232 ELSE IF( n.LT.0 )
THEN
234 ELSE IF( ilo.LT.1 .OR. ilo.GT.max( 1, nq ) )
THEN
236 ELSE IF( ihi.LT.min( ilo, nq ) .OR. ihi.GT.nq )
THEN
238 ELSE IF( lda.LT.max( 1, nq ) )
THEN
240 ELSE IF( ldc.LT.max( 1, m ) )
THEN
242 ELSE IF( lwork.LT.nw .AND. .NOT.lquery )
THEN
248 nb = ilaenv( 1,
'ZUNMQR', side // trans, nh, n, nh, -1 )
250 nb = ilaenv( 1,
'ZUNMQR', side // trans, m, nh, nh, -1 )
257 CALL xerbla(
'ZUNMHR', -info )
259 ELSE IF( lquery )
THEN
265 IF( m.EQ.0 .OR. n.EQ.0 .OR. nh.EQ.0 )
THEN
282 CALL zunmqr( side, trans, mi, ni, nh, a( ilo+1, ilo ), lda,
283 $ tau( ilo ), c( i1, i2 ), ldc, work, lwork, iinfo )
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