xref: /petsc/src/sys/utils/ftn-kernels/fcopy.F90 (revision d66e387e1b17bf1eafe50b0bb7df00ccc9053b5a)
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)
80ccf82acSMartin Diehl  implicit none (type, external)
90ccf82acSMartin Diehl  PetscScalar, intent(in) :: x(*)
100ccf82acSMartin Diehl  PetscScalar, intent(inout) :: y(*)
110ccf82acSMartin Diehl  PetscInt, intent(in) :: n
120ccf82acSMartin Diehl
13c96caaccSSatish Balay  PETSC_AssertAlignx(16,x(1))
14c96caaccSSatish Balay  PETSC_AssertAlignx(16,y(1))
150113e719SMartin Diehl
16*d66e387eSMartin Diehl  y(1:n) = x(1:n)
170113e719SMartin Diehlend subroutine FortranCopy
18c96caaccSSatish Balay
190ccf82acSMartin Diehlpure subroutine FortranZero(n,x)
200ccf82acSMartin Diehl  implicit none (type, external)
210ccf82acSMartin Diehl  PetscScalar, intent(inout) :: x(*)
220ccf82acSMartin Diehl  PetscInt, intent(in) :: n
230ccf82acSMartin Diehl
24c96caaccSSatish Balay  PETSC_AssertAlignx(16,x(1))
250113e719SMartin Diehl
26*d66e387eSMartin Diehl  x(1:n) = 0.0
270113e719SMartin Diehlend subroutine FortranZero
28