125      SUBROUTINE clarf( SIDE, M, N, V, INCV, TAU, C, LDC, WORK )
 
  133      INTEGER            INCV, LDC, M, N
 
  137      COMPLEX            C( LDC, * ), V( * ), WORK( * )
 
  144      parameter( one = ( 1.0e+0, 0.0e+0 ),
 
  145     $                   zero = ( 0.0e+0, 0.0e+0 ) )
 
  149      INTEGER            I, LASTV, LASTC
 
  156      INTEGER            ILACLR, ILACLC
 
  157      EXTERNAL           lsame, ilaclr, ilaclc
 
  161      applyleft = lsame( side, 
'L' )
 
  164      IF( tau.NE.zero ) 
THEN 
  173            i = 1 + (lastv-1) * incv
 
  178         DO WHILE( lastv.GT.0 .AND. v( i ).EQ.zero )
 
  184            lastc = ilaclc(lastv, n, c, ldc)
 
  187            lastc = ilaclr(m, lastv, c, ldc)
 
  196         IF( lastv.GT.0 ) 
THEN 
  200            CALL cgemv( 
'Conjugate transpose', lastv, lastc, one,
 
  201     $           c, ldc, v, incv, zero, work, 1 )
 
  205            CALL cgerc( lastv, lastc, -tau, v, incv, work, 1, c,
 
  212         IF( lastv.GT.0 ) 
THEN 
  216            CALL cgemv( 
'No transpose', lastc, lastv, one, c, ldc,
 
  217     $           v, incv, zero, work, 1 )
 
  221            CALL cgerc( lastc, lastv, -tau, work, 1, v, incv, c,
 
 
subroutine cgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
CGEMV
subroutine cgerc(m, n, alpha, x, incx, y, incy, a, lda)
CGERC
subroutine clarf(side, m, n, v, incv, tau, c, ldc, work)
CLARF applies an elementary reflector to a general rectangular matrix.