Projet_SETI_RISC-V/riscv-gnu-toolchain/gcc/libgomp/testsuite/libgomp.oacc-fortran/update-dt-array.f90
2023-03-06 14:48:14 +01:00

53 lines
857 B
Fortran

! { dg-do run }
program myprog
type mytype
integer, allocatable :: myarr(:,:)
end type mytype
integer :: i
type(mytype), allocatable :: typearr(:)
allocate(typearr(1:100))
do i=1,100
allocate(typearr(i)%myarr(1:100,1:100))
end do
do i=1,100
typearr(i)%myarr(:,:) = 0
end do
!$acc enter data copyin(typearr)
do i=1,100
!$acc enter data copyin(typearr(i)%myarr)
end do
i=33
typearr(i)%myarr(:,:) = 50
!$acc update device(typearr(i)%myarr(:,:))
do i=1,100
!$acc exit data copyout(typearr(i)%myarr)
end do
!$acc exit data delete(typearr)
do i=1,100
if (i.eq.33) then
if (any(typearr(i)%myarr.ne.50)) stop 1
else
if (any(typearr(i)%myarr.ne.0)) stop 2
end if
end do
do i=1,100
deallocate(typearr(i)%myarr)
end do
deallocate(typearr)
end program myprog