Actual source code: fmult.F
1: !
2: ! "$Id: fmult.F,v 1.9 2000/01/11 21:04:00 bsmith Exp $";
3: !
4: ! Fortran kernel for sparse matrix-vector product in the AIJ matrix format
5: !
6: #include include/finclude/petscdef.h
7: !
8: subroutine FortranMultAIJ(n,x,ii,jj,a,y)
9: implicit none
10: Scalar x(0:*),a(0:*),y(*)
11: integer n,ii(*),jj(0:*)
13: integer i,j,jstart,jend
14: Scalar sum
16: jend = ii(1)
17: do 10,i=1,n
18: jstart = jend
19: jend = ii(i+1)
20: sum = 0.d0
21: do 20 j=jstart,jend-1
22: sum = sum + a(j)*x(jj(j))
23: 20 continue
24: y(i) = sum
25: 10 continue
27: return
28: end