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