Test which checks the omp parallel sections lastprivate directive. 2.0 omp parallel sections lastprivate omp critical,omp parallel sections private INTEGER FUNCTION par_section_lastprivate() IMPLICIT NONE INTEGER sum, sum0, known_sum, i ,i0 sum = 0 sum0 = 0 i0 = -1 !$omp parallel sections lastprivate(i0)private(i0) private(i,sum0) !$omp section sum0 = 0 DO i=1, 399 sum0 = sum0 + i i0=i END DO !$omp critical sum = sum + sum0 !$omp end critical !$omp section sum0 = 0 DO i=400, 699 sum0 = sum0 + i i0 = i END DO !$omp critical sum = sum + sum0 !$omp end critical !$omp section sum0 = 0 DO i=700, 999 sum0 = sum0 + i i0 = i END DO !$omp critical sum = sum + sum0 !$omp end critical !$omp end parallel sections known_sum = (999*1000)/2 ! print *, "sum", sum, "ks", known_sum, i0 IF ( known_sum .EQ. sum .AND. i0 .EQ. 999 ) THEN = 1 ELSE = 0 END IF END