175      SUBROUTINE cunmhr( SIDE, TRANS, M, N, ILO, IHI, A, LDA, TAU, C,
 
  176     $                   LDC, WORK, LWORK, INFO )
 
  183      CHARACTER          SIDE, TRANS
 
  184      INTEGER            IHI, ILO, INFO, LDA, LDC, LWORK, M, N
 
  187      COMPLEX            A( LDA, * ), C( LDC, * ), TAU( * ),
 
  195      INTEGER            I1, I2, IINFO, LWKOPT, MI, NB, NH, NI, NQ, NW
 
  201      EXTERNAL           ilaenv, lsame, sroundup_lwork
 
  215      left = lsame( side, 
'L' )
 
  216      lquery = ( lwork.EQ.-1 )
 
  227      IF( .NOT.left .AND. .NOT.lsame( side, 
'R' ) ) 
THEN 
  229      ELSE IF( .NOT.lsame( trans, 
'N' ) .AND.
 
  230     $         .NOT.lsame( trans, 
'C' ) )
 
  233      ELSE IF( m.LT.0 ) 
THEN 
  235      ELSE IF( n.LT.0 ) 
THEN 
  237      ELSE IF( ilo.LT.1 .OR. ilo.GT.max( 1, nq ) ) 
THEN 
  239      ELSE IF( ihi.LT.min( ilo, nq ) .OR. ihi.GT.nq ) 
THEN 
  241      ELSE IF( lda.LT.max( 1, nq ) ) 
THEN 
  243      ELSE IF( ldc.LT.max( 1, m ) ) 
THEN 
  245      ELSE IF( lwork.LT.nw .AND. .NOT.lquery ) 
THEN 
  251            nb = ilaenv( 1, 
'CUNMQR', side // trans, nh, n, nh, -1 )
 
  253            nb = ilaenv( 1, 
'CUNMQR', side // trans, m, nh, nh, -1 )
 
  256         work( 1 ) = sroundup_lwork(lwkopt)
 
  260         CALL xerbla( 
'CUNMHR', -info )
 
  262      ELSE IF( lquery ) 
THEN 
  268      IF( m.EQ.0 .OR. n.EQ.0 .OR. nh.EQ.0 ) 
THEN 
  285      CALL cunmqr( side, trans, mi, ni, nh, a( ilo+1, ilo ), lda,
 
  286     $             tau( ilo ), c( i1, i2 ), ldc, work, lwork, iinfo )
 
  288      work( 1 ) = sroundup_lwork(lwkopt)
 
 
subroutine cunmhr(side, trans, m, n, ilo, ihi, a, lda, tau, c, ldc, work, lwork, info)
CUNMHR
subroutine cunmqr(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info)
CUNMQR