2 c---------------------------------------------------------------------
3 c---------------------------------------------------------------------
7 c---------------------------------------------------------------------
8 c---------------------------------------------------------------------
10 c---------------------------------------------------------------------
11 c block-diagonal matrix-vector multiplication
12 c---------------------------------------------------------------------
17 double precision t1, t2, t3, ac, xvel, yvel, zvel, r1, r2, r3,
18 > r4, r5, btuz, acinv, ac2u, uzik1
20 c---------------------------------------------------------------------
22 c---------------------------------------------------------------------
23 do k = start(3,c), cell_size(3,c)-end(3,c)-1
24 do j = start(2,c), cell_size(2,c)-end(2,c)-1
25 do i = start(1,c), cell_size(1,c)-end(1,c)-1
44 t1 = btuz*acinv * (r4 + r5)
49 rhs(i,j,k,2,c) = -uzik1*r2 + xvel*t2
50 rhs(i,j,k,3,c) = uzik1*r1 + yvel*t2
51 rhs(i,j,k,4,c) = zvel*t2 + t3
52 rhs(i,j,k,5,c) = uzik1*(-xvel*r2 + yvel*r1) +
53 > qs(i,j,k,c)*t2 + c2iv*ac2u*t1 + zvel*t3