1 C******************************************************************************
2 C FILE: omp_workshare1.f
4 C OpenMP Example - Loop Work-sharing - Fortran Version
5 C In this example, the iterations of a loop are scheduled dynamically
6 C across the team of threads. A thread will perform CHUNK iterations
7 C at a time before being scheduled for the next CHUNK of work.
8 C AUTHOR: Blaise Barney 5/99
9 C LAST REVISED: 01/09/04
10 C******************************************************************************
14 INTEGER NTHREADS, TID, OMP_GET_NUM_THREADS,
15 + OMP_GET_THREAD_NUM, N, CHUNKSIZE, CHUNK, I
17 PARAMETER (CHUNKSIZE=10)
20 ! Some initializations
27 !$OMP PARALLEL SHARED(A,B,C,NTHREADS,CHUNK) PRIVATE(I,TID)
29 TID = OMP_GET_THREAD_NUM()
31 NTHREADS = OMP_GET_NUM_THREADS()
32 PRINT *, 'Number of threads =', NTHREADS
34 PRINT *, 'Thread',TID,' starting...'
36 !$OMP DO SCHEDULE(DYNAMIC,CHUNK)
39 WRITE(*,100) TID,I,C(I)
40 100 FORMAT(' Thread',I2,': C(',I3,')=',F8.2)
44 PRINT *, 'Thread',TID,' done.'