4 logical :: l
, la (4), m
, ma (4), v
8 la
= (/.true
., .false
., .true
., .true
./)
10 ma
= (/.false
., .false
., .false
., .true
./)
14 !$omp parallel num_threads (3) private (n) reduction (.or.:v) &
15 !$omp & reduction (.and.:l, la) reduction (.or.:m, ma)
16 !$ if (.not. l .or. any (.not. la)) v = .true.
17 !$ if (m .or. any (ma)) v = .true.
18 n
= omp_get_thread_num ()
20 cnt
= omp_get_num_threads ()
24 else if (n
.eq
. 1) then
36 if (l
.or
. any (la
.neqv
. (/.true
., .false
., .false
., .false
./))) call abort
37 if (.not
. m
.or
. any (ma
.neqv
. (/.true
., .true
., .false
., .true
./))) call abort
41 la
= (/.true
., .false
., .true
., .true
./)
43 ma
= (/.false
., .false
., .false
., .true
./)
47 !$omp parallel num_threads (3) private (n) reduction (.or.:v) &
48 !$omp & reduction (.eqv.:l, la) reduction (.neqv.:m, ma)
49 !$ if (.not. l .or. any (.not. la)) v = .true.
50 !$ if (m .or. any (ma)) v = .true.
51 n
= omp_get_thread_num ()
53 cnt
= omp_get_num_threads ()
57 else if (n
.eq
. 1) then
69 if (.not
. l
.or
. any (la
.neqv
. (/.true
., .false
., .true
., .false
./))) call abort
70 if (.not
. m
.or
. any (ma
.neqv
. (/.false
., .true
., .false
., .true
./))) call abort