Fortran - compilator dependent, intrinsic array manipulation, memory problem

  • Fortran
  • Thread starter lacek
  • Start date
  • #1
2
0

Main Question or Discussion Point

Welcome all,

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
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.
 

Answers and Replies

  • #2
AlephZero
Science Advisor
Homework Helper
6,994
291
I guess cshift() is creating a temporary array somewhere. That seems a reasonable thing for it to do, since it function doesn't "know" you are just assigning its output to another variable. For example your code might say something like
Code:
inp=(cshift(outp,1) + cshift(outp,2))/2
I think you need to find out if you can control where temporaries are created (on the stack or the heap) and/or how to make the stack big enough. Those things are compiler-dependent, which is why the defaults "work" for one compiler but not for the other.
 

Related Threads on Fortran - compilator dependent, intrinsic array manipulation, memory problem

Replies
1
Views
4K
Replies
1
Views
3K
  • Last Post
Replies
6
Views
2K
  • Last Post
Replies
4
Views
2K
  • Last Post
Replies
2
Views
3K
Replies
6
Views
709
  • Last Post
Replies
10
Views
3K
  • Last Post
Replies
4
Views
7K
  • Last Post
Replies
4
Views
4K
Top