blob: 28b809017271eb91f29c8ff1fcd3fed20bd81a3a [file] [log] [blame]
Jim Cownie18d84732014-05-10 17:02:09 +00001<ompts:test>
2<ompts:testdescription>Test which checks the parallel section private clause.</ompts:testdescription>
3<ompts:ompversion>2.0</ompts:ompversion>
4<ompts:directive>omp parallel section private</ompts:directive>
5<ompts:dependences>omp critical</ompts:dependences>
6<ompts:testcode>
7 INTEGER FUNCTION <ompts:testcode:functionname>section_private</ompts:testcode:functionname>()
8 IMPLICIT NONE
9 INTEGER known_sum
10<ompts:orphan:vars>
11 INTEGER sum,sum0,i
12 COMMON /orphvars/ sum,sum0,i
13</ompts:orphan:vars>
14
15 sum = 7
16 sum0 = 0
17!$omp parallel
18 <ompts:orphan>
19!$omp sections <ompts:check>private(sum0,i)</ompts:check><ompts:crosscheck>private(i)</ompts:crosscheck>
20!$omp section
21 sum0 = 0
22 DO i=1, 399
23 sum0 = sum0 + i
24 END DO
25!$omp critical
26 sum = sum + sum0
27!$omp end critical
28!$omp section
29 sum0 = 0
30 DO i=400, 699
31 sum0 = sum0 + i
32 END DO
33!$omp critical
34 sum = sum + sum0
35!$omp end critical
36!$omp section
37 sum0 = 0
38 DO i=700, 999
39 sum0 = sum0 + i
40 END DO
41!$omp critical
42 sum = sum + sum0
43!$omp end critical
44!$omp end sections
45 </ompts:orphan>
46!$omp end parallel
47 known_sum = (999*1000)/2+7
48 IF ( known_sum .EQ. sum) THEN
49 <testfunctionname></testfunctionname> = 1
50 ELSE
51 <testfunctionname></testfunctionname> = 0
52 END IF
53 END
54</ompts:testcode>
55</ompts:test>