'var$2004' is being used without being defined

'var$2004' is being used without being defined

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

 

5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

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.

Cita:

Kevin Davis (Intel) escribió:

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

Attachments: 

AttachmentSize
Download source.F785 bytes

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

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

www.quickthreadprogramming.com

Leave a Comment

Please sign in to add a comment. Not a member? Join today