blob: 45edff686be8ce174e8932692200032cc90a6541 [file] [log] [blame]
Jim Cownie18d84732014-05-10 17:02:09 +00001<ompts:test>
2<ompts:testdescription>Test which checks that omp_in_parallel returns false when called from a serial region and true when called within a parallel region.</ompts:testdescription>
3<ompts:ompversion>2.0</ompts:ompversion>
4<ompts:directive>omp_in_parallel</ompts:directive>
5<ompts:testcode>
6 INTEGER FUNCTION <ompts:testcode:functionname>omp_in_parallel</ompts:testcode:functionname>()
7! checks that false is returned when called from serial region
8! and true is returned when called within parallel region
9 LOGICAL omp_in_parallel
10 <ompts:orphan:vars>
11! LOGICAL omp_in_parallel
12 LOGICAL serial, parallel
13 COMMON /orphvars/ serial, parallel
14 </ompts:orphan:vars>
15 serial=.TRUE.
16 parallel=.FALSE.
17
18 <ompts:orphan>
19 <ompts:check>
20 serial=omp_in_parallel()
21 </ompts:check>
22 </ompts:orphan>
23
24!$omp parallel
25!$omp single
26 <ompts:orphan>
27 <ompts:check>
28 parallel=omp_in_parallel();
29 </ompts:check>
30 </ompts:orphan>
31!$omp end single
32!$omp end parallel
33
34 IF ( (.NOT. serial) .AND. (parallel) ) THEN
35 <testfunctionname></testfunctionname>=1
36 ELSE
37 <testfunctionname></testfunctionname>=0
38 END IF
39 END FUNCTION
40</ompts:testcode>
41</ompts:test>