208      SUBROUTINE zlabrd( M, N, NB, A, LDA, D, E, TAUQ, TAUP, X, LDX,
 
  217      INTEGER            LDA, LDX, LDY, M, N, NB
 
  220      DOUBLE PRECISION   D( * ), E( * )
 
  221      COMPLEX*16         A( LDA, * ), TAUP( * ), TAUQ( * ), X( LDX, * ),
 
  229      PARAMETER          ( ZERO = ( 0.0d+0, 0.0d+0 ),
 
  230     $                   one = ( 1.0d+0, 0.0d+0 ) )
 
  246      IF( m.LE.0 .OR. n.LE.0 )
 
  257            CALL zlacgv( i-1, y( i, 1 ), ldy )
 
  258            CALL zgemv( 
'No transpose', m-i+1, i-1, -one, a( i, 1 ),
 
  259     $                  lda, y( i, 1 ), ldy, one, a( i, i ), 1 )
 
  260            CALL zlacgv( i-1, y( i, 1 ), ldy )
 
  261            CALL zgemv( 
'No transpose', m-i+1, i-1, -one, x( i, 1 ),
 
  262     $                  ldx, a( 1, i ), 1, one, a( i, i ), 1 )
 
  267            CALL zlarfg( m-i+1, alpha, a( min( i+1, m ), i ), 1,
 
  269            d( i ) = dble( alpha )
 
  275               CALL zgemv( 
'Conjugate transpose', m-i+1, n-i, one,
 
  276     $                     a( i, i+1 ), lda, a( i, i ), 1, zero,
 
  278               CALL zgemv( 
'Conjugate transpose', m-i+1, i-1, one,
 
  279     $                     a( i, 1 ), lda, a( i, i ), 1, zero,
 
  281               CALL zgemv( 
'No transpose', n-i, i-1, -one, y( i+1,
 
  283     $                     ldy, y( 1, i ), 1, one, y( i+1, i ), 1 )
 
  284               CALL zgemv( 
'Conjugate transpose', m-i+1, i-1, one,
 
  285     $                     x( i, 1 ), ldx, a( i, i ), 1, zero,
 
  287               CALL zgemv( 
'Conjugate transpose', i-1, n-i, -one,
 
  288     $                     a( 1, i+1 ), lda, y( 1, i ), 1, one,
 
  290               CALL zscal( n-i, tauq( i ), y( i+1, i ), 1 )
 
  294               CALL zlacgv( n-i, a( i, i+1 ), lda )
 
  295               CALL zlacgv( i, a( i, 1 ), lda )
 
  296               CALL zgemv( 
'No transpose', n-i, i, -one, y( i+1, 1 ),
 
  297     $                     ldy, a( i, 1 ), lda, one, a( i, i+1 ), lda )
 
  298               CALL zlacgv( i, a( i, 1 ), lda )
 
  299               CALL zlacgv( i-1, x( i, 1 ), ldx )
 
  300               CALL zgemv( 
'Conjugate transpose', i-1, n-i, -one,
 
  301     $                     a( 1, i+1 ), lda, x( i, 1 ), ldx, one,
 
  303               CALL zlacgv( i-1, x( i, 1 ), ldx )
 
  308               CALL zlarfg( n-i, alpha, a( i, min( i+2, n ) ), lda,
 
  310               e( i ) = dble( alpha )
 
  315               CALL zgemv( 
'No transpose', m-i, n-i, one, a( i+1,
 
  317     $                     lda, a( i, i+1 ), lda, zero, x( i+1, i ), 1 )
 
  318               CALL zgemv( 
'Conjugate transpose', n-i, i, one,
 
  319     $                     y( i+1, 1 ), ldy, a( i, i+1 ), lda, zero,
 
  321               CALL zgemv( 
'No transpose', m-i, i, -one, a( i+1, 1 ),
 
  322     $                     lda, x( 1, i ), 1, one, x( i+1, i ), 1 )
 
  323               CALL zgemv( 
'No transpose', i-1, n-i, one, a( 1,
 
  325     $                     lda, a( i, i+1 ), lda, zero, x( 1, i ), 1 )
 
  326               CALL zgemv( 
'No transpose', m-i, i-1, -one, x( i+1,
 
  328     $                     ldx, x( 1, i ), 1, one, x( i+1, i ), 1 )
 
  329               CALL zscal( m-i, taup( i ), x( i+1, i ), 1 )
 
  330               CALL zlacgv( n-i, a( i, i+1 ), lda )
 
  341            CALL zlacgv( n-i+1, a( i, i ), lda )
 
  342            CALL zlacgv( i-1, a( i, 1 ), lda )
 
  343            CALL zgemv( 
'No transpose', n-i+1, i-1, -one, y( i, 1 ),
 
  344     $                  ldy, a( i, 1 ), lda, one, a( i, i ), lda )
 
  345            CALL zlacgv( i-1, a( i, 1 ), lda )
 
  346            CALL zlacgv( i-1, x( i, 1 ), ldx )
 
  347            CALL zgemv( 
'Conjugate transpose', i-1, n-i+1, -one,
 
  348     $                  a( 1, i ), lda, x( i, 1 ), ldx, one, a( i, i ),
 
  350            CALL zlacgv( i-1, x( i, 1 ), ldx )
 
  355            CALL zlarfg( n-i+1, alpha, a( i, min( i+1, n ) ), lda,
 
  357            d( i ) = dble( alpha )
 
  363               CALL zgemv( 
'No transpose', m-i, n-i+1, one, a( i+1,
 
  365     $                     lda, a( i, i ), lda, zero, x( i+1, i ), 1 )
 
  366               CALL zgemv( 
'Conjugate transpose', n-i+1, i-1, one,
 
  367     $                     y( i, 1 ), ldy, a( i, i ), lda, zero,
 
  369               CALL zgemv( 
'No transpose', m-i, i-1, -one, a( i+1,
 
  371     $                     lda, x( 1, i ), 1, one, x( i+1, i ), 1 )
 
  372               CALL zgemv( 
'No transpose', i-1, n-i+1, one, a( 1,
 
  374     $                     lda, a( i, i ), lda, zero, x( 1, i ), 1 )
 
  375               CALL zgemv( 
'No transpose', m-i, i-1, -one, x( i+1,
 
  377     $                     ldx, x( 1, i ), 1, one, x( i+1, i ), 1 )
 
  378               CALL zscal( m-i, taup( i ), x( i+1, i ), 1 )
 
  379               CALL zlacgv( n-i+1, a( i, i ), lda )
 
  383               CALL zlacgv( i-1, y( i, 1 ), ldy )
 
  384               CALL zgemv( 
'No transpose', m-i, i-1, -one, a( i+1,
 
  386     $                     lda, y( i, 1 ), ldy, one, a( i+1, i ), 1 )
 
  387               CALL zlacgv( i-1, y( i, 1 ), ldy )
 
  388               CALL zgemv( 
'No transpose', m-i, i, -one, x( i+1, 1 ),
 
  389     $                     ldx, a( 1, i ), 1, one, a( i+1, i ), 1 )
 
  394               CALL zlarfg( m-i, alpha, a( min( i+2, m ), i ), 1,
 
  396               e( i ) = dble( alpha )
 
  401               CALL zgemv( 
'Conjugate transpose', m-i, n-i, one,
 
  402     $                     a( i+1, i+1 ), lda, a( i+1, i ), 1, zero,
 
  404               CALL zgemv( 
'Conjugate transpose', m-i, i-1, one,
 
  405     $                     a( i+1, 1 ), lda, a( i+1, i ), 1, zero,
 
  407               CALL zgemv( 
'No transpose', n-i, i-1, -one, y( i+1,
 
  409     $                     ldy, y( 1, i ), 1, one, y( i+1, i ), 1 )
 
  410               CALL zgemv( 
'Conjugate transpose', m-i, i, one,
 
  411     $                     x( i+1, 1 ), ldx, a( i+1, i ), 1, zero,
 
  413               CALL zgemv( 
'Conjugate transpose', i, n-i, -one,
 
  414     $                     a( 1, i+1 ), lda, y( 1, i ), 1, one,
 
  416               CALL zscal( n-i, tauq( i ), y( i+1, i ), 1 )
 
  418               CALL zlacgv( n-i+1, a( i, i ), lda )