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, ru1, uu, vv, ww, r1, r2, r3,
20 c---------------------------------------------------------------------
21 c loop over all cells owned by this node
22 c---------------------------------------------------------------------
24 do k = start(3,c), cell_size(3,c)-end(3,c)-1
25 do j = start(2,c), cell_size(2,c)-end(2,c)-1
26 do i = start(1,c), cell_size(1,c)-end(1,c)-1
33 ac2inv = ainv(i,j,k,c)*ainv(i,j,k,c)
41 t1 = c2 * ac2inv * ( qs(i,j,k,c)*r1 - uu*r2 -
42 > vv*r3 - ww*r4 + r5 )
43 t2 = bt * ru1 * ( uu * r1 - r2 )
44 t3 = ( bt * ru1 * ac ) * t1
46 rhs(i,j,k,1,c) = r1 - t1
47 rhs(i,j,k,2,c) = - ru1 * ( ww*r1 - r4 )
48 rhs(i,j,k,3,c) = ru1 * ( vv*r1 - r3 )
49 rhs(i,j,k,4,c) = - t2 + t3
50 rhs(i,j,k,5,c) = t2 + t3