URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gfortran.dg/] [coarray_13.f90] - Rev 700
Go to most recent revision | Compare with Previous | Blame | View Log
! { dg-do run }! { dg-options "-fcoarray=single -fcheck=bounds" }!! Coarray support -- allocatable array coarrays! -- intrinsic procedures! PR fortran/18918! PR fortran/43931!program testimplicit noneinteger,allocatable :: B(:)[:]call one()call two()allocate(B(3)[-4:*])call three(3,B,1)call three_a(3,B)call three_b(3,B)call four(B)call five()containssubroutine one()integer, allocatable :: a(:)[:,:,:]allocate(a(1)[-4:9,8,4:*])if (this_image(a,dim=1) /= -4_8) call abort()if (lcobound (a,dim=1) /= -4_8) call abort()if (ucobound (a,dim=1) /= 9_8) call abort()if (this_image(a,dim=2) /= 1_8) call abort()if (lcobound (a,dim=2) /= 1_8) call abort()if (ucobound (a,dim=2) /= 8_8) call abort()if (this_image(a,dim=3) /= 4_8) call abort()if (lcobound (a,dim=3) /= 4_8) call abort()if (ucobound (a,dim=3) /= 4_8) call abort()if (any(this_image(a) /= [-4_8, 1_8, 4_8])) call abort()if (any(lcobound (a) /= [-4_8, 1_8, 4_8])) call abort()if (any(ucobound (a) /= [9_8, 8_8, 4_8])) call abort()end subroutine onesubroutine two()integer, allocatable :: a(:)[:,:,:]allocate(a(1)[-4:9,8,4:*])if (this_image(a,dim=1) /= -4) call abort()if (lcobound (a,dim=1) /= -4) call abort()if (ucobound (a,dim=1) /= 9) call abort()if (this_image(a,dim=2) /= 1) call abort()if (lcobound (a,dim=2) /= 1) call abort()if (ucobound (a,dim=2) /= 8) call abort()if (this_image(a,dim=3) /= 4) call abort()if (lcobound (a,dim=3) /= 4) call abort()if (ucobound (a,dim=3) /= 4) call abort()if (any(this_image(a) /= [-4, 1, 4])) call abort()if (any(lcobound (a) /= [-4, 1, 4])) call abort()if (any(ucobound (a) /= [9, 8, 4])) call abort()end subroutine twosubroutine three(n,A, n2)integer :: n, n2integer :: A(3)[n:*]A(1) = 42if (A(1) /= 42) call abort()A(1)[n2] = -42if (A(1)[n2] /= -42) call abort()if (this_image(A,dim=1) /= n) call abort()if (lcobound (A,dim=1) /= n) call abort()if (ucobound (A,dim=1) /= n) call abort()if (any(this_image(A) /= n)) call abort()if (any(lcobound (A) /= n)) call abort()if (any(ucobound (A) /= n)) call abort()end subroutine threesubroutine three_a(n,A)integer :: ninteger :: A(3)[n+2:n+5,n-1:*]A(1) = 42if (A(1) /= 42) call abort()A(1)[4,n] = -42if (A(1)[4,n] /= -42) call abort()if (this_image(A,dim=1) /= n+2) call abort()if (lcobound (A,dim=1) /= n+2) call abort()if (ucobound (A,dim=1) /= n+5) call abort()if (this_image(A,dim=2) /= n-1) call abort()if (lcobound (A,dim=2) /= n-1) call abort()if (ucobound (A,dim=2) /= n-1) call abort()if (any(this_image(A) /= [n+2,n-1])) call abort()if (any(lcobound (A) /= [n+2,n-1])) call abort()if (any(ucobound (A) /= [n+5,n-1])) call abort()end subroutine three_asubroutine three_b(n,A)integer :: ninteger :: A(-1:3,0:4,-2:5,-4:7)[n+2:n+5,n-1:*]A(-1,0,-2,-4) = 42if (A(-1,0,-2,-4) /= 42) call abort()A(1,0,-2,-4) = 99if (A(1,0,-2,-4) /= 99) call abort()if (this_image(A,dim=1) /= n+2) call abort()if (lcobound (A,dim=1) /= n+2) call abort()if (ucobound (A,dim=1) /= n+5) call abort()if (this_image(A,dim=2) /= n-1) call abort()if (lcobound (A,dim=2) /= n-1) call abort()if (ucobound (A,dim=2) /= n-1) call abort()if (any(this_image(A) /= [n+2,n-1])) call abort()if (any(lcobound (A) /= [n+2,n-1])) call abort()if (any(ucobound (A) /= [n+5,n-1])) call abort()end subroutine three_bsubroutine four(A)integer, allocatable :: A(:)[:]if (this_image(A,dim=1) /= -4_8) call abort()if (lcobound (A,dim=1) /= -4_8) call abort()if (ucobound (A,dim=1) /= -4_8) call abort()end subroutine foursubroutine five()integer, save :: foo(2)[5:7,4:*]integer :: ii = 1foo(1)[5,4] = 42if (foo(1)[5,4] /= 42) call abort()if (this_image(foo,dim=i) /= 5) call abort()if (lcobound(foo,dim=i) /= 5) call abort()if (ucobound(foo,dim=i) /= 7) call abort()i = 2if (this_image(foo,dim=i) /= 4) call abort()if (lcobound(foo,dim=i) /= 4) call abort()if (ucobound(foo,dim=i) /= 4) call abort()end subroutine fiveend program test
Go to most recent revision | Compare with Previous | Blame | View Log
