! { dg-do compile } REAL FUNCTION READ_NEXT() REAL, POINTER :: TMP !$OMP SINGLE ALLOCATE (TMP) !$OMP END SINGLE COPYPRIVATE (TMP) ! copies the pointer only !$OMP MASTER READ (11) TMP !$OMP END MASTER !$OMP BARRIER READ_NEXT = TMP !$OMP BARRIER !$OMP SINGLE DEALLOCATE (TMP) !$OMP END SINGLE NOWAIT END FUNCTION READ_NEXT