With ifort 19.x I get a segfault when I pass a temporary array of a certain length to an internal procedure. This works fine with gfortran and pgf90. Is this a bug in the compiler?
You are most likely running out of stack. Try compiling with -heap-arrays. .
You SEGFAULT here:
real ( 8), dimension(n) :: at,bt
Not in the subroutine.
And it is stack overflow just as Steve have pointed out.
For more complete information about compiler optimizations, see our Optimization Notice.