96      DOUBLE PRECISION FUNCTION drzt01( M, N, A, AF, LDA, TAU, WORK,
 
  104      INTEGER            lda, lwork, m, n
 
  107      DOUBLE PRECISION   a( lda, * ), af( lda, * ), tau( * ),
 
  114      DOUBLE PRECISION   zero, one
 
  115      parameter( zero = 0.0d+0, one = 1.0d+0 )
 
  119      DOUBLE PRECISION   norma
 
  122      DOUBLE PRECISION   rwork( 1 )
 
  138      IF( lwork.LT.m*n+m ) 
THEN 
  139         CALL xerbla( 
'DRZT01', 8 )
 
  145      IF( m.LE.0 .OR. n.LE.0 )
 
  148      norma = 
dlange( 
'One-norm', m, n, a, lda, rwork )
 
  152      CALL dlaset( 
'Full', m, n, zero, zero, work, m )
 
  155            work( ( j-1 )*m+i ) = af( i, j )
 
  161      CALL dormrz( 
'Right', 
'No transpose', m, n, m, n-m, af, lda, tau,
 
  162     $             work, m, work( m*n+1 ), lwork-m*n, info )
 
  167         CALL daxpy( m, -one, a( 1, i ), 1, work( ( i-1 )*m+1 ), 1 )
 
 
subroutine xerbla(srname, info)
double precision function drzt01(m, n, a, af, lda, tau, work, lwork)
DRZT01
subroutine daxpy(n, da, dx, incx, dy, incy)
DAXPY
double precision function dlamch(cmach)
DLAMCH
double precision function dlange(norm, m, n, a, lda, work)
DLANGE returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value ...
subroutine dlaset(uplo, m, n, alpha, beta, a, lda)
DLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values.
subroutine dormrz(side, trans, m, n, k, l, a, lda, tau, c, ldc, work, lwork, info)
DORMRZ