1 SUBROUTINE pbdtrst1( ICONTXT, XDIST, N, NB, NZ, X, INCX, BETA, Y,
2 $ INCY, LCMP, LCMQ, NINT )
10 INTEGER ICONTXT, INCX, INCY, LCMP, LCMQ, N, NB, NINT,
15 DOUBLE PRECISION X( * ), Y( * )
28 parameter( one = 1.0d+0 )
31 INTEGER ITER, IX, IY, K, KK, KZ, NJUMP
46 iter = iceil( nint, nb )
49 IF( lsame( xdist,
'R' ) )
THEN
53 ix = nint * mod( kk*lcmp, lcmq )
54 iy =
max( 0, nb*kk-nz )
55 IF( n.LT.iy )
GO TO 50
58 CALL pbdvecadd( icontxt,
'G', nb-kz, one, x(ix*incx+1),
59 $ incx, beta, y(iy*incy+1), incy )
65 CALL pbdvecadd( icontxt,
'G', nb, one, x(ix*incx+1),
66 $ incx, beta, y(iy*incy+1), incy )
73 $ x(ix*incx+1), incx, beta, y(iy*incy+1),
84 ix = nint * mod( kk*lcmq, lcmp )
85 iy =
max( 0, nb*kk-nz )
86 IF( n.LT.iy )
GO TO 50
89 CALL pbdvecadd( icontxt,
'G', nb-kz, one, x(ix*incx+1),
90 $ incx, beta, y(iy*incy+1), incy )
96 CALL pbdvecadd( icontxt,
'G', nb, one, x(ix*incx+1),
97 $ incx, beta, y(iy*incy+1), incy )
104 $ x(ix*incx+1), incx, beta, y(iy*incy+1),