xref: /petsc/src/binding/petsc4py/demo/legacy/poisson3d/del2lib.f90 (revision 5a48edb989d3ea10d6aff6c0e26d581c18691deb)
1*55a74a43SLisandro Dalcin! file: del2lib.f90
2*55a74a43SLisandro Dalcin
3*55a74a43SLisandro Dalcin! to build a Python module, use this:
4*55a74a43SLisandro Dalcin! $$ f2py -m del2lib -c del2lib.f90
5*55a74a43SLisandro Dalcin
6*55a74a43SLisandro Dalcinsubroutine del2apply (n, F, x, y)
7*55a74a43SLisandro Dalcin
8*55a74a43SLisandro Dalcin  !f2py intent(hide) :: n=shape(F,0)-2
9*55a74a43SLisandro Dalcin  integer      , intent(in)    :: n
10*55a74a43SLisandro Dalcin  real(kind=8) , intent(inout) :: F(0:n+1,0:n+1,0:n+1)
11*55a74a43SLisandro Dalcin  real(kind=8) , intent(in)    :: x(n,n,n)
12*55a74a43SLisandro Dalcin  real(kind=8) , intent(inout) :: y(n,n,n)
13*55a74a43SLisandro Dalcin
14*55a74a43SLisandro Dalcin  F(1:n,1:n,1:n) = x
15*55a74a43SLisandro Dalcin
16*55a74a43SLisandro Dalcin  y(:,:,:) = 6.0 * F(1:n,1:n,1:n) &
17*55a74a43SLisandro Dalcin           - F(0:n-1,1:n,1:n)     &
18*55a74a43SLisandro Dalcin           - F(2:n+1,1:n,1:n)     &
19*55a74a43SLisandro Dalcin           - F(1:n,0:n-1,1:n)     &
20*55a74a43SLisandro Dalcin           - F(1:n,2:n+1,1:n)     &
21*55a74a43SLisandro Dalcin           - F(1:n,1:n,0:n-1)     &
22*55a74a43SLisandro Dalcin           - F(1:n,1:n,2:n+1)
23*55a74a43SLisandro Dalcin
24*55a74a43SLisandro Dalcinend subroutine del2apply
25