1c96caaccSSatish Balay! 2c96caaccSSatish Balay! 3c96caaccSSatish Balay! Fortran kernel for sparse matrix-vector product in the AIJ format 4c96caaccSSatish Balay! 5c96caaccSSatish Balay#include <petsc/finclude/petscsys.h> 6c96caaccSSatish Balay! 7c96caaccSSatish Balaysubroutine FortranMultAddAIJ(n,x,ii,jj,a,y,z) 8c96caaccSSatish Balay implicit none 9c96caaccSSatish Balay PetscScalar x(0:*),a(0:*),y(*),z(*) 10c96caaccSSatish Balay PetscInt n,ii(*),jj(0:*) 11c96caaccSSatish Balay 12c96caaccSSatish Balay PetscInt i,j,jstart,jend 13c96caaccSSatish Balay PetscScalar sum 14c96caaccSSatish Balay 15c96caaccSSatish Balay jend = ii(1) 16*0113e719SMartin Diehl do i=1,n 17c96caaccSSatish Balay jstart = jend 18c96caaccSSatish Balay jend = ii(i+1) 19c96caaccSSatish Balay sum = y(i) 20*0113e719SMartin Diehl do j=jstart,jend-1 21c96caaccSSatish Balay sum = sum + a(j)*x(jj(j)) 22*0113e719SMartin Diehl end do 23c96caaccSSatish Balay z(i) = sum 24*0113e719SMartin Diehl end do 25c96caaccSSatish Balay 26*0113e719SMartin Diehlend subroutine FortranMultAddAIJ 27