168     $                            ST, ED, SWEEP, N, NB, IB,
 
  169     $                            A, LDA, V, TAU, LDVT, WORK)
 
  180      INTEGER            TTYPE, ST, ED, SWEEP, N, NB, IB, LDA, LDVT
 
  183      DOUBLE PRECISION   A( LDA, * ), V( * ),
 
  184     $                   TAU( * ), WORK( * )
 
  190      DOUBLE PRECISION   ZERO, ONE
 
  191      PARAMETER          ( ZERO = 0.0d+0,
 
  196      INTEGER            I, J1, J2, LM, LN, VPOS, TAUPOS,
 
  197     $                   dpos, ofdpos, ajeter
 
  198      DOUBLE PRECISION   CTMP
 
  213      upper = lsame( uplo, 
'U' )
 
  229              vpos   = mod( sweep-1, 2 ) * n + st
 
  230              taupos = mod( sweep-1, 2 ) * n + st
 
  232              vpos   = mod( sweep-1, 2 ) * n + st
 
  233              taupos = mod( sweep-1, 2 ) * n + st
 
  236          IF( ttype.EQ.1 ) 
THEN 
  241                  v( vpos+i )         = ( a( ofdpos-i, st+i ) )
 
  242                  a( ofdpos-i, st+i ) = zero
 
  244              ctmp = ( a( ofdpos, st ) )
 
  245              CALL dlarfg( lm, ctmp, v( vpos+1 ), 1,
 
  247              a( ofdpos, st ) = ctmp
 
  250              CALL dlarfy( uplo, lm, v( vpos ), 1,
 
  252     $                     a( dpos, st ), lda-1, work)
 
  255          IF( ttype.EQ.3 ) 
THEN 
  258              CALL dlarfy( uplo, lm, v( vpos ), 1,
 
  260     $                     a( dpos, st ), lda-1, work)
 
  263          IF( ttype.EQ.2 ) 
THEN 
  269                  CALL dlarfx( 
'Left', ln, lm, v( vpos ),
 
  271     $                         a( dpos-nb, j1 ), lda-1, work)
 
  274                      vpos   = mod( sweep-1, 2 ) * n + j1
 
  275                      taupos = mod( sweep-1, 2 ) * n + j1
 
  277                      vpos   = mod( sweep-1, 2 ) * n + j1
 
  278                      taupos = mod( sweep-1, 2 ) * n + j1
 
  284     $                                    ( a( dpos-nb-i, j1+i ) )
 
  285                      a( dpos-nb-i, j1+i ) = zero
 
  287                  ctmp = ( a( dpos-nb, j1 ) )
 
  288                  CALL dlarfg( lm, ctmp, v( vpos+1 ), 1,
 
  290                  a( dpos-nb, j1 ) = ctmp
 
  292                  CALL dlarfx( 
'Right', ln-1, lm, v( vpos ),
 
  294     $                         a( dpos-nb+1, j1 ), lda-1, work)
 
  303              vpos   = mod( sweep-1, 2 ) * n + st
 
  304              taupos = mod( sweep-1, 2 ) * n + st
 
  306              vpos   = mod( sweep-1, 2 ) * n + st
 
  307              taupos = mod( sweep-1, 2 ) * n + st
 
  310          IF( ttype.EQ.1 ) 
THEN 
  315                  v( vpos+i )         = a( ofdpos+i, st-1 )
 
  316                  a( ofdpos+i, st-1 ) = zero
 
  318              CALL dlarfg( lm, a( ofdpos, st-1 ), v( vpos+1 ), 1,
 
  323              CALL dlarfy( uplo, lm, v( vpos ), 1,
 
  325     $                     a( dpos, st ), lda-1, work)
 
  329          IF( ttype.EQ.3 ) 
THEN 
  332              CALL dlarfy( uplo, lm, v( vpos ), 1,
 
  334     $                     a( dpos, st ), lda-1, work)
 
  338          IF( ttype.EQ.2 ) 
THEN 
  345                  CALL dlarfx( 
'Right', lm, ln, v( vpos ),
 
  346     $                         tau( taupos ), a( dpos+nb, st ),
 
  350                      vpos   = mod( sweep-1, 2 ) * n + j1
 
  351                      taupos = mod( sweep-1, 2 ) * n + j1
 
  353                      vpos   = mod( sweep-1, 2 ) * n + j1
 
  354                      taupos = mod( sweep-1, 2 ) * n + j1
 
  359                      v( vpos+i )        = a( dpos+nb+i, st )
 
  360                      a( dpos+nb+i, st ) = zero
 
  362                  CALL dlarfg( lm, a( dpos+nb, st ), v( vpos+1 ), 1,
 
  365                  CALL dlarfx( 
'Left', lm, ln-1, v( vpos ),
 
  367     $                         a( dpos+nb-1, st+1 ), lda-1, work)