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 l = .not. is_f5 .and. e5 .ne. 8
95 l = l .or. (is_f5 .and. 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