! @@name: master.1f ! @@type: F-fixed ! @@compilable: yes ! @@linkable: no ! @@expect: success SUBROUTINE MASTER_EXAMPLE( X, XOLD, N, TOL ) REAL X(*), XOLD(*), TOL INTEGER N INTEGER C, I, TOOBIG REAL ERROR, Y, AVERAGE EXTERNAL AVERAGE C = 0 TOOBIG = 1 !$OMP PARALLEL DO WHILE( TOOBIG > 0 ) !$OMP DO PRIVATE(I) DO I = 2, N-1 XOLD(I) = X(I) ENDDO !$OMP SINGLE TOOBIG = 0 !$OMP END SINGLE !$OMP DO PRIVATE(I,Y,ERROR), REDUCTION(+:TOOBIG) DO I = 2, N-1 Y = X(I) X(I) = AVERAGE( XOLD(I-1), X(I), XOLD(I+1) ) ERROR = Y-X(I) IF( ERROR > TOL .OR. ERROR < -TOL ) TOOBIG = TOOBIG+1 ENDDO !$OMP MASTER C = C + 1 PRINT *, 'Iteration ', C, 'TOOBIG=', TOOBIG !$OMP END MASTER ENDDO !$OMP END PARALLEL END SUBROUTINE MASTER_EXAMPLE