xref: /petsc/src/sys/utils/ftn-kernels/fcopy.F90 (revision c96caacc6f00ba95b366aeae86152d44f6880d6b)
1*c96caaccSSatish Balay!
2*c96caaccSSatish Balay!
3*c96caaccSSatish Balay!    Fortran kernel for the copy vector routine
4*c96caaccSSatish Balay!
5*c96caaccSSatish Balay#include <petsc/finclude/petscsys.h>
6*c96caaccSSatish Balay!
7*c96caaccSSatish Balay      subroutine FortranCopy(n,x,y)
8*c96caaccSSatish Balay      implicit none
9*c96caaccSSatish Balay      PetscScalar  x(*),y(*)
10*c96caaccSSatish Balay      PetscInt n
11*c96caaccSSatish Balay      PetscInt i
12*c96caaccSSatish Balay      PETSC_AssertAlignx(16,x(1))
13*c96caaccSSatish Balay      PETSC_AssertAlignx(16,y(1))
14*c96caaccSSatish Balay      do 10,i=1,n
15*c96caaccSSatish Balay        y(i) = x(i)
16*c96caaccSSatish Balay 10   continue
17*c96caaccSSatish Balay      return
18*c96caaccSSatish Balay      end
19*c96caaccSSatish Balay
20*c96caaccSSatish Balay
21*c96caaccSSatish Balay      subroutine FortranZero(n,x)
22*c96caaccSSatish Balay      implicit none
23*c96caaccSSatish Balay      PetscScalar  x(*)
24*c96caaccSSatish Balay      PetscInt n
25*c96caaccSSatish Balay      PetscInt i
26*c96caaccSSatish Balay      PETSC_AssertAlignx(16,x(1))
27*c96caaccSSatish Balay      do 10,i=1,n
28*c96caaccSSatish Balay        x(i) = 0.0
29*c96caaccSSatish Balay 10   continue
30*c96caaccSSatish Balay      return
31*c96caaccSSatish Balay      end
32*c96caaccSSatish Balay
33