blob: 426c1dd463ac7059a6119e45d0da08f15fcc9e89 [file] [log] [blame]
! { dg-do run }
!
! From the HPCTools Group of University of Houston
!
! For a coindexed object, its cosubscript list determines the image
! index in the same way that a subscript list determines the subscript
! order value for an array element
! Run at least with 3 images for the normal checking code
! Modified to also accept a single or two images
program cosubscript_test
implicit none
integer, parameter :: X = 3, Y = 2
integer, parameter :: P = 1, Q = -1
integer :: me
integer :: i,j,k
integer :: scalar[0:P, -1:Q, *]
integer :: dim3_max, counter
logical :: is_err
is_err = .false.
me = this_image()
scalar = me
dim3_max = num_images() / ( (P+1)*(Q+2) )
sync all
if (num_images() == 1) then
k = 1
j = -1
i = 0
if (scalar[i,j,k] /= this_image()) STOP 1
stop "OK"
else if (num_images() == 2) then
k = 1
j = -1
counter = 0
do i = 0,P
counter = counter+1
if (counter /= scalar[i,j,k]) STOP 1
end do
stop "OK"
end if
! ******* SCALAR ***********
counter = 0
do k = 1, dim3_max
do j = -1,Q
do i = 0,P
counter = counter+1
if (counter /= scalar[i,j,k]) then
print * , "Error in cosubscript translation scalar"
print * , "[", i,",",j,",",k,"] = ",scalar[i,j,k],"/=",counter
is_err = .true.
end if
end do
end do
end do
if (is_err) then
STOP 2
end if
end program cosubscript_test