Fortran - compilator dependent, intrinsic array manipulation, memory problem

• Fortran
Welcome all,

I have a following code:

Code:
program aaaa
implicit none

double precision, dimension(:), allocatable :: inp,outp
integer ::n,i

allocate(inp(n),outp(n))

write(*,*) allocated(inp), allocated(outp)

write(*,*) inp(1)
inp=cshift(outp,-size(outp)/2)
write(*,*) inp(1)

end program aaaa

It really does nothing - it just applies cyclic rotation of dynamically created array.
But when I use is for large n (in my case - over 10^6) then Segmentation fault occurs. More precisely this is the output:

Code:
T T
0.000000000000000E+000
Segmentation fault

I also discovered that by increasing the limit for stack memory the segmentation fault can be avoided. Clearly I am using cshift not appropriately.

Additionally the code perform does not exists when the compilation is done with gfortran, but it exists with ifort v12.0.0.

What is going on? I tried to compile with -check all, but it provides no info.

inp=(cshift(outp,1) + cshift(outp,2))/2