Hi,
I’m converting an MPI Fortran program of mine to utilise openmp as well, but I’m getting segmentation faults when using a pgi compiler. I have a stripped down test case which exhibits the problem:
Program main
Use omp_lib
Type group
Real(8), Pointer :: a(:),b(:)
End Type group
type(group) :: test
allocate(test%a(100),test%b(100))
!$OMP PARALLEL
!$OMP WORKSHARE
test%a = 2 *test%b
!$OMP END WORKSHARE
!$OMP END PARALLEL
end Program Main
Running the above code gives me a segmentation fault. If I change the WORKSHARE to be an explicit loop with an !$OMP DO, then it runs fine. If I change the Pointers to be Allocatable, then it runs fine. If I leave the Pointers “loose” rather than contained in type group, then it runs fine. If I switch to either intel or gnu compilers, then it runs fine.
I’ve replicated this problem using pgfortran versions 11.9.0, 12.8.0 and 12.9.0. No newer versions of pgi exist on this machine (Kraken over at the National Institute for Computational Sciences). I don’t compile with any flags, save for the one enabling openmp. Is this a compiler bug, and if so is there a better place to report it than this forum (assuming it’s not fixed in newer versions than I have access to)? Am I doing something illegal that I’m not noticing and intel/gnu are just letting slide?
Thanks in advance,
~Ben