88 SUBROUTINE dlarge( N, A, LDA, ISEED, WORK, INFO )
100 DOUBLE PRECISION a( lda, * ), work( * )
106 DOUBLE PRECISION zero, one
107 parameter( zero = 0.0d+0, one = 1.0d+0 )
111 DOUBLE PRECISION tau, wa, wb, wn
120 DOUBLE PRECISION dnrm2
130 ELSE IF( lda.LT.max( 1, n ) )
THEN
134 CALL
xerbla(
'DLARGE', -info )
144 CALL
dlarnv( 3, iseed, n-i+1, work )
145 wn =
dnrm2( n-i+1, work, 1 )
146 wa = sign( wn, work( 1 ) )
147 IF( wn.EQ.zero )
THEN
151 CALL
dscal( n-i, one / wb, work( 2 ), 1 )
158 CALL
dgemv(
'Transpose', n-i+1, n, one, a( i, 1 ), lda, work,
159 $ 1, zero, work( n+1 ), 1 )
160 CALL
dger( n-i+1, n, -tau, work, 1, work( n+1 ), 1, a( i, 1 ),
165 CALL
dgemv(
'No transpose', n, n-i+1, one, a( 1, i ), lda,
166 $ work, 1, zero, work( n+1 ), 1 )
167 CALL
dger( n, n-i+1, -tau, work( n+1 ), 1, work, 1, a( 1, i ),