1c96caaccSSatish Balay! 2c96caaccSSatish Balay! 3c96caaccSSatish Balay! Fortran kernel for the copy vector routine 4c96caaccSSatish Balay! 5c96caaccSSatish Balay#include <petsc/finclude/petscsys.h> 6c96caaccSSatish Balay! 7*0ccf82acSMartin Diehlpure subroutine FortranCopy(n,x,y) 8*0ccf82acSMartin Diehl implicit none (type, external) 9*0ccf82acSMartin Diehl PetscScalar, intent(in) :: x(*) 10*0ccf82acSMartin Diehl PetscScalar, intent(inout) :: y(*) 11*0ccf82acSMartin Diehl PetscInt, intent(in) :: n 12*0ccf82acSMartin Diehl 13c96caaccSSatish Balay PetscInt i 140113e719SMartin Diehl 15c96caaccSSatish Balay PETSC_AssertAlignx(16,x(1)) 16c96caaccSSatish Balay PETSC_AssertAlignx(16,y(1)) 170113e719SMartin Diehl 180113e719SMartin Diehl do i=1,n 19c96caaccSSatish Balay y(i) = x(i) 200113e719SMartin Diehl end do 210113e719SMartin Diehlend subroutine FortranCopy 22c96caaccSSatish Balay 23*0ccf82acSMartin Diehlpure subroutine FortranZero(n,x) 24*0ccf82acSMartin Diehl implicit none (type, external) 25*0ccf82acSMartin Diehl PetscScalar, intent(inout) :: x(*) 26*0ccf82acSMartin Diehl PetscInt, intent(in) :: n 27*0ccf82acSMartin Diehl 28c96caaccSSatish Balay PetscInt i 290113e719SMartin Diehl 30c96caaccSSatish Balay PETSC_AssertAlignx(16,x(1)) 310113e719SMartin Diehl 320113e719SMartin Diehl do i=1,n 33c96caaccSSatish Balay x(i) = 0.0 340113e719SMartin Diehl end do 350113e719SMartin Diehlend subroutine FortranZero 36