[Bug fortran/79313] New: associate statement inside openmp loop breaks OMP intrinisics
mlevy at ucar dot edu
gcc-bugzilla@gcc.gnu.org
Wed Feb 1 00:32:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79313
Bug ID: 79313
Summary: associate statement inside openmp loop breaks OMP
intrinisics
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: mlevy at ucar dot edu
Target Milestone: ---
Created attachment 40642
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40642&action=edit
Toy problem highlighting the issue
I get the following build-time errors if I try to access omp_get_thread_num()
and omp_get_num_threads() in an associate block [which has nothing to do with
those functions] while inside an OpenMP loop:
$ gfortran -fopenmp omptest.F90
omptest.F90:28:18:
write(*,100) omp_get_thread_num(), omp_get_num_threads()
1
Error: 'omp_get_thread_num' at (1) is not a function
omptest.F90:28:40:
write(*,100) omp_get_thread_num(), omp_get_num_threads()
1
Error: 'omp_get_num_threads' at (1) is not a function
If I remove the associate block (comment out lines 27 & 29) then the code
compiles and runs as expected*
I have verified that this error occurs with gfortran 4.6.4, 4.7.4, 4.8.5,
4.9.3, 5.0.1, 5.1.0, 5.2.0, 5.3.0, 5.4.0, 6.0.1, 6.1.0, and 6.3.0; 4.4.7 does
not support associate statements and I do not have easy access to a machine
with 4.5.Z or 6.2.Z (4.5 may predate associates as well).
* Expected output with 2 threads:
$ export OMP_NUM_THREADS=2
$ ./a.out
thread 0 / 2
thread 1 / 2
thread 0 / 1
thread 0 / 1
More information about the Gcc-bugs
mailing list