1! { dg-do compile }
2        SUBROUTINE S(N)
3        INTEGER N
4        REAL, DIMENSION(:), ALLOCATABLE :: A
5        REAL, DIMENSION(:), POINTER :: B
6        ALLOCATE (A(N))
7!$OMP SINGLE
8            ALLOCATE (B(N))
9        READ (11) A,B
10!$OMP END SINGLE COPYPRIVATE(A,B)
11        ! Variable A designates a private object
12        !   which has the same value in each thread
13        ! Variable B designates a shared object
14!$OMP BARRIER
15!$OMP SINGLE
16          DEALLOCATE (B)
17!$OMP END SINGLE NOWAIT
18      END SUBROUTINE S
19
20