137      SUBROUTINE clatrz( M, N, L, A, LDA, TAU, WORK )
 
  147      COMPLEX            A( LDA, * ), TAU( * ), WORK( * )
 
  154      parameter( zero = ( 0.0e+0, 0.0e+0 ) )
 
  172      ELSE IF( m.EQ.n ) 
THEN 
  184         CALL clacgv( l, a( i, n-l+1 ), lda )
 
  185         alpha = conjg( a( i, i ) )
 
  186         CALL clarfg( l+1, alpha, a( i, n-l+1 ), lda, tau( i ) )
 
  187         tau( i ) = conjg( tau( i ) )
 
  191         CALL clarz( 
'Right', i-1, n-i+1, l, a( i, n-l+1 ), lda,
 
  192     $               conjg( tau( i ) ), a( 1, i ), lda, work )
 
  193         a( i, i ) = conjg( alpha )
 
 
subroutine clarfg(n, alpha, x, incx, tau)
CLARFG generates an elementary reflector (Householder matrix).
 
subroutine clarz(side, m, n, l, v, incv, tau, c, ldc, work)
CLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix.
 
subroutine clatrz(m, n, l, a, lda, tau, work)
CLATRZ factors an upper trapezoidal matrix by means of unitary transformations.