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),
65 CALL pbdvecadd( icontxt,
'G', nb, one, x(ix*incx+1),
66 $ incx, beta, y(iy*incy+1), incy )
72 CALL pbdvecadd( icontxt, 'g
', MIN(NB-KZ,N-IY), ONE,
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.LT.
IF( NIY ) 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 )
103 CALL PBDVECADD( ICONTXT, 'g
', MIN(NB-KZ,N-IY), ONE,
104 $ X(IX*INCX+1), INCX, BETA, Y(IY*INCY+1),
subroutine pbdtrst1(icontxt, xdist, n, nb, nz, x, incx, beta, y, incy, lcmp, lcmq, nint)
subroutine pbdvecadd(icontxt, mode, n, alpha, x, incx, beta, y, incy)