- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi all,
I am encountering a strange message related to run time check.
I compiled with ifort 12.1.3.293 build 20120212 on linux64 with following options : -g -O0 -fp-model precise -openmp -Dmkl -ftz -extend-source -DFCCI -check uninit -fpe0 -ftrapuv -traceback -lefence
Running my program leads to :
forrtl: severe (193): Run-Time Check Failure. The variable 'mysource_$ICUT' is being used without being defined
Image PC Routine Line Source
e_mainline_linux6 0000000003B9E426 mysource_ 371 mysource.F
Line 371 is a ENDDO statement. ICUT is clearly defined with this DO/ENDDO block :
344 : DO ICUT=1,NBCUT
...
371 : ENDDO ! next ICUT
Seting ICUT=0 at the begining of the subroutine leads to :
forrtl: severe (193): Run-Time Check Failure. The variable 'var$2004' is being used without being defined
Image PC Routine Line Source
e_mainline_linux6 0000000003B9E426 mysource_ 371 mysource.F
But String "2004" does not occur in any source file.
Thanks for any help.
Thierry
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We have received other reports of this type of error and compiler confusion in the past that were fixed in more current releases. Your case appears to be a defect. The 12.1 is rather old release.
If you can post a complete reproducer I can verify the error and whether this has already been fixed in a newer release.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Kevin Davis (Intel) wrote:
If you can post a complete reproducer I can verify the error and whether this has already been fixed in a newer release.
In fact it seems related to a segmentation fault. Using modules leads to "-uninit" issue instead of SIGSEGV signal.
I was able to reproduce with the attached source file.
Compilation command is :
ifort source.F -g -O0 -fp-model precise -openmp -Dmkl -ftz -extend-source -DFCCI -check uninit -fpe0 -ftrapuv -traceback -lefence
Execution leads to :
forrtl: severe (193): Run-Time Check Failure. The variable 'idst3$DIST_PCUT' is being used without being defined
Image PC Routine Line Source
a.out 000000000040319A defect_IP_idst3 31 source.F
Thierry
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In this particular cutdown program, I changed "check uninit" to "check bounds" and got a bounds violation.
Oh, and yes, it gave the seemingly-bogus uninitialized message with the latest 14.0 compiler too.
Anyway, if you look in the cutdown program, the do-loop variable I runs from 1->101, but the size of that dimension is only 100.
Would you please try the experiment with your original program, to change "check uninit" to "check bounds" ?
thank you --
--Lorri
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
FWIW a variable that lies beyond the bounds of its dimension is also undefined. As to if this is trapped by the diagnostic code... probably a 50/50 proposition. As it would likely be using junk beyond the end of a flag table or looking for a special NaN.
Jim Dempsey
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page