146      SUBROUTINE zupmtr( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC,
 
  155      CHARACTER          SIDE, TRANS, UPLO
 
  156      INTEGER            INFO, LDC, M, N
 
  159      COMPLEX*16         AP( * ), C( LDC, * ), TAU( * ), WORK( * )
 
  166      PARAMETER          ( ONE = ( 1.0d+0, 0.0d+0 ) )
 
  169      LOGICAL            FORWRD, LEFT, NOTRAN, UPPER
 
  170      INTEGER            I, I1, I2, I3, IC, II, JC, MI, NI, NQ
 
  181      INTRINSIC          dconjg, max
 
  188      left = lsame( side, 
'L' )
 
  189      notran = lsame( trans, 
'N' )
 
  190      upper = lsame( uplo, 
'U' )
 
  199      IF( .NOT.left .AND. .NOT.lsame( side, 
'R' ) ) 
THEN 
  201      ELSE IF( .NOT.upper .AND. .NOT.lsame( uplo, 
'L' ) ) 
THEN 
  203      ELSE IF( .NOT.notran .AND. .NOT.lsame( trans, 
'C' ) ) 
THEN 
  205      ELSE IF( m.LT.0 ) 
THEN 
  207      ELSE IF( n.LT.0 ) 
THEN 
  209      ELSE IF( ldc.LT.max( 1, m ) ) 
THEN 
  213         CALL xerbla( 
'ZUPMTR', -info )
 
  219      IF( m.EQ.0 .OR. n.EQ.0 )
 
  226         forwrd = ( left .AND. notran ) .OR.
 
  227     $            ( .NOT.left .AND. .NOT.notran )
 
  238            ii = nq*( nq+1 ) / 2 - 1
 
  265               taui = dconjg( tau( i ) )
 
  267            CALL zlarf1l( side, mi, ni, ap( ii-i+1 ), 1, taui, c,
 
  280         forwrd = ( left .AND. .NOT.notran ) .OR.
 
  281     $            ( .NOT.left .AND. notran )
 
  292            ii = nq*( nq+1 ) / 2 - 1
 
  323               taui = dconjg( tau( i ) )
 
  325            CALL zlarf1f( side, mi, ni, ap( ii ), 1, taui, c( ic,
 
 
subroutine zlarf1f(side, m, n, v, incv, tau, c, ldc, work)
ZLARF1F applies an elementary reflector to a general rectangular
 
subroutine zupmtr(side, uplo, trans, m, n, ap, tau, c, ldc, work, info)
ZUPMTR
 
subroutine zlarf1l(side, m, n, v, incv, tau, c, ldc, work)
ZLARF1L applies an elementary reflector to a general rectangular