First things first, does this program fail when compiled at -O0?
Sorry for the late reply and thank you for suggestions.
With -O0, it got compiled and executed successfully. But taking very long time to execute.
With ifort, it took 22 min 58 sec. With openf90, was taking 91+ minutes.
Is it possible to get better performance witgh open64?
Try setting -O2 and/or some additional optimizations and see if it still segfaults. Did you try using a debugger?
When you compile the application -O2 how long does the program run the segmentation fault occurs?
I'm very sorry for late response. Actually I stopped working on this and also stopped using Open64 compiler for benchmarking.
With -O2 optimization, it segfaults at the start of execution.
With -O0 optimization, it executes for 2+ hours and segfaults. Here is the output:
# time ./a.out_OPEN64_O0 | tee Output_Open64_time
Re = 140.
Tau = 0.585714281
lib-4211 : UNRECOVERABLE library error
Unable to find error message (check NLSPATH, file lib.cat)
Encountered during a sequential formatted WRITE to unit 22
Fortran unit 22 is connected to a sequential formatted text file:
Current format: 31 FORMAT(2001f12.4)
> Dear Doug,
> I'm very sorry for late response. Actually I stopped working on
> this and also stopped using Open64 compiler for benchmarking.
> With -O2 optimization, it segfaults at the start of execution.
That seems promising in terms of diagnosing the problem.
Is there any chance you can send us the source and test case?
> With -O0 optimization, it executes for 2+ hours and segfaults. Here
> is the output:
> lib-4211 : UNRECOVERABLE library error
> Unable to find error message (check NLSPATH, file lib.cat)
The incomplete error message is known bug that we are working on.
Again we can look into the actual library problme if you are able to
send us the source and a test case.
> - Sangamesh
Please checkout the following thread:
For information on a work around to obtain Fortran library error messages.
Also for your segmentation fault problem at -O2. This might be due to a problem in the optimizer performs a load/store elimination optimization on subroutine parameter which is invalid when a parameter to a routine is read-only constant passed by reference. I attached a typescript containing an example, and several approaches to work around to problem.