Static Analysis Problem Type Reference
An OpenMP* NUM_THREADS clause expression must not have any side-effects.
It is unspecified whether, in what order, or how many times any side-effects of the evaluation of the NUM_THREADS clause expressions occur. Therefore, the presence of a NUM_THREADS clause expression with side-effects renders the program undefined.
|
ID |
Code Location |
Description |
|---|---|---|
|
1 |
OpenMP usage error |
The place where the bad NUM_THREADS clause expression was specified |
real r
integer j, mysub
common /cc/ j
r = 2.7
j = 1
!$OMP PARALLEL SHARED(r) NUM_THREADS(mysub() + j)
call sub(r)
!$OMP END PARALLEL
print *, r, j
end
function mysub()
integer mysub, j
common /cc/ j
j = 2
mysub = 1
end function mysub
subroutine sub(r)
real r
r = r + 9.8
end subroutine sub