Andrzej Warzynski | 96d229c | 2021-02-04 11:14:57 +0000 | [diff] [blame] | 1 | ! RUN: %flang_fc1 -fdebug-unparse-with-symbols %s 2>&1 | FileCheck %s |
Andrzej Warzynski | e7be90b | 2021-04-12 12:27:49 +0000 | [diff] [blame] | 2 | ! RUN: %flang_fc1 -fopenmp -fdebug-unparse-with-symbols %s 2>&1 | FileCheck %s |
Eric Schweitz | 76fc3ab | 2018-10-10 11:44:15 -0700 | [diff] [blame] | 3 | ! CHECK-NOT: do *[1-9] |
| 4 | |
| 5 | program P |
| 6 | implicit none |
| 7 | integer OMP_GET_NUM_THREADS, OMP_GET_THREAD_NUM |
| 8 | integer NUMTHRDS, TID |
| 9 | integer N, CSZ, CNUM, I |
| 10 | parameter (N=100) |
| 11 | parameter (CSZ=10) |
| 12 | real A(N), B(N), C(N) |
| 13 | |
| 14 | do 10 I = 1, N |
| 15 | A(I) = I * 1.0 |
| 16 | 10 continue |
| 17 | |
| 18 | B = A |
| 19 | CNUM = CSZ |
| 20 | |
| 21 | !$OMP PARALLEL SHARED(A,B,C,NUMTHRDS,CNUM) PRIVATE(I,TID) |
| 22 | TID = OMP_GET_THREAD_NUM() |
| 23 | if (TID .EQ. 0) then |
| 24 | NUMTHRDS = OMP_GET_NUM_THREADS() |
| 25 | print *, "Number of threads =", NUMTHRDS |
| 26 | end if |
| 27 | print *, "Thread", TID, " is starting..." |
| 28 | |
| 29 | !$OMP DO SCHEDULE(DYNAMIC,CNUM) |
| 30 | do 20 I = 1, N |
| 31 | C(I) = A(I) + B(I) |
| 32 | write (*,100) TID, I, C(I) |
| 33 | 20 continue |
| 34 | !$OMP END DO NOWAIT |
| 35 | |
| 36 | print *, "Thread", TID, " done." |
| 37 | |
| 38 | !$OMP END PARALLEL |
| 39 | 100 format(" Thread", I2, ": C(", I3, ")=", F8.2) |
| 40 | end program P |