172      SUBROUTINE dgemlq( SIDE, TRANS, M, N, K, A, LDA, T, TSIZE,
 
  173     $                   C, LDC, WORK, LWORK, INFO )
 
  180      CHARACTER          SIDE, TRANS
 
  181      INTEGER            INFO, LDA, M, N, K, TSIZE, LWORK, LDC
 
  184      DOUBLE PRECISION   A( LDA, * ), T( * ), C( LDC, * ), WORK( * )
 
  191      LOGICAL            LEFT, RIGHT, TRAN, NOTRAN, LQUERY
 
  192      INTEGER            MB, NB, LW, NBLCKS, MN, MINMNK, LWMIN
 
  202      INTRINSIC          int, max, min, mod
 
  208      lquery  = ( lwork.EQ.-1 )
 
  209      notran  = lsame( trans, 
'N' )
 
  210      tran    = lsame( trans, 
'T' )
 
  211      left    = lsame( side, 
'L' )
 
  212      right   = lsame( side, 
'R' )
 
  224      minmnk = min( m, n, k )
 
  225      IF( minmnk.EQ.0 ) 
THEN 
  231      IF( ( nb.GT.k ) .AND. ( mn.GT.k ) ) 
THEN 
  232        IF( mod( mn - k, nb - k ) .EQ. 0 ) 
THEN 
  233          nblcks = ( mn - k ) / ( nb - k )
 
  235          nblcks = ( mn - k ) / ( nb - k ) + 1
 
  242      IF( .NOT.left .AND. .NOT.right ) 
THEN 
  244      ELSE IF( .NOT.tran .AND. .NOT.notran ) 
THEN 
  246      ELSE IF( m.LT.0 ) 
THEN 
  248      ELSE IF( n.LT.0 ) 
THEN 
  250      ELSE IF( k.LT.0 .OR. k.GT.mn ) 
THEN 
  252      ELSE IF( lda.LT.max( 1, k ) ) 
THEN 
  254      ELSE IF( tsize.LT.5 ) 
THEN 
  256      ELSE IF( ldc.LT.max( 1, m ) ) 
THEN 
  258      ELSE IF( lwork.LT.lwmin .AND. .NOT.lquery ) 
THEN 
  267        CALL xerbla( 
'DGEMLQ', -info )
 
  269      ELSE IF( lquery ) 
THEN 
  275      IF( minmnk.EQ.0 ) 
THEN 
  279      IF( ( left .AND. m.LE.k ) .OR. ( right .AND. n.LE.k )
 
  280     $     .OR. ( nb.LE.k ) .OR. ( nb.GE.max( m, n, k ) ) ) 
THEN 
  281        CALL dgemlqt( side, trans, m, n, k, mb, a, lda,
 
  282     $                t( 6 ), mb, c, ldc, work, info )
 
  284        CALL dlamswlq( side, trans, m, n, k, mb, nb, a, lda, t( 6 ),
 
  285     $                 mb, c, ldc, work, lwork, info )
 
 
subroutine dgemlq(side, trans, m, n, k, a, lda, t, tsize, c, ldc, work, lwork, info)
DGEMLQ
subroutine dgemlqt(side, trans, m, n, k, mb, v, ldv, t, ldt, c, ldc, work, info)
DGEMLQT
subroutine dlamswlq(side, trans, m, n, k, mb, nb, a, lda, t, ldt, c, ldc, work, lwork, info)
DLAMSWLQ