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.'