9 !$omp parallel firstprivate (f1) num_threads (2) reduction (.or.:l)
11 if (omp_get_thread_num () .eq
. 0) f1
= 8.5
12 if (omp_get_thread_num () .eq
. 1) f1
= 14.5
14 l
= l
.or
. (omp_get_thread_num () .eq
. 0 .and
. f1
.ne
. 8.5)
15 l
= l
.or
. (omp_get_thread_num () .eq
. 1 .and
. f1
.ne
. 14.5)
27 !$omp parallel firstprivate (e2) num_threads (2) reduction (.or.:l)
29 if (omp_get_thread_num () .eq
. 0) e2
= 8.5
30 if (omp_get_thread_num () .eq
. 1) e2
= 14.5
32 l
= l
.or
. (omp_get_thread_num () .eq
. 0 .and
. e2
.ne
. 8.5)
33 l
= l
.or
. (omp_get_thread_num () .eq
. 1 .and
. e2
.ne
. 14.5)
45 !$omp parallel firstprivate (f3, e3) num_threads (2) reduction (.or.:l)
47 l
= l
.or
. f3
.ne
. 6.5
48 if (omp_get_thread_num () .eq
. 0) e3
= 8.5
49 if (omp_get_thread_num () .eq
. 1) e3
= 14.5
52 l
= l
.or
. (omp_get_thread_num () .eq
. 0 .and
. e3
.ne
. 8.5)
53 l
= l
.or
. (omp_get_thread_num () .eq
. 1 .and
. e3
.ne
. 14.5)
54 l
= l
.or
. f3
.ne
. e3
- 4.5
59 function f4 () result (r4
)
63 entry e4 () result (s4
)
66 !$omp parallel firstprivate (r4, s4) num_threads (2) reduction (.or.:l)
68 l
= l
.or
. r4
.ne
. 6.5
69 if (omp_get_thread_num () .eq
. 0) s4
= 8.5
70 if (omp_get_thread_num () .eq
. 1) s4
= 14.5
73 l
= l
.or
. (omp_get_thread_num () .eq
. 0 .and
. s4
.ne
. 8.5)
74 l
= l
.or
. (omp_get_thread_num () .eq
. 1 .and
. s4
.ne
. 14.5)
75 l
= l
.or
. r4
.ne
. s4
- 4.5
92 !$omp parallel firstprivate (f5, e5) shared (is_f5) num_threads (2) &
93 !$omp reduction (.or.:l)
94 if (.not
. is_f5
) l
= l
.or
. e5
.ne
. 8
95 if (is_f5
) l
= l
.or
. f5
.ne
. 6.5
96 if (omp_get_thread_num () .eq
. 0) e5
= 8
97 if (omp_get_thread_num () .eq
. 1) e5
= 14
100 l
= l
.or
. (omp_get_thread_num () .eq
. 0 .and
. e5
.ne
. 8)
101 l
= l
.or
. (omp_get_thread_num () .eq
. 1 .and
. e5
.ne
. 14)
102 l
= l
.or
. f5
.ne
. e5
- 4.5
106 if (.not
. is_f5
) e5
= 8
109 real :: f1
, f2
, e2
, f3
, e3
, f4
, e4
, f5
111 if (f1 () .ne
. -2.5) call abort
112 if (f2 () .ne
. 7.5) call abort
113 if (e2 () .ne
. 7.5) call abort
114 if (f3 () .ne
. 0.5) call abort
115 if (e3 () .ne
. 0.5) call abort
116 if (f4 () .ne
. -0.5) call abort
117 if (e4 () .ne
. -0.5) call abort
118 if (f5 (.true
.) .ne
. -2.5) call abort
119 if (e5 (.false
.) .ne
. 8) call abort