Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Intel Web Site Challenges

JNichols
New Contributor I
2,963 Views

I was looking at the post placed this week by INTEL on automatic variables.  I did a google search on automatic variables, just to read a bit of background.

I got the following search return from google, 

https://software.intel.com › develop › articles › fdiag6754 

 

But when I click on the link I get a generic introduction page for Intel Software.  

 

0 Kudos
31 Replies
Steve_Lionel
Honored Contributor III
2,333 Views

Intel has been deleting a lot of older pages, redirecting them back to the generic Intel Software page. Because this doesn't result in a 404 (page not found), search engines think the link is still valid. I'm incredibly annoyed that many of the still-valid articles I wrote for IDZ have been quietly deleted, eliminating this "institutional knowledge".  I have the FAQ page I wrote (not linked anymore from this forum, but still there), and at least a third of the links are now dead, so I can no longer refer people to them.

JohnNichols
Valued Contributor III
2,295 Views

One could take the long view of the classic engineer.  It is working, therefore I need to take it apart and fix it.  

0 Kudos
MWind2
New Contributor III
2,290 Views

Many Intel Phi article links do the same. Unless something is wrong, duplicate with no improved discussion, not resolved, or some other reason, why destroy? 

0 Kudos
JohnNichols
Valued Contributor III
2,266 Views

Further reading on automatics yields,

 integer ik
    automatic ik(200)

I can declare and then redeclare it with automatic to an array.  

This is really bizarre.  

it works and the ik(i) values are all set in the Fortran run to -85993940 --   

0 Kudos
Steve_Lionel
Honored Contributor III
2,253 Views

AUTOMATIC as a keyword is an ancient extension and is now obsolete. In ancient days, all variables were statically allocated, and until Fortran 90, that was a valid implementation choice. Some compilers added the AUTOMATIC keyword to request stack allocation of a variable. Intel Fortran at some point changed so that scalars were allocated on the stack by default, but arrays were still static. You could override this in various ways. 

If a procedure was RECURSIVE, then all variables were, effectively, automatic. Fortran 2018 specifies that procedures are RECURSIVE by default (you can now say NON_RECURSIVE if you want), so AUTOMATIC no longer does anything (unless NON_RECURSIVE). Your array was not "set" to anything - you got whatever happened to be in those memory locations.

0 Kudos
JohnNichols
Valued Contributor III
2,240 Views

Thanks for the long explanation.  

I have found that all the integer variables that I look at, at first creation, come in at -85993940, it is amusing, when you forget to zero out array at the start. I have not checked them all, but on this machine it appears to be a common number.  It is a rather random binary number. 

IFORT the same thing appears to happen with some reals, but with a different number. 

Re automatic, is this why in the latest Intel Fortran manual, the words on automatic are colored green?  

I am loath to turn on the autoset to zero.  

 

0 Kudos
JohnNichols
Valued Contributor III
2,220 Views

JohnNichols_0-1634669374899.png

This is a random draw from my current program at the start of the subroutine before I initialize the variables. Sometimes they are not the noted value, particularly with arrays, but by golly gosh there are a lot of them.  This is not random left over garbage, it has to be coming from the compiler?

0 Kudos
cryptogram
New Contributor I
2,146 Views

Doing this:

num = -858993460
write(*,'(z8)') num

 

Reveals that the number is CCCCCCCC in hexadecimal.  So probably a deliberate choice, perhaps to make it easy to spot in a hex dump. 

Interesting, but we still don't know where it's being set.   I have some vague memory of some compiler or OS that would initialize memory

to the hex pattern that spelled out BADFOOD in a hex dump.

0 Kudos
mecej4
Honored Contributor III
2,135 Views

Indeed, CC is the single-byte opcode for the X86 INT3 "breakpoint interrupt" or "trap to debugger", which is used by debuggers. It can be useful for catching instances of data being executed as code, if the OS allows such indiscretions.

0 Kudos
jimdempseyatthecove
Honored Contributor III
2,124 Views

Some use BAADBEEF

MS uses CCCCCCCC (in Debug Build)

Jim Dempsey

andrew_4619
Honored Contributor II
2,196 Views

The debugger initialises I think  and also do you have uninitialised  value checking turned on?

 

 

0 Kudos
Steve_Lionel
Honored Contributor III
2,188 Views

It is uninitialized stack content. The values may have been set by some part of program start, but there is nothing the compiler does to set these values. They are unpredictable.

0 Kudos
Steve_Lionel
Honored Contributor III
2,186 Views

The words are green because AUTOMATIC is a non-standard extension. You should explicitly initialize any variables before use. Do not rely on the compiler to do it.

0 Kudos
JNichols
New Contributor I
2,073 Views

Thank you for the notes,  I enjoyed the read first thing in the morning. 

MS in the old Fortran manual used blue for non-standard extensions.  I wonder who decided the change was required to green as the current Intel manual is definitely based on the old MS manual.  I have a copy on my desk.  

I have learnt from the kind people here to always use implicit none, and to initialize variables, to use BASE.F90 to hold all the interesting useful parameters etc..  the use of modules and types.  Mostly unknown when I learnt Fortran in 1978.  

I translated the CCCC... number into binary, I did not think of hexadecimal.  

Arrays that are not initialized seem to hold the random data that is in memory at the time, but single variables, I, J, K etc would appear to be set to the CCCC.. number.  A simple statistical analysis says that the odds that all of the numbers on the graph above being set to one value and it being random is in the range of the number of grains of sand on a beach.  The standard may be silent on it, but humans being human, someone found it useful.  

The beauty of CCCCCC is it would be easy to spot in a dump and it is a long way from zero.  

In this interesting quest, I have seen a treatise on whether arrays should be 0 or 1 index start.  That is like asking if you like milk in the your tea, of course if it is Earl Grey the correct answer is of course lemon.  [I am mocking Mr Cage.]

 

0 Kudos
JohnNichols
Valued Contributor III
1,894 Views

I have not been able to get onto the forum for the last day, is it still not allowing one to log on?

0 Kudos
andrew_4619
Honored Contributor II
1,876 Views

One must have logged on to post ones message? Or maybe this is a humorous comment than exposed my lack of humour?

0 Kudos
AlHill
Super User
1,853 Views

Sometimes, logic and semantics do not apply to John's posts.<G>

 

Doc (not an Intel employee or contractor)
[Windows 11 is the new Vista]

0 Kudos
GVautier
New Contributor II
1,873 Views

Also unable to log under Firefox except in private mode since few weeks.

 

0 Kudos
JohnNichols
Valued Contributor III
1,835 Views

I have been unable, using any of the browsers I use, to get a message accepted for about the last two days.  I had to assume it was happening to a lot of people as there were no new posts and that is statistically unlikely for this forum, the MKL forum yes, this one no. 

I had tried several messages and none posted, I did not expect the last one to post and I was pleasantly surprised when it did. 

It can be viewed as a Testing 1, 2, 3 message, which is of course not logical as it is neither a sentence nor a simple question, except most people know the signal --  I explained in the message my inability to log on -  the rest is just testing 1,2,3. 

There is no humour, just a desire to see if it worked.  

I now have the answer, yes it works.  

 

0 Kudos
Ronny_G_Intel
Community Manager
1,836 Views

For the users that are having access issues, can you provide more details?

  1. Error message (provide a screenshot if possible)
  2. Did you try different browsers? I see that you are using Chrome* and Firefox*, If you can log in using a different browser then the issue may not be related to your account but to the browser.
  3. Did you try regular browser troubleshooting: clean cookies, delete temporary Internet files?
  4. Did you try accessing from a different computer, phone, or tablet?
  5. How did you log in today 10-22-2021?

Regards,

Ronny G

 

 

0 Kudos
Reply