Test which checks the omp parallel do private directive. 2.0 omp parallel do private par do reduction,omp flush SUBROUTINE do_some_work2() IMPLICIT NONE REAL i DOUBLE PRECISION sum INTRINSIC sqrt INCLUDE "omp_testsuite.f" sum = 0.0 i = 0 DO WHILE (i < LOOPCOUNT) sum = sum + sqrt(i) i = i + 1 END DO END !******************************************************************** INTEGER FUNCTION par_do_private() IMPLICIT NONE INTEGER sum,known_sum, i, i2, i3 INCLUDE "omp_testsuite.f" sum = 0 !$omp parallel do reduction(+:sum) private(i2) schedule(static,1) DO i=1, LOOPCOUNT i2 = i !$omp flush CALL do_some_work2() !$omp flush sum = sum + i2 END DO !$omp end parallel do known_sum = (LOOPCOUNT*(LOOPCOUNT+1))/2 IF ( known_sum .EQ. sum ) THEN = 1 ELSE = 0 END IF END