206      SUBROUTINE dlabrd( M, N, NB, A, LDA, D, E, TAUQ, TAUP, X, LDX,
 
  215      INTEGER            LDA, LDX, LDY, M, N, NB
 
  218      DOUBLE PRECISION   A( LDA, * ), D( * ), E( * ), TAUP( * ),
 
  219     $                   TAUQ( * ), X( LDX, * ), Y( LDY, * )
 
  225      DOUBLE PRECISION   ZERO, ONE
 
  226      PARAMETER          ( ZERO = 0.0d0, one = 1.0d0 )
 
  241      IF( m.LE.0 .OR. n.LE.0 )
 
  252            CALL dgemv( 
'No transpose', m-i+1, i-1, -one, a( i, 1 ),
 
  253     $                  lda, y( i, 1 ), ldy, one, a( i, i ), 1 )
 
  254            CALL dgemv( 
'No transpose', m-i+1, i-1, -one, x( i, 1 ),
 
  255     $                  ldx, a( 1, i ), 1, one, a( i, i ), 1 )
 
  259            CALL dlarfg( m-i+1, a( i, i ), a( min( i+1, m ), i ), 1,
 
  267               CALL dgemv( 
'Transpose', m-i+1, n-i, one, a( i, i+1 ),
 
  268     $                     lda, a( i, i ), 1, zero, y( i+1, i ), 1 )
 
  269               CALL dgemv( 
'Transpose', m-i+1, i-1, one, a( i, 1 ),
 
  271     $                     a( i, i ), 1, zero, y( 1, i ), 1 )
 
  272               CALL dgemv( 
'No transpose', n-i, i-1, -one, y( i+1,
 
  274     $                     ldy, y( 1, i ), 1, one, y( i+1, i ), 1 )
 
  275               CALL dgemv( 
'Transpose', m-i+1, i-1, one, x( i, 1 ),
 
  277     $                     a( i, i ), 1, zero, y( 1, i ), 1 )
 
  278               CALL dgemv( 
'Transpose', i-1, n-i, -one, a( 1, i+1 ),
 
  279     $                     lda, y( 1, i ), 1, one, y( i+1, i ), 1 )
 
  280               CALL dscal( n-i, tauq( i ), y( i+1, i ), 1 )
 
  284               CALL dgemv( 
'No transpose', n-i, i, -one, y( i+1, 1 ),
 
  285     $                     ldy, a( i, 1 ), lda, one, a( i, i+1 ), lda )
 
  286               CALL dgemv( 
'Transpose', i-1, n-i, -one, a( 1, i+1 ),
 
  287     $                     lda, x( i, 1 ), ldx, one, a( i, i+1 ), lda )
 
  291               CALL dlarfg( n-i, a( i, i+1 ), a( i, min( i+2, n ) ),
 
  298               CALL dgemv( 
'No transpose', m-i, n-i, one, a( i+1,
 
  300     $                     lda, a( i, i+1 ), lda, zero, x( i+1, i ), 1 )
 
  301               CALL dgemv( 
'Transpose', n-i, i, one, y( i+1, 1 ),
 
  303     $                     a( i, i+1 ), lda, zero, x( 1, i ), 1 )
 
  304               CALL dgemv( 
'No transpose', m-i, i, -one, a( i+1, 1 ),
 
  305     $                     lda, x( 1, i ), 1, one, x( i+1, i ), 1 )
 
  306               CALL dgemv( 
'No transpose', i-1, n-i, one, a( 1,
 
  308     $                     lda, a( i, i+1 ), lda, zero, x( 1, i ), 1 )
 
  309               CALL dgemv( 
'No transpose', m-i, i-1, -one, x( i+1,
 
  311     $                     ldx, x( 1, i ), 1, one, x( i+1, i ), 1 )
 
  312               CALL dscal( m-i, taup( i ), x( i+1, i ), 1 )
 
  323            CALL dgemv( 
'No transpose', n-i+1, i-1, -one, y( i, 1 ),
 
  324     $                  ldy, a( i, 1 ), lda, one, a( i, i ), lda )
 
  325            CALL dgemv( 
'Transpose', i-1, n-i+1, -one, a( 1, i ),
 
  327     $                  x( i, 1 ), ldx, one, a( i, i ), lda )
 
  331            CALL dlarfg( n-i+1, a( i, i ), a( i, min( i+1, n ) ),
 
  340               CALL dgemv( 
'No transpose', m-i, n-i+1, one, a( i+1,
 
  342     $                     lda, a( i, i ), lda, zero, x( i+1, i ), 1 )
 
  343               CALL dgemv( 
'Transpose', n-i+1, i-1, one, y( i, 1 ),
 
  345     $                     a( i, i ), lda, zero, x( 1, i ), 1 )
 
  346               CALL dgemv( 
'No transpose', m-i, i-1, -one, a( i+1,
 
  348     $                     lda, x( 1, i ), 1, one, x( i+1, i ), 1 )
 
  349               CALL dgemv( 
'No transpose', i-1, n-i+1, one, a( 1,
 
  351     $                     lda, a( i, i ), lda, zero, x( 1, i ), 1 )
 
  352               CALL dgemv( 
'No transpose', m-i, i-1, -one, x( i+1,
 
  354     $                     ldx, x( 1, i ), 1, one, x( i+1, i ), 1 )
 
  355               CALL dscal( m-i, taup( i ), x( i+1, i ), 1 )
 
  359               CALL dgemv( 
'No transpose', m-i, i-1, -one, a( i+1,
 
  361     $                     lda, y( i, 1 ), ldy, one, a( i+1, i ), 1 )
 
  362               CALL dgemv( 
'No transpose', m-i, i, -one, x( i+1, 1 ),
 
  363     $                     ldx, a( 1, i ), 1, one, a( i+1, i ), 1 )
 
  367               CALL dlarfg( m-i, a( i+1, i ), a( min( i+2, m ), i ),
 
  375               CALL dgemv( 
'Transpose', m-i, n-i, one, a( i+1, i+1 ),
 
  376     $                     lda, a( i+1, i ), 1, zero, y( i+1, i ), 1 )
 
  377               CALL dgemv( 
'Transpose', m-i, i-1, one, a( i+1, 1 ),
 
  379     $                     a( i+1, i ), 1, zero, y( 1, i ), 1 )
 
  380               CALL dgemv( 
'No transpose', n-i, i-1, -one, y( i+1,
 
  382     $                     ldy, y( 1, i ), 1, one, y( i+1, i ), 1 )
 
  383               CALL dgemv( 
'Transpose', m-i, i, one, x( i+1, 1 ),
 
  385     $                     a( i+1, i ), 1, zero, y( 1, i ), 1 )
 
  386               CALL dgemv( 
'Transpose', i, n-i, -one, a( 1, i+1 ),
 
  388     $                     y( 1, i ), 1, one, y( i+1, i ), 1 )
 
  389               CALL dscal( n-i, tauq( i ), y( i+1, i ), 1 )