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