40 INTEGER N, NELT, K50, MTYPE
41 INTEGER ELTPTR( NELT + 1 ), ELTVAR( * )
42 COMPLEX(kind=8) A_ELT( * ), X( N ), Y( )
47 INTEGER IEL, I , J, SIZEI, IELPTR
51 parameter( zero = (0.0d0,0.0d0) )
63 sizei = eltptr( iel + 1 ) - eltptr( iel )
64 ielptr = eltptr( iel ) - 1
65 IF ( k50 .eq. 0 )
THEN
70 IF ( mtype .eq. 1 )
THEN
75 temp = x( eltvar( ielptr + j ) )
77 y( eltvar( ielptr + i ) ) =
78 & y( eltvar( ielptr + i ) ) +
88 temp = y( eltvar( ielptr + j ) )
91 & a_elt( k8 ) * x( eltvar( ielptr + i ) )
94 y( eltvar( ielptr + j ) ) = temp
104 y( eltvar( ielptr + j ) ) =
105 & y( eltvar( ielptr + j ) ) +
106 & a_elt( k8 ) * x( eltvar( ielptr + j ) )
110 y( eltvar( ielptr + i ) ) =
111 & y( eltvar( ielptr + i ) ) +
112 & a_elt( k8 ) * x( eltvar( ielptr + j ) )
113 y( eltvar( ielptr + j ) ) =
114 & y( eltvar( ielptr + j ) ) +
115 & a_elt( k8 ) * x( eltvar( ielptr + i ) )
124 &( n, nz_loc8, irn_loc, jcn_loc, a_loc, x, y_loc,
145 INTEGER(8) :: NZ_loc8
146 INTEGER IRN_loc( NZ_loc8 ), JCN_loc( NZ_loc8 )
147 COMPLEX(kind=8) A_loc( NZ_loc8 ), X( N ), Y_loc( N )
156 parameter( zero = (0.0d0,0.0d0) )
158 IF ( ldlt .eq. 0 )
THEN
160 IF ( mtype .eq. 1 )
THEN
165 IF ((i .LE. 0) .OR. (i .GT. n) .OR.
166 & (j .LE. 0) .OR. (j .GT. n)
168 y_loc(i) = y_loc(i) + a_loc(k8) * x(j)
175 IF ((i .LE. 0) .OR. (i .GT. n)
176 & .OR. (j .LE. 0) .OR. (j .GT. n)
178 y_loc(j) = y_loc(j) + a_loc(k8) * x(i)
187 IF ((i .LE. 0) .OR. (i .GT. n) .OR.
188 & (j .LE. 0) .OR. (j .GT. n)
190 y_loc(i) = y_loc(i) + a_loc(k8) * x(j)
192 y_loc(j) = y_loc(j) + a_loc(k8) * x(i)
199 & LDLT, MTYPE, MAXTRANS, PERM,
220 INTEGER N, LDLT, MTYPE, MAXTRANS
222 INTEGER IRN( NZ8 ), ICN( NZ8 )
224 COMPLEX(kind=8) ASPK( NZ8 ), X( N ), Y( N )
225 INTEGER,
intent(inout) :: , IERROR
232 COMPLEX(kind=8),
DIMENSION(:),
ALLOCATABLE :: PX
235 parameter( zero = (0.0d0,0.0d0) )
237 ALLOCATE(px(n), stat=allocok)
238 IF (allocok < 0)
THEN
248 IF ( maxtrans .eq. 1 .and. mtype .eq. 1)
THEN
250 px(i) = x( perm( i ) )
255 IF ( ldlt .eq. 0 )
THEN
258 IF (mtype .EQ. 1)
THEN
262 IF ((i .LE. 0) .OR. (i .GT. n) .OR. (j .LE. 0) .OR. (j .GT. n)
264 y(i) = y(i) + aspk(k8) * px(j)
270 IF ((i .LE. 0) .OR. (i .GT. n) .OR. (j .LE. 0) .OR. (j .GT. n)
272 y(j) = y(j) + aspk(k8) * px(i)
283 IF ((i .LE. 0) .OR. (i .GT. n) .OR. (j .LE. 0) .OR. (j .GT. n)
287 y(j) = y(j) + aspk(k8) * px(i)
291 IF ( maxtrans .EQ. 1 .AND. mtype .eq. 0 )
THEN
294 y( perm( i ) ) = px( i )
303 &( n, nz_loc8, irn_loc
327 INTEGER(8) :: NZ_loc8
328 INTEGER IRN_loc( NZ_loc8 ), JCN_loc( NZ_loc8 )
329 COMPLEX(kind=8) A_loc( NZ_loc8 ), X( N )
330 DOUBLE PRECISION Y_loc( N )
338 DOUBLE PRECISION,
PARAMETER :: RZERO=0.0d0
341 IF ( ldlt .eq. 0 )
THEN
343 IF ( mtype .eq. 1 )
THEN
348 IF ((i .LE. 0) .OR. (i .GT. n) .OR.
349 & (j .LE. 0) .OR. (j .GT. n)
351 y_loc(i) = y_loc(i) + abs( a_loc(k8) * x(j) )
358 IF ((i .LE. 0) .OR. (i .GT. n)
359 & .OR. (j .LE. 0) .OR. (j .GT. n)
361 y_loc(j) = y_loc(j) + abs( a_loc(k8) * x(i) )
370 IF ((i .LE. 0) .OR. (i .GT. n) .OR.
371 & (j .LE. 0) .OR. (j .GT. n)
373 y_loc(i) = y_loc(i) + abs( a_loc(k8) * x(j) )
375 y_loc(j) = y_loc(j) + abs( a_loc(k8) * x(i) )
subroutine zmumps_mv_elt(n, nelt, eltptr, eltvar, a_elt, x, y, k50, mtype)
subroutine zmumps_mv8(n, nz8, irn, icn, aspk, x, y, ldlt, mtype, maxtrans, perm, iflag, ierror)
subroutine zmumps_loc_mv8(n, nz_loc8, irn_loc, jcn_loc, a_loc, x, y_loc, ldlt, mtype)
subroutine zmumps_loc_omega1(n, nz_loc8, irn_loc, jcn_loc, a_loc, x, y_loc, ldlt, mtype)