131 SUBROUTINE zgebak( JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV,
141 INTEGER ihi, ilo, info, ldv, m, n
144 DOUBLE PRECISION scale( * )
145 COMPLEX*16 v( ldv, * )
152 parameter( one = 1.0d+0 )
155 LOGICAL leftv, rightv
173 rightv =
lsame( side,
'R' )
174 leftv =
lsame( side,
'L' )
177 IF( .NOT.
lsame( job,
'N' ) .AND. .NOT.
lsame( job,
'P' ) .AND.
178 $ .NOT.
lsame( job,
'S' ) .AND. .NOT.
lsame( job,
'B' ) )
THEN
180 ELSE IF( .NOT.rightv .AND. .NOT.leftv )
THEN
182 ELSE IF( n.LT.0 )
THEN
184 ELSE IF( ilo.LT.1 .OR. ilo.GT.max( 1, n ) )
THEN
186 ELSE IF( ihi.LT.min( ilo, n ) .OR. ihi.GT.n )
THEN
188 ELSE IF( m.LT.0 )
THEN
190 ELSE IF( ldv.LT.max( 1, n ) )
THEN
194 CALL
xerbla(
'ZGEBAK', -info )
204 IF(
lsame( job,
'N' ) )
212 IF(
lsame( job,
'S' ) .OR.
lsame( job,
'B' ) )
THEN
217 CALL
zdscal( m, s, v( i, 1 ), ldv )
224 CALL
zdscal( m, s, v( i, 1 ), ldv )
236 IF(
lsame( job,
'P' ) .OR.
lsame( job,
'B' ) )
THEN
240 IF( i.GE.ilo .AND. i.LE.ihi )
247 CALL
zswap( m, v( i, 1 ), ldv, v( k, 1 ), ldv )
254 IF( i.GE.ilo .AND. i.LE.ihi )
261 CALL
zswap( m, v( i, 1 ), ldv, v( k, 1 ), ldv )