blob: be68188ec981c84c8eab179020cf87b6697137b9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
! { dg-do compile }
SUBROUTINE DO_BY_16(X, IAM, IPOINTS)
REAL X(*)
INTEGER IAM, IPOINTS
END SUBROUTINE DO_BY_16
SUBROUTINE SUBA36(X, NPOINTS)
INTEGER NPOINTS
REAL X(NPOINTS)
INTEGER IAM, IPOINTS
EXTERNAL OMP_SET_DYNAMIC, OMP_SET_NUM_THREADS
INTEGER OMP_GET_NUM_THREADS, OMP_GET_THREAD_NUM
CALL OMP_SET_DYNAMIC(.FALSE.)
CALL OMP_SET_NUM_THREADS(16)
!$OMP PARALLEL SHARED(X,NPOINTS) PRIVATE(IAM, IPOINTS)
IF (OMP_GET_NUM_THREADS() .NE. 16) THEN
STOP
ENDIF
IAM = OMP_GET_THREAD_NUM()
IPOINTS = NPOINTS/16
CALL DO_BY_16(X,IAM,IPOINTS)
!$OMP END PARALLEL
END SUBROUTINE SUBA36
|