- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi.
Running Suse 10.1 on an x86_64 machine.
I'm getting a segmentation fault when I run a fortran 90 executable. The fortran code itself compiles fine - I'm using the intel fortran compiler: ifort (IFORT) 9.0 20051201.
Using idb I have tracked down the line causing the seg fault:
mat=reshape(bderi,(/npar*npar/))
I cannot figure out why this is happening... bderi is a big square matrix, with extents (npar, npar). npar is currently 10343. Running the code from within idb I've checked the sizes of both matrices and they are as they should be - mat a 1-dim array of extent (npar*npar). Also up to this point the entries of bderi matrix seem fine...but when I check mat matrix the entries are mostly zero - which they shouldn't be... and then I get a segmetation fault when the line above is executed. Would be grateful if anyone might be able to point me in the right directrion here - I don't have a lot of programming experience! thanks.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
My guess is that the compiler is creating a temporary value for the result of the reshape on the stack and you've exceeded your stacksize limit. You can try raising the stacksize limit. If you were using a current 9.1 compiler, you could also use the -heap-arrays switch that causes these array temps to be allocated on the heap.
I suppose it's possible there's a compiler bug, but the stack issue seems more probable. I would suggest updating the compiler if you can. The version you have is more than a year old and is unsupported.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Although a little further along the line I am now running into a new error:
forrtl: severe (41): insufficient virtual memory
this I don't understand as the virtual memory is set to unlimited...
Does anyone have any ideas as to how to resolve this error?
thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Have I been using a 32-bit compiler!? How can I tell?
ifort (IFORT) 9.0 20051201
this is the compiler I've been using to compile code on a 64-bit machine...just by invoking ifort
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The banner that displays when "ifort" is invoked should say 32-bit or "EM64T" for 64-bit. The path to the 64-bit ifort will contain /fce/ - the 32-bit compiler is /fc/. Check the "source" command you use to make ifort available. Also, the 64-bit debugger is /idbe/.
Please note that 9.0 is not a supported version of the compiler. 9.1 is current.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page