2 C { dg-additional-options "-Wno-deprecated-declarations" }
6 DOUBLE PRECISION :: D
, E
8 INTEGER (KIND
= OMP_LOCK_KIND
) :: LCK
9 INTEGER (KIND
= OMP_NEST_LOCK_KIND
) :: NLCK
13 CALL OMP_INIT_LOCK
(LCK
)
14 CALL OMP_SET_LOCK
(LCK
)
15 IF (OMP_TEST_LOCK
(LCK
)) STOP 1
16 CALL OMP_UNSET_LOCK
(LCK
)
17 IF (.NOT
. OMP_TEST_LOCK
(LCK
)) STOP 2
18 IF (OMP_TEST_LOCK
(LCK
)) STOP 3
19 CALL OMP_UNSET_LOCK
(LCK
)
20 CALL OMP_DESTROY_LOCK
(LCK
)
22 CALL OMP_INIT_NEST_LOCK
(NLCK
)
23 IF (OMP_TEST_NEST_LOCK
(NLCK
) .NE
. 1) STOP 4
24 CALL OMP_SET_NEST_LOCK
(NLCK
)
25 IF (OMP_TEST_NEST_LOCK
(NLCK
) .NE
. 3) STOP 5
26 CALL OMP_UNSET_NEST_LOCK
(NLCK
)
27 CALL OMP_UNSET_NEST_LOCK
(NLCK
)
28 IF (OMP_TEST_NEST_LOCK
(NLCK
) .NE
. 2) STOP 6
29 CALL OMP_UNSET_NEST_LOCK
(NLCK
)
30 CALL OMP_UNSET_NEST_LOCK
(NLCK
)
31 CALL OMP_DESTROY_NEST_LOCK
(NLCK
)
33 CALL OMP_SET_DYNAMIC
(.TRUE
.)
34 IF (.NOT
. OMP_GET_DYNAMIC
()) STOP 7
35 CALL OMP_SET_DYNAMIC
(.FALSE
.)
36 IF (OMP_GET_DYNAMIC
()) STOP 8
38 CALL OMP_SET_NESTED
(.TRUE
.)
39 IF (.NOT
. OMP_GET_NESTED
()) STOP 9
40 CALL OMP_SET_NESTED
(.FALSE
.)
41 IF (OMP_GET_NESTED
()) STOP 10
43 CALL OMP_SET_NUM_THREADS
(5)
44 IF (OMP_GET_NUM_THREADS
() .NE
. 1) STOP 11
45 IF (OMP_GET_MAX_THREADS
() .NE
. 5) STOP 12
46 IF (OMP_GET_THREAD_NUM
() .NE
. 0) STOP 13
47 CALL OMP_SET_NUM_THREADS
(3)
48 IF (OMP_GET_NUM_THREADS
() .NE
. 1) STOP 14
49 IF (OMP_GET_MAX_THREADS
() .NE
. 3) STOP 15
50 IF (OMP_GET_THREAD_NUM
() .NE
. 0) STOP 16
52 C$OMP PARALLEL REDUCTION (.OR.:L)
53 L
= OMP_GET_NUM_THREADS
() .NE
. 3
54 L
= L
.OR
. (OMP_GET_THREAD_NUM
() .LT
. 0)
55 L
= L
.OR
. (OMP_GET_THREAD_NUM
() .GE
. 3)
57 L
= L
.OR
. (OMP_GET_THREAD_NUM
() .NE
. 0)
62 IF (OMP_GET_NUM_PROCS
() .LE
. 0) STOP 18
63 IF (OMP_IN_PARALLEL
()) STOP 19
64 C$OMP PARALLEL REDUCTION (.OR.:L)
65 L
= .NOT
. OMP_IN_PARALLEL
()
67 C$OMP PARALLEL REDUCTION (.OR.:L) IF (.TRUE.)
68 L
= .NOT
. OMP_IN_PARALLEL
()
75 C Negative precision is definitely wrong,
76 C bigger than 1s clock resolution is also strange
77 IF (D
.LE
. 0 .OR
. D
.GT
. 1.) STOP 22