130 SUBROUTINE dgebak( JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV,
140 INTEGER ihi, ilo, info, ldv, m, n
143 DOUBLE PRECISION scale( * ), v( ldv, * )
150 parameter( one = 1.0d+0 )
153 LOGICAL leftv, rightv
171 rightv =
lsame( side,
'R' )
172 leftv =
lsame( side,
'L' )
175 IF( .NOT.
lsame( job,
'N' ) .AND. .NOT.
lsame( job,
'P' ) .AND.
176 $ .NOT.
lsame( job,
'S' ) .AND. .NOT.
lsame( job,
'B' ) )
THEN
178 ELSE IF( .NOT.rightv .AND. .NOT.leftv )
THEN
180 ELSE IF( n.LT.0 )
THEN
182 ELSE IF( ilo.LT.1 .OR. ilo.GT.max( 1, n ) )
THEN
184 ELSE IF( ihi.LT.min( ilo, n ) .OR. ihi.GT.n )
THEN
186 ELSE IF( m.LT.0 )
THEN
188 ELSE IF( ldv.LT.max( 1, n ) )
THEN
192 CALL
xerbla(
'DGEBAK', -info )
202 IF(
lsame( job,
'N' ) )
210 IF(
lsame( job,
'S' ) .OR.
lsame( job,
'B' ) )
THEN
215 CALL
dscal( m, s, v( i, 1 ), ldv )
222 CALL
dscal( m, s, v( i, 1 ), ldv )
234 IF(
lsame( job,
'P' ) .OR.
lsame( job,
'B' ) )
THEN
238 IF( i.GE.ilo .AND. i.LE.ihi )
245 CALL
dswap( m, v( i, 1 ), ldv, v( k, 1 ), ldv )
252 IF( i.GE.ilo .AND. i.LE.ihi )
259 CALL
dswap( m, v( i, 1 ), ldv, v( k, 1 ), ldv )
subroutine xerbla(SRNAME, INFO)
XERBLA
logical function lsame(CA, CB)
LSAME
subroutine dscal(N, DA, DX, INCX)
DSCAL
subroutine dgebak(JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV, INFO)
DGEBAK
subroutine dswap(N, DX, INCX, DY, INCY)
DSWAP