program atom !$ use OMP_LIB implicit none integer :: rank, tnot real(8) :: val val = 10.0d0 !$OMP PARALLEL SHARED(val) PRIVATE(rank) DEFAULT(SHARED) rank = OMP_GET_THREAD_NUM (); tnot = OMP_GET_NUM_THREADS() !$OMP ATOMIC val = val - 1 ! !$OMP BARRIER !$OMP CRITICAL(CRI0) val = val**2 val = sqrt(val) !$OMP END CRITICAL(CRI0) print *,rank,val !$OMP END PARALLEL print *,val end program atom