URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [libgomp/] [testsuite/] [libgomp.fortran/] [allocatable1.f90] - Rev 320
Go to most recent revision | Compare with Previous | Blame | View Log
! { dg-do run }!$ use omp_libinteger, allocatable :: a(:, :)integer :: b(6, 3)integer :: i, jlogical :: k, lb(:, :) = 16l = .false.if (allocated (a)) call abort!$omp parallel private (a, b) reduction (.or.:l)l = l.or.allocated (a)allocate (a(3, 6))l = l.or..not.allocated (a)l = l.or.size(a).ne.18.or.size(a,1).ne.3.or.size(a,2).ne.6a(3, 2) = 1b(3, 2) = 1deallocate (a)l = l.or.allocated (a)!$omp end parallelif (allocated (a).or.l) call abortallocate (a(6, 3))a(:, :) = 3if (.not.allocated (a)) call abortl = l.or.size(a).ne.18.or.size(a,1).ne.6.or.size(a,2).ne.3if (l) call abort!$omp parallel private (a, b) reduction (.or.:l)l = l.or..not.allocated (a)a(3, 2) = 1b(3, 2) = 1!$omp end parallelif (l.or..not.allocated (a)) call abort!$omp parallel firstprivate (a, b) reduction (.or.:l)l = l.or..not.allocated (a)l = l.or.size(a).ne.18.or.size(a,1).ne.6.or.size(a,2).ne.3do i = 1, 6l = l.or.(a(i, 1).ne.3).or.(a(i, 2).ne.3)l = l.or.(a(i, 3).ne.3).or.(b(i, 1).ne.16)l = l.or.(b(i, 2).ne.16).or.(b(i, 3).ne.16)end doa(:, :) = omp_get_thread_num ()b(:, :) = omp_get_thread_num ()!$omp end parallelif (any (a.ne.3).or.any (b.ne.16).or.l) call abortk = .true.!$omp parallel do firstprivate (a, b, k) lastprivate (a, b) &!$omp & reduction (.or.:l)do i = 1, 36l = l.or..not.allocated (a)l = l.or.size(a).ne.18.or.size(a,1).ne.6.or.size(a,2).ne.3if (k) thendo j = 1, 6l = l.or.(a(j, 1).ne.3).or.(a(j, 2).ne.3)l = l.or.(a(j, 3).ne.3).or.(b(j, 1).ne.16)l = l.or.(b(j, 2).ne.16).or.(b(j, 3).ne.16)end dok = .false.end ifa(:, :) = i + 2b(:, :) = iend doif (any (a.ne.38).or.any (b.ne.36).or.l) call abortdeallocate (a)if (allocated (a)) call abortallocate (a (0:1, 0:3))a(:, :) = 0!$omp parallel do reduction (+:a) reduction (.or.:l) &!$omp & num_threads(3) schedule(static)do i = 0, 7l = l.or..not.allocated (a)l = l.or.size(a).ne.8.or.size(a,1).ne.2.or.size(a,2).ne.4a(modulo (i, 2), i / 2) = a(modulo (i, 2), i / 2) + ia(i / 4, modulo (i, 4)) = a(i / 4, modulo (i, 4)) + iend doif (l) call abortdo i = 0, 1do j = 0, 3if (a(i, j) .ne. (5*i + 3*j)) call abortend doend doend
Go to most recent revision | Compare with Previous | Blame | View Log
