- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Upon trying to compile a box model (effectively: https://github.com/barronh/DSMACC ) with a very large dataset, I get the following bug:
ifort -cpp -fp-model strict -c model_Rates.f90
/tmp/ifortn2jCHh.i90: catastrophic error: **Internal compiler error: segmentation violation signal raised** Please report this error along with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explicit cause of this error.
compilation aborted for model_Rates.f90 (code 1)
make: *** [model_Rates.o] Error 1
The program works fine normally, however with the large dataset I might have to concatenate a couple of lines as I reach the continuation line limit. That said these files then compile normally, until I encounter the above. I am running on a computer with 256gb memory (although I can increase this if needed), so that shouldn't be a problem.
Has anyone got any suggestions on what I could try to resolve this?
Thanks in advance!
P.S. I am using ifort-13 and openSuse.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There is no model_rates.f90 in the sources you linked to. Can you tell us how to reproduce the error? Can you try a newer compiler? (13 is a few years old and we've fixed lots of bugs since then.) Are you using the 64-bit "intel64" compiler?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Steve,
Yes I am using the 64 bit compiler. As for updating this, I have submitted a request to the sys admin, although it may take a little while until this happens.
A copy of the rates file is available here.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The file for which you provided a link in #3 has been truncated to a length of 0x84000, and ends in the middle of an assignment statement.
- 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
The current Windows compiler reproduces the ICE, when apparently it should complain about the missing modules.
300-odd continued source line statements may be breaking some internal compiler limit.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
From what I understand there is a 511 continuation line limit for the intel compiler. From my experience the compiler also throws up an error should this limit be exceeded. Are there any other limits, that I should be aware of?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There is certainly a bug or weakness here, in line with the usual position that any internal error is a fault in the compiler, and the failure to diagnose missing .mod files, which seems to be the first thing other compilers do. I'd still be concerned about the reliability of such compilicated continued source statements.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for the reproducer. There is indeed a 511-line limit, but as Tim says, if there is an internal limit being exceeded, you should get a reasonable error message, not an ICE. We'll take a look to see what is happening. (But given the time of year, it may be a couple of weeks before I hear anything,)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have escalated this as issue DPD200380297.
In Update_RCONST there is a "USE constants" after the assignment to R02. This is incorrectly positioned - it should be immediately after the SUBROUTINE line. This error doesn't affect the internal error, but you'll need to fix it. I found that if I split the assignment to R02 into two, assigning to R02A and R02B, then adding R02=R02A+R02B, the ICE went away. Perhaps this will allow you to continue.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I expect the fix for this to be in Update 2, planned for early February.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page