121      SUBROUTINE slarf( SIDE, M, N, V, INCV, TAU, C, LDC, WORK )
 
  129      INTEGER            INCV, LDC, M, N
 
  133      REAL               C( LDC, * ), V( * ), WORK( * )
 
  140      parameter( one = 1.0e+0, zero = 0.0e+0 )
 
  144      INTEGER            I, LASTV, LASTC
 
  151      INTEGER            ILASLR, ILASLC
 
  152      EXTERNAL           lsame, ilaslr, ilaslc
 
  156      applyleft = lsame( side, 
'L' )
 
  159      IF( tau.NE.zero ) 
THEN 
  168            i = 1 + (lastv-1) * incv
 
  173         DO WHILE( lastv.GT.0 .AND. v( i ).EQ.zero )
 
  179            lastc = ilaslc(lastv, n, c, ldc)
 
  182            lastc = ilaslr(m, lastv, c, ldc)
 
  191         IF( lastv.GT.0 ) 
THEN 
  195            CALL sgemv( 
'Transpose', lastv, lastc, one, c, ldc, v,
 
  201            CALL sger( lastv, lastc, -tau, v, incv, work, 1, c, ldc )
 
  207         IF( lastv.GT.0 ) 
THEN 
  211            CALL sgemv( 
'No transpose', lastc, lastv, one, c, ldc,
 
  212     $           v, incv, zero, work, 1 )
 
  216            CALL sger( lastc, lastv, -tau, work, 1, v, incv, c, ldc )
 
 
subroutine sgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
SGEMV
subroutine sger(m, n, alpha, x, incx, y, incy, a, lda)
SGER
subroutine slarf(side, m, n, v, incv, tau, c, ldc, work)
SLARF applies an elementary reflector to a general rectangular matrix.