diff --git a/jacobi_kernel.F90 b/jacobi_kernel.F90 new file mode 100644 index 0000000..27ebeb0 --- /dev/null +++ b/jacobi_kernel.F90 @@ -0,0 +1,18 @@ +module kernel + use iso_fortran_env, only: di=>int64, dp=>real64 + +contains + subroutine jacobi_offload_j2(Tab, TabNew, N, j) + real(dp), intent(in) :: Tab(N,N) + real(dp), intent(inout) :: TabNew(N,N) + integer, intent(in) :: N + integer :: i,j + !$omp declare target + + !$omp parallel do ! simd + do i = 2, N-1 + TabNew(i, j) = 0.25 * (Tab(i, j+1) + Tab(i, j-1) + Tab(i+1, j) + Tab(i-1, j)) + end do + !$omp end parallel do ! simd + end subroutine jacobi_offload_j2 +end module kernel