1c96caaccSSatish Balay! 2c96caaccSSatish Balay! 3c96caaccSSatish Balay! Fortran kernel for the copy vector routine 4c96caaccSSatish Balay! 5c96caaccSSatish Balay#include <petsc/finclude/petscsys.h> 6c96caaccSSatish Balay! 70ccf82acSMartin Diehlpure subroutine FortranCopy(n, x, y) 8*fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 90ccf82acSMartin Diehl implicit none(type, external) 100ccf82acSMartin Diehl PetscScalar, intent(in) :: x(*) 110ccf82acSMartin Diehl PetscScalar, intent(inout) :: y(*) 120ccf82acSMartin Diehl PetscInt, intent(in) :: n 130ccf82acSMartin Diehl 14c96caaccSSatish Balay PETSC_AssertAlignx(16, x(1)) 15c96caaccSSatish Balay PETSC_AssertAlignx(16, y(1)) 160113e719SMartin Diehl 17d66e387eSMartin Diehl y(1:n) = x(1:n) 180113e719SMartin Diehlend subroutine FortranCopy 19c96caaccSSatish Balay 200ccf82acSMartin Diehlpure subroutine FortranZero(n, x) 21*fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 220ccf82acSMartin Diehl implicit none(type, external) 230ccf82acSMartin Diehl PetscScalar, intent(inout) :: x(*) 240ccf82acSMartin Diehl PetscInt, intent(in) :: n 250ccf82acSMartin Diehl 26c96caaccSSatish Balay PETSC_AssertAlignx(16, x(1)) 270113e719SMartin Diehl 28d66e387eSMartin Diehl x(1:n) = 0.0 290113e719SMartin Diehlend subroutine FortranZero 30