Actual source code: fmultadd.F
1: !
2: ! "$Id: fmultadd.F,v 1.12 2001/08/07 03:05:24 balay Exp $";
3: !
4: ! Fortran kernel for sparse matrix-vector product in the AIJ format
5: !
6: #include include/finclude/petscdef.h
7: !
8: subroutine FortranMultAddAIJ(n,x,ii,jj,a,y,z)
9: implicit none
10: PetscScalar x(0:*),a(0:*),y(*),z(*)
11: integer n,ii(*),jj(0:*)
13: integer i,j,jstart,jend
14: PetscScalar sum
16: jend = ii(1)
17: do 10,i=1,n
18: jstart = jend
19: jend = ii(i+1)
20: sum = y(i)
21: do 20 j=jstart,jend-1
22: sum = sum + a(j)*x(jj(j))
23: 20 continue
24: z(i) = sum
25: 10 continue
27: return
28: end