179      SUBROUTINE dlarzb( SIDE, TRANS, DIRECT, STOREV, M, N, K, L, V,
 
  180     $                   LDV, T, LDT, C, LDC, WORK, LDWORK )
 
  187      CHARACTER          DIRECT, SIDE, STOREV, TRANS
 
  188      INTEGER            K, L, LDC, LDT, LDV, LDWORK, M, N
 
  191      DOUBLE PRECISION   C( LDC, * ), T( LDT, * ), V( LDV, * ),
 
  199      parameter( one = 1.0d+0 )
 
  216      IF( m.LE.0 .OR. n.LE.0 )
 
  222      IF( .NOT.lsame( direct, 
'B' ) ) 
THEN 
  224      ELSE IF( .NOT.lsame( storev, 
'R' ) ) 
THEN 
  228         CALL xerbla( 
'DLARZB', -info )
 
  232      IF( lsame( trans, 
'N' ) ) 
THEN 
  238      IF( lsame( side, 
'L' ) ) 
THEN 
  245            CALL dcopy( n, c( j, 1 ), ldc, work( 1, j ), 1 )
 
  252     $      
CALL dgemm( 
'Transpose', 
'Transpose', n, k, l, one,
 
  253     $                  c( m-l+1, 1 ), ldc, v, ldv, one, work, ldwork )
 
  257         CALL dtrmm( 
'Right', 
'Lower', transt, 
'Non-unit', n, k, one,
 
  259     $               ldt, work, ldwork )
 
  265               c( i, j ) = c( i, j ) - work( j, i )
 
  273     $      
CALL dgemm( 
'Transpose', 
'Transpose', l, n, k, -one, v,
 
  275     $                  work, ldwork, one, c( m-l+1, 1 ), ldc )
 
  277      ELSE IF( lsame( side, 
'R' ) ) 
THEN 
  284            CALL dcopy( m, c( 1, j ), 1, work( 1, j ), 1 )
 
  291     $      
CALL dgemm( 
'No transpose', 
'Transpose', m, k, l, one,
 
  292     $                  c( 1, n-l+1 ), ldc, v, ldv, one, work, ldwork )
 
  296         CALL dtrmm( 
'Right', 
'Lower', trans, 
'Non-unit', m, k, one,
 
  298     $               ldt, work, ldwork )
 
  304               c( i, j ) = c( i, j ) - work( i, j )
 
  312     $      
CALL dgemm( 
'No transpose', 
'No transpose', m, l, k,
 
  314     $                  work, ldwork, v, ldv, one, c( 1, n-l+1 ), ldc )
 
 
subroutine dgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
DGEMM
 
subroutine dlarzb(side, trans, direct, storev, m, n, k, l, v, ldv, t, ldt, c, ldc, work, ldwork)
DLARZB applies a block reflector or its transpose to a general matrix.
 
subroutine dtrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
DTRMM