164      SUBROUTINE sgemqrt( SIDE, TRANS, M, N, K, NB, V, LDV, T, LDT,
 
  165     $                   C, LDC, WORK, INFO )
 
  172      CHARACTER SIDE, TRANS
 
  173      INTEGER   INFO, K, LDV, LDC, M, N, NB, LDT
 
  176      REAL   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( nb.LT.1 .OR. (nb.GT.k .AND. k.GT.0)) 
THEN 
  225      ELSE IF( ldv.LT.max( 1, q ) ) 
THEN 
  227      ELSE IF( ldt.LT.nb ) 
THEN 
  229      ELSE IF( ldc.LT.max( 1, m ) ) 
THEN 
  234         CALL xerbla( 
'SGEMQRT', -info )
 
  240      IF( m.EQ.0 .OR. n.EQ.0 .OR. k.EQ.0 ) 
RETURN 
  242      IF( left .AND. tran ) 
THEN 
  245            ib = min( nb, k-i+1 )
 
  246            CALL slarfb( 
'L', 
'T', 
'F', 
'C', 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. notran ) 
THEN 
  254            ib = min( nb, k-i+1 )
 
  255            CALL slarfb( 
'R', 
'N', 
'F', 
'C', 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. notran ) 
THEN 
  264            ib = min( nb, k-i+1 )
 
  265            CALL slarfb( 
'L', 
'N', 
'F', 
'C', 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. tran ) 
THEN 
  274            ib = min( nb, k-i+1 )
 
  275            CALL slarfb( 
'R', 
'T', 
'F', 
'C', m, n-i+1, ib,
 
  276     $                   v( i, i ), ldv, t( 1, i ), ldt,
 
  277     $                   c( 1, i ), ldc, work, ldwork )
 
 
subroutine sgemqrt(side, trans, m, n, k, nb, v, ldv, t, ldt, c, ldc, work, info)
SGEMQRT
 
subroutine slarfb(side, trans, direct, storev, m, n, k, v, ldv, t, ldt, c, ldc, work, ldwork)
SLARFB applies a block reflector or its transpose to a general rectangular matrix.