File: stencilf90.f90

package info (click to toggle)
blitz%2B%2B 1%3A0.9-8
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 12,672 kB
  • ctags: 12,926
  • sloc: cpp: 97,336; sh: 8,422; fortran: 1,208; makefile: 685; f90: 596
file content (19 lines) | stat: -rw-r--r-- 691 bytes parent folder | download | duplicates (13)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SUBROUTINE stencilf90(A, B, n, iters)
    IMPLICIT NONE
    INTEGER, INTENT( IN ) :: n, iters
    DOUBLE PRECISION, DIMENSION (n,n,n) :: A, B
    DOUBLE PRECISION :: c
    INTEGER :: count

    c = 1 / 7.

    DO count=1,iters
        A(2:N-1,2:N-1,2:N-1) = c * (B(2:N-1,2:N-1,2:N-1) + B(3:N,2:N-1,2:N-1) &
           + B(1:N-2,2:N-1,2:N-1) + B(2:N-1,3:N,2:N-1) + B(2:N-1,1:N-2,2:N-1) &
           + B(2:N-1,2:N-1,3:N) + B(2:N-1,2:N-1,1:N-2))
     
        B(2:N-1,2:N-1,2:N-1) = c * (A(2:N-1,2:N-1,2:N-1) + A(3:N,2:N-1,2:N-1) &
           + A(1:N-2,2:N-1,2:N-1) + A(2:N-1,3:N,2:N-1) + A(2:N-1,1:N-2,2:N-1) &
           + A(2:N-1,2:N-1,3:N) + A(2:N-1,2:N-1,1:N-2))
    END DO
END SUBROUTINE