Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Puzzling "forrtl: severe (174)"

lrcs
Beginner
406 Views
Ifort version 10.1
Compile flags core2 -i4 -r8 -stand f03 -vec-report0 -mcmodel=medium -shared-intel -heap-arrays 1 -warn none -g -traceback -fno-inline-functions -check all -warn declarations -warn unused

Im working with a big, Fortran, mpi program. It works great when compiled with 11.1, but dies when compiled with 10.1. It needs to be run with both, so Im looking for a work-around or compiler options.

forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
myprograma.x.stat 0000000000E12924 Unknown Unknown Unknown

After much debugging, have narrowed it down to the below line. Note: this line executes just fine for some test cases even with 10.1.

read(File%UNIT, POS=FilePos) TBlock

TBlock(:,:) is complex(8), allocatable, and has just been allocated to a not-too-large size (less than 100x100).
FilePos is integer(8), passed in as intent(In)
File%Unit is integer
File is passed in as intent(InOut)

Any help greatly appreciated.

Laura
0 Kudos
2 Replies
TimP
Honored Contributor III
406 Views
If you must use ifort 10.1, check that you are using the final update.
0 Kudos
Ron_Green
Moderator
406 Views
Quoting - lrcs
Ifort version 10.1
Compile flags core2 -i4 -r8 -stand f03 -vec-report0 -mcmodel=medium -shared-intel -heap-arrays 1 -warn none -g -traceback -fno-inline-functions -check all -warn declarations -warn unused

Im working with a big, Fortran, mpi program. It works great when compiled with 11.1, but dies when compiled with 10.1. It needs to be run with both, so Im looking for a work-around or compiler options.

forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
myprograma.x.stat 0000000000E12924 Unknown Unknown Unknown

After much debugging, have narrowed it down to the below line. Note: this line executes just fine for some test cases even with 10.1.

read(File%UNIT, POS=FilePos) TBlock

TBlock(:,:) is complex(8), allocatable, and has just been allocated to a not-too-large size (less than 100x100).
FilePos is integer(8), passed in as intent(In)
File%Unit is integer
File is passed in as intent(InOut)

Any help greatly appreciated.

Laura

Laura,

First, for -g -traceback to work, you must also link with ifort using these options. This may help confirm the source line where the segv is occurring.

And just to be sure, sometimes mpiexec or mpirun job launching does not inherit the environment from the shell invoking the mpi run (although most modern MPICH/MVAPICH/OpenMPI handle this well, older versions were not so good about preserving env vars). Do you put the appropriate 'source /opt/intel/fce/10.1.0xx/bin/ifortvars.sh' in your .profile or .bashrc file for the 10.1 executable run? Or if you use LSF, PBS, or some other batch system, do you put the 'source ...' line in the batch script?

The fact that 11.1 works and 10.1 doesn't has me thinking that you may be hitting a bug in the 10.1 compiler. Here's a test: run the 10.1 compiled binary BUT set the path to the newer 11.1 compiler. This will cause the binary to pick up the newer Fortran runtime libraries. If this works, then you can bet that you've run up against a bug in the 10.1 runtime.

good hunting, let us know if this helps.

ron
0 Kudos
Reply