xref: /petsc/src/sys/utils/ftn-kernels/fcopy.F90 (revision 0ccf82ac36648ce52b79cfc8b55f689a1594b19a)
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