146 SUBROUTINE dlarz( SIDE, M, N, L, V, INCV, TAU, C, LDC, WORK )
155 INTEGER incv, l, ldc, m, n
159 DOUBLE PRECISION c( ldc, * ), v( * ), work( * )
165 DOUBLE PRECISION one, zero
166 parameter( one = 1.0d+0, zero = 0.0d+0 )
177 IF(
lsame( side,
'L' ) )
THEN
181 IF( tau.NE.zero )
THEN
185 CALL
dcopy( n, c, ldc, work, 1 )
189 CALL
dgemv(
'Transpose', l, n, one, c( m-l+1, 1 ), ldc, v,
190 $ incv, one, work, 1 )
194 CALL
daxpy( n, -tau, work, 1, c, ldc )
199 CALL
dger( l, n, -tau, v, incv, work, 1, c( m-l+1, 1 ),
207 IF( tau.NE.zero )
THEN
211 CALL
dcopy( m, c, 1, work, 1 )
215 CALL
dgemv(
'No transpose', m, l, one, c( 1, n-l+1 ), ldc,
216 $ v, incv, one, work, 1 )
220 CALL
daxpy( m, -tau, work, 1, c, 1 )
225 CALL
dger( m, l, -tau, work, 1, v, incv, c( 1, n-l+1 ),