|  | <ompts:test> | 
|  | <ompts:testdescription>Test which checks the parallel section private clause.</ompts:testdescription> | 
|  | <ompts:ompversion>2.0</ompts:ompversion> | 
|  | <ompts:directive>omp parallel section private</ompts:directive> | 
|  | <ompts:dependences>omp critical</ompts:dependences> | 
|  | <ompts:testcode> | 
|  | INTEGER FUNCTION <ompts:testcode:functionname>par_section_private</ompts:testcode:functionname>() | 
|  | IMPLICIT NONE | 
|  | INTEGER sum, sum0, known_sum, i | 
|  | sum = 7 | 
|  | sum0 = 0 | 
|  | !$omp parallel sections<ompts:check>private(sum0,i)</ompts:check><ompts:crosscheck>private(i)</ompts:crosscheck> | 
|  | !$omp section | 
|  | sum0 = 0 | 
|  | DO i=1, 399 | 
|  | sum0 = sum0 + i | 
|  | END DO | 
|  | !$omp critical | 
|  | sum = sum + sum0 | 
|  | !$omp end critical | 
|  | !$omp section | 
|  | sum0 = 0 | 
|  | DO i=400, 699 | 
|  | sum0 = sum0 + i | 
|  | END DO | 
|  | !$omp critical | 
|  | sum = sum + sum0 | 
|  | !$omp end critical | 
|  | !$omp section | 
|  | sum0 = 0 | 
|  | DO i=700, 999 | 
|  | sum0 = sum0 + i | 
|  | END DO | 
|  | !$omp critical | 
|  | sum = sum + sum0 | 
|  | !$omp end critical | 
|  | !$omp end parallel sections | 
|  | known_sum = (999*1000)/2+7 | 
|  | IF ( known_sum .eq. sum ) then | 
|  | <testfunctionname></testfunctionname> = 1 | 
|  | ELSE | 
|  | <testfunctionname></testfunctionname> = 0 | 
|  | END IF | 
|  | END | 
|  | </ompts:testcode> | 
|  | </ompts:test> | 
|  |  | 
|  | integer function crschk_par_section_private() | 
|  | implicit none | 
|  | integer sum, sum0, known_sum, i | 
|  | sum = 7 | 
|  | sum0 = 0 | 
|  | !$omp parallel sections private(i) | 
|  | !$omp section | 
|  | sum0 = 0 | 
|  | do i=1, 399 | 
|  | sum0 = sum0 + i | 
|  | end do | 
|  | !$omp critical | 
|  | sum = sum + sum0 | 
|  | !$omp end critical | 
|  | !$omp section | 
|  | sum0 = 0 | 
|  | do i=400, 699 | 
|  | sum0 = sum0 + i | 
|  | end do | 
|  | !$omp critical | 
|  | sum = sum + sum0 | 
|  | !$omp end critical | 
|  | !$omp section | 
|  | sum0 = 0 | 
|  | do i=700, 999 | 
|  | sum0 = sum0 + i | 
|  | end do | 
|  | !$omp critical | 
|  | sum = sum + sum0 | 
|  | !$omp end critical | 
|  | !$omp end parallel sections | 
|  | known_sum = (999*1000)/2+7 | 
|  | if ( known_sum .eq. sum ) then | 
|  | crschk_par_section_private = 1 | 
|  | else | 
|  | crschk_par_section_private = 0 | 
|  | end if | 
|  | end | 
|  |  |