I am a little bit unsure where exactly this shall go, openmp or fortran but bear with me.
I have a small code (attached) that tries to decide what version of the openmp standard we use
[19:43:46 drFaustroll@circassia:~/playground/intel-bugs]: ifort --version
ifort (IFORT) 17.0.0 20160517
Copyright (C) 1985-2016 Intel Corporation. All rights reserved.
[19:43:52 drFaustroll@circassia:~/playground/intel-bugs]: ifort -o version.X version.F90 -fopenmp
[19:44:13 drFaustroll@circassia:~/playground/intel-bugs]: ./version.X
Openmp API Version F: 2.5
Openmp API Version C: 4.5
Hello from thread id 0
Hello from thread id 1
Hello from thread id 2
Hello from thread id 3
The number of threads is 4
Maximum number of threads is 4
I use for this the openmp_version variable from the openmp module to decode for fortran and for c _OPENMP
obviously the two shall give the same answer... but is not the case.
I can reproduce this and see where the two values originate/differ, but I don't have an explanation why. I escalated this to Development.
(Internal tracking id: DPD200413704)
(Resolution Update on 11/08/2016): This defect is fixed in the Intel® Parallel Studio XE 2017 Update 1 release (ifort Version 17.0.0.098 Build 20160721 - PSXE 2017.0.035 / CnL 2017.0.098 - Linux)