1! { dg-do compile }
2      SUBROUTINE A12( X, XOLD, N, TOL )
3      REAL X(*), XOLD(*), TOL
4      INTEGER N
5      INTEGER C, I, TOOBIG
6      REAL ERROR, Y, AVERAGE
7      EXTERNAL AVERAGE
8      C=0
9      TOOBIG = 1
10!$OMP PARALLEL
11        DO WHILE( TOOBIG > 0 )
12!$OMP DO PRIVATE(I)
13            DO I = 2, N-1
14               XOLD(I) = X(I)
15            ENDDO
16!$OMP SINGLE
17            TOOBIG = 0
18!$OMP END SINGLE
19!$OMP DO PRIVATE(I,Y,ERROR), REDUCTION(+:TOOBIG)
20            DO I = 2, N-1
21               Y = X(I)
22               X(I) = AVERAGE( XOLD(I-1), X(I), XOLD(I+1) )
23               ERROR = Y-X(I)
24               IF( ERROR > TOL .OR. ERROR < -TOL ) TOOBIG = TOOBIG+1
25            ENDDO
26!$OMP MASTER
27            C=C+1
28            PRINT *, "Iteration ", C, " TOOBIG=", TOOBIG
29!$OMP END MASTER
30        ENDDO
31!$OMP END PARALLEL
32      END SUBROUTINE A12
33