Welcome all,
I have a following code:
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:
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.
I have a following code:
Code:
program aaaa
implicit none
double precision, dimension(:), allocatable :: inp,outp
integer ::n,i
read(*,*) n
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
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
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.