Add support for ARMv8-R architecture
[official-gcc.git] / libgomp / testsuite / libgomp.fortran / lastprivate1.f90
blob91bb96ca75ad3ac6f0db8a16f84ffec3caf5b82d
1 program lastprivate
2 integer :: i
3 common /c/ i
4 !$omp parallel num_threads (4)
5 call test1
6 !$omp end parallel
7 if (i .ne. 21) call abort
8 !$omp parallel num_threads (4)
9 call test2
10 !$omp end parallel
11 if (i .ne. 64) call abort
12 !$omp parallel num_threads (4)
13 call test3
14 !$omp end parallel
15 if (i .ne. 14) call abort
16 call test4
17 call test5
18 call test6
19 call test7
20 call test8
21 call test9
22 call test10
23 call test11
24 call test12
25 contains
26 subroutine test1
27 integer :: i
28 common /c/ i
29 !$omp do lastprivate (i)
30 do i = 1, 20
31 end do
32 end subroutine test1
33 subroutine test2
34 integer :: i
35 common /c/ i
36 !$omp do lastprivate (i)
37 do i = 7, 61, 3
38 end do
39 end subroutine test2
40 function ret3 ()
41 integer :: ret3
42 ret3 = 3
43 end function ret3
44 subroutine test3
45 integer :: i
46 common /c/ i
47 !$omp do lastprivate (i)
48 do i = -10, 11, ret3 ()
49 end do
50 end subroutine test3
51 subroutine test4
52 integer :: j
53 !$omp parallel do lastprivate (j) num_threads (4) default (none)
54 do j = 1, 20
55 end do
56 if (j .ne. 21) call abort
57 end subroutine test4
58 subroutine test5
59 integer :: j
60 !$omp parallel do lastprivate (j) num_threads (4) default (none)
61 do j = 7, 61, 3
62 end do
63 if (j .ne. 64) call abort
64 end subroutine test5
65 subroutine test6
66 integer :: j
67 !$omp parallel do lastprivate (j) num_threads (4) default (none)
68 do j = -10, 11, ret3 ()
69 end do
70 if (j .ne. 14) call abort
71 end subroutine test6
72 subroutine test7
73 integer :: i
74 common /c/ i
75 !$omp parallel do lastprivate (i) num_threads (4) default (none)
76 do i = 1, 20
77 end do
78 if (i .ne. 21) call abort
79 end subroutine test7
80 subroutine test8
81 integer :: i
82 common /c/ i
83 !$omp parallel do lastprivate (i) num_threads (4) default (none)
84 do i = 7, 61, 3
85 end do
86 if (i .ne. 64) call abort
87 end subroutine test8
88 subroutine test9
89 integer :: i
90 common /c/ i
91 !$omp parallel do lastprivate (i) num_threads (4) default (none)
92 do i = -10, 11, ret3 ()
93 end do
94 if (i .ne. 14) call abort
95 end subroutine test9
96 subroutine test10
97 integer :: i
98 common /c/ i
99 !$omp parallel num_threads (4) default (none) shared (i)
100 !$omp do lastprivate (i)
101 do i = 1, 20
102 end do
103 !$omp end parallel
104 if (i .ne. 21) call abort
105 end subroutine test10
106 subroutine test11
107 integer :: i
108 common /c/ i
109 !$omp parallel num_threads (4) default (none) shared (i)
110 !$omp do lastprivate (i)
111 do i = 7, 61, 3
112 end do
113 !$omp end parallel
114 if (i .ne. 64) call abort
115 end subroutine test11
116 subroutine test12
117 integer :: i
118 common /c/ i
119 !$omp parallel num_threads (4) default (none) shared (i)
120 !$omp do lastprivate (i)
121 do i = -10, 11, ret3 ()
122 end do
123 !$omp end parallel
124 if (i .ne. 14) call abort
125 end subroutine test12
126 end program lastprivate