1! { dg-do run }
2
3program main
4  integer, parameter :: n = 40
5  integer, allocatable :: ar(:,:,:)
6  integer :: i
7
8  allocate (ar(1:n,0:n-1,0:n-1))
9  !$acc enter data copyin (ar)
10
11  !$acc update host (ar)
12
13  !$acc update device (ar)
14
15  call update_ar (ar, n)
16
17  !$acc exit data copyout (ar)
18end program main
19
20subroutine update_ar (ar, n)
21  integer :: n
22  integer, dimension (1:n,0:n-1,0:n-1) :: ar
23
24  !$acc update host (ar)
25
26  !$acc update device (ar)
27end subroutine update_ar
28