164      SUBROUTINE dgemlqt( SIDE, TRANS, M, N, K, MB, V, LDV, T, LDT,
 
  165     $                   C, LDC, WORK, INFO )
 
  172      CHARACTER SIDE, TRANS
 
  173      INTEGER   INFO, K, LDV, LDC, M, N, MB, LDT
 
  176      DOUBLE PRECISION V( LDV, * ), C( LDC, * ), T( LDT, * ), WORK( * )
 
  183      LOGICAL            LEFT, RIGHT, TRAN, NOTRAN
 
  184      INTEGER            I, IB, LDWORK, KF, Q
 
  201      left   = lsame( side,  
'L' )
 
  202      right  = lsame( side,  
'R' )
 
  203      tran   = lsame( trans, 
'T' )
 
  204      notran = lsame( trans, 
'N' )
 
  209      ELSE IF ( right ) 
THEN 
  213      IF( .NOT.left .AND. .NOT.right ) 
THEN 
  215      ELSE IF( .NOT.tran .AND. .NOT.notran ) 
THEN 
  217      ELSE IF( m.LT.0 ) 
THEN 
  219      ELSE IF( n.LT.0 ) 
THEN 
  221      ELSE IF( k.LT.0 .OR. k.GT.q ) 
THEN 
  223      ELSE IF( mb.LT.1 .OR. (mb.GT.k .AND. k.GT.0)) 
THEN 
  225      ELSE IF( ldv.LT.max( 1, k ) ) 
THEN 
  227      ELSE IF( ldt.LT.mb ) 
THEN 
  229      ELSE IF( ldc.LT.max( 1, m ) ) 
THEN 
  234         CALL xerbla( 
'DGEMLQT', -info )
 
  240      IF( m.EQ.0 .OR. n.EQ.0 .OR. k.EQ.0 ) 
RETURN 
  242      IF( left .AND. notran ) 
THEN 
  245            ib = min( mb, k-i+1 )
 
  246            CALL dlarfb( 
'L', 
'T', 
'F', 
'R', m-i+1, n, ib,
 
  247     $                   v( i, i ), ldv, t( 1, i ), ldt,
 
  248     $                   c( i, 1 ), ldc, work, ldwork )
 
  251      ELSE IF( right .AND. tran ) 
THEN 
  254            ib = min( mb, k-i+1 )
 
  255            CALL dlarfb( 
'R', 
'N', 
'F', 
'R', m, n-i+1, ib,
 
  256     $                   v( i, i ), ldv, t( 1, i ), ldt,
 
  257     $                   c( 1, i ), ldc, work, ldwork )
 
  260      ELSE IF( left .AND. tran ) 
THEN 
  264            ib = min( mb, k-i+1 )
 
  265            CALL dlarfb( 
'L', 
'N', 
'F', 
'R', m-i+1, n, ib,
 
  266     $                   v( i, i ), ldv, t( 1, i ), ldt,
 
  267     $                   c( i, 1 ), ldc, work, ldwork )
 
  270      ELSE IF( right .AND. notran ) 
THEN 
  274            ib = min( mb, k-i+1 )
 
  275            CALL dlarfb( 
'R', 
'T', 
'F', 
'R', m, n-i+1, ib,
 
  276     $                   v( i, i ), ldv, t( 1, i ), ldt,
 
  277     $                   c( 1, i ), ldc, work, ldwork )
 
 
subroutine dgemlqt(side, trans, m, n, k, mb, v, ldv, t, ldt, c, ldc, work, info)
DGEMLQT
subroutine dlarfb(side, trans, direct, storev, m, n, k, v, ldv, t, ldt, c, ldc, work, ldwork)
DLARFB applies a block reflector or its transpose to a general rectangular matrix.