Test which checks the omp flush directive. 2.0 omp flush omp barrier INTEGER FUNCTION omp_flush() IMPLICIT NONE INTEGER result1, dummy, rank INTEGER omp_get_thread_num INTEGER result2 COMMON /orphvars/ result2 result1=0 result2=0 !$omp parallel private(rank) rank = omp_get_thread_num() !$omp barrier IF ( rank .EQ. 1 ) THEN result2 = 3 !$omp flush(result2) dummy = result2 END IF IF ( rank .EQ. 0 ) THEN call sleep(1) !$omp flush(result2) result1 = result2 END IF !$omp end parallel ! PRINT *,"1:", result1, "2:", result2, "dummy", dummy IF ( (result1 .EQ. result2) .AND. (result2 .EQ. dummy) .AND. & (result2 .EQ. 3) ) THEN = 1 ELSE = 0 END IF END