1! { dg-do run } 2 3program main 4 implicit none 5 real, allocatable :: myarr(:,:,:,:,:) 6 integer i, j, k, l, m 7 8 allocate(myarr(1:10,1:10,1:10,1:10,1:10)) 9 10 do i=1,10 11 do j=1,10 12 do k=1,10 13 do l=1,10 14 do m=1,10 15 myarr(m,l,k,j,i) = i+j+k+l+m 16 end do 17 end do 18 end do 19 end do 20 end do 21 22 do i=1,10 23 !$acc data copy(myarr(:,:,:,:,i)) 24 !$acc parallel loop collapse(4) present(myarr(:,:,:,:,i)) 25 do j=1,10 26 do k=1,10 27 do l=1,10 28 do m=1,10 29 myarr(m,l,k,j,i) = myarr(m,l,k,j,i) + 1 30 end do 31 end do 32 end do 33 end do 34 !$acc end parallel loop 35 !$acc end data 36 end do 37 38 do i=1,10 39 do j=1,10 40 do k=1,10 41 do l=1,10 42 do m=1,10 43 if (myarr(m,l,k,j,i) .ne. i+j+k+l+m+1) stop 1 44 end do 45 end do 46 end do 47 end do 48 end do 49 50end program main 51