Mercurial > hg > CbC > CbC_gcc
comparison libgomp/testsuite/libgomp.fortran/collapse2.f90 @ 0:a06113de4d67
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 17 Jul 2009 14:47:48 +0900 |
parents | |
children | 84e7813d76e9 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a06113de4d67 |
---|---|
1 ! { dg-do run } | |
2 | |
3 program collapse2 | |
4 call test1 | |
5 call test2 | |
6 contains | |
7 subroutine test1 | |
8 integer :: i, j, k, a(1:3, 4:6, 5:7) | |
9 logical :: l | |
10 l = .false. | |
11 a(:, :, :) = 0 | |
12 !$omp parallel do collapse(4 - 1) schedule(static, 4) | |
13 do 164 i = 1, 3 | |
14 do 164 j = 4, 6 | |
15 do 164 k = 5, 7 | |
16 a(i, j, k) = i + j + k | |
17 164 end do | |
18 !$omp parallel do collapse(2) reduction(.or.:l) | |
19 firstdo: do i = 1, 3 | |
20 do j = 4, 6 | |
21 do k = 5, 7 | |
22 if (a(i, j, k) .ne. (i + j + k)) l = .true. | |
23 end do | |
24 end do | |
25 end do firstdo | |
26 !$omp end parallel do | |
27 if (l) call abort | |
28 end subroutine test1 | |
29 | |
30 subroutine test2 | |
31 integer :: a(3,3,3), k, kk, kkk, l, ll, lll | |
32 !$omp do collapse(3) | |
33 do 115 k=1,3 | |
34 dokk: do kk=1,3 | |
35 do kkk=1,3 | |
36 a(k,kk,kkk) = 1 | |
37 enddo | |
38 enddo dokk | |
39 115 continue | |
40 if (any(a(1:3,1:3,1:3).ne.1)) call abort | |
41 | |
42 !$omp do collapse(3) | |
43 dol: do 120 l=1,3 | |
44 doll: do ll=1,3 | |
45 do lll=1,3 | |
46 a(l,ll,lll) = 2 | |
47 enddo | |
48 enddo doll | |
49 120 end do dol | |
50 if (any(a(1:3,1:3,1:3).ne.2)) call abort | |
51 end subroutine test2 | |
52 | |
53 end program collapse2 |