! { dg-do run }

type type1
  integer, allocatable :: arr1(:,:)
end type type1

type type2
  type(type1) :: t1
end type type2

type type3
  type(type2) :: t2(20)
end type type3

type type4
  type(type3), allocatable :: t3(:)
end type type4

integer :: i, j, k

type(type4), allocatable :: var1(:)
type(type4) :: var2
type(type3) :: var3

allocate(var1(1:20))
do i=1,20
  allocate(var1(i)%t3(1:20))
  do j=1,20
    do k=1,20
      allocate(var1(i)%t3(j)%t2(k)%t1%arr1(1:20,1:20))
    end do
  end do
end do

allocate(var2%t3(1:20))
do i=1,20
  do j=1,20
    allocate(var2%t3(i)%t2(j)%t1%arr1(1:20,1:20))
  end do
end do

do i=1,20
  do j=1,20
    do k=1,20
      var1(i)%t3(j)%t2(k)%t1%arr1(:,:) = 0
    end do
    var2%t3(i)%t2(j)%t1%arr1(:,:) = 0
  end do
end do

!$acc enter data copyin(var2%t3(4)%t2(3)%t1%arr1(:,:))
!$acc enter data copyin(var1(5)%t3(4)%t2(3)%t1%arr1(:,:))

var2%t3(4)%t2(3)%t1%arr1(:,:) = 5
var1(5)%t3(4)%t2(3)%t1%arr1(:,:) = 4

!$acc update device(var2%t3(4)%t2(3)%t1%arr1)
!$acc update device(var1(5)%t3(4)%t2(3)%t1%arr1)

!$acc exit data copyout(var1(5)%t3(4)%t2(3)%t1%arr1(:,:))
!$acc exit data copyout(var2%t3(4)%t2(3)%t1%arr1(:,:))

do i=1,20
  do j=1,20
    do k=1,20
      if (i.eq.5 .and. j.eq.4 .and. k.eq.3) then
        if (any(var1(i)%t3(j)%t2(k)%t1%arr1 .ne. 4)) stop 1
      else
        if (any(var1(i)%t3(j)%t2(k)%t1%arr1 .ne. 0)) stop 2
      end if
    end do
    if (i.eq.4 .and. j.eq.3) then
      if (any(var2%t3(i)%t2(j)%t1%arr1 .ne. 5)) stop 3
    else
      if (any(var2%t3(i)%t2(j)%t1%arr1 .ne. 0)) stop 4
    end if
  end do
end do

do i=1,20
  allocate(var3%t2(i)%t1%arr1(1:20, 1:20))
  var3%t2(i)%t1%arr1(:,:) = 0
end do

!$acc enter data copyin(var3)
!$acc enter data copyin(var3%t2(:))
!$acc enter data copyin(var3%t2(5)%t1)
!$acc data copyin(var3%t2(5)%t1%arr1)

!$acc serial present(var3%t2(5)%t1%arr1)
! { dg-warning "using vector_length \\(32\\), ignoring 1" "" { target openacc_nvidia_accel_selected } .-1 }
var3%t2(5)%t1%arr1(:,:) = 6
!$acc end serial

!$acc update host(var3%t2(5)%t1%arr1)

!$acc end data
!$acc exit data delete(var3%t2(5)%t1)
!$acc exit data delete(var3%t2)
!$acc exit data delete(var3)

do i=1,20
  if (i.eq.5) then
    if (any(var3%t2(i)%t1%arr1.ne.6)) stop 5
  else
    if (any(var3%t2(i)%t1%arr1.ne.0)) stop 6
  end if
end do

end
