<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Those words are in Fortran 95 in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040705#M112975</link>
    <description>&lt;P&gt;Those words are in Fortran 95 on.&amp;nbsp; In the current standard (F2008) they are in 7.1.5.2.4.&amp;nbsp; There are also restrictions on calling intrinsic functions such that a result doesn't fit in the result variable that may be invoked - the intrinsic functions are implicitly referenced in the description of the behaviour of a do construct for things like kind conversion of parameters.&lt;/P&gt;

&lt;P&gt;(There is also a general processor dependent size and complexity limit on a program that could come into play here - but I don't think that needs to be relied upon to argue that most of the examples are non-conforming.)&lt;/P&gt;

&lt;P&gt;The definition of the do variable as part of the execution of the do loop is in the sequence described in the execution cycle (8.1.6.6.2).&amp;nbsp; There is no test on adding the increment - the number of iterations is hypothetically based on an iteration count as described previously in this thread (or maybe it was in the other thread) and that iteration count check occurs before execution of the statements in the body of the do construct begins.&amp;nbsp; It is the specified number of iterations in conjunction with the requirement that the do variable be incremented at the end of every iteration that makes [most of] your examples non-conforming.&lt;/P&gt;</description>
    <pubDate>Mon, 09 Mar 2015 00:41:22 GMT</pubDate>
    <dc:creator>IanH</dc:creator>
    <dc:date>2015-03-09T00:41:22Z</dc:date>
    <item>
      <title>Some Do Loops fail with integer(8) as well</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040695#M112965</link>
      <description>&lt;P&gt;I put together this little test program, to see better when we get problems.&lt;/P&gt;

&lt;P&gt;Apparently , having the upper limit near HUGE() does not seem related to this.&lt;/P&gt;

&lt;P&gt;Especially when the compiler pre-computes the number of iterations using this formula:&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;KCALC = (K8HI - K8LO)/DK8 + 1&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;Consider the trivial case where KCALC = 3&lt;/P&gt;

&lt;P&gt;Then the values of K8 should be:&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;K8HI - 2*DK8, &amp;nbsp; K*HI-DK8, and &amp;nbsp;K8HI&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;So it does not have a chance to overflow the integer(8) high value,&lt;/P&gt;

&lt;P&gt;even when K*HI8 = HUGE(K8)&lt;/P&gt;

&lt;P&gt;This little test program steps thru values of K8LO starting with zero.&lt;/P&gt;

&lt;P&gt;You start off getting wrong numbers &amp;nbsp;of number of iterations thru the loop,&lt;/P&gt;

&lt;P&gt;then when it reaches the value of KI8, the problem goes away.&lt;/P&gt;

&lt;P&gt;So I have to conclude that the compiler has an &lt;EM&gt;&lt;STRONG&gt;error in the way it computes the number of iterations.&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;

&lt;P&gt;Why would it ever give you ZERO passes? Unless the result was negative.....&lt;/P&gt;

&lt;P&gt;Some call this the "integer overflow curse."&lt;/P&gt;

&lt;P&gt;Actually, if it DID overflow the integer(8), you would get an infinite number of iterations, since the NEXT&lt;/P&gt;

&lt;P&gt;value would be NEGATIVE. You sure would NOT get zero passes thru the loop, unless KLO8 &amp;gt; KHI8&lt;/P&gt;

&lt;P&gt;and they are both &amp;lt;= HUGE(k8)&lt;/P&gt;

&lt;P&gt;Even if KLO8 = KHI8, you still get ONE pass.&lt;/P&gt;

&lt;P&gt;This littlle DO LOOP does work:&lt;/P&gt;

&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;DO K = huge(k)-10, huge(k), 2&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;

&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;ENDDO&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;

&lt;P&gt;You get 6 passes, as you should.&lt;/P&gt;</description>
      <pubDate>Sat, 07 Mar 2015 20:29:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040695#M112965</guid>
      <dc:creator>WSinc</dc:creator>
      <dc:date>2015-03-07T20:29:29Z</dc:date>
    </item>
    <item>
      <title>Actually, that "little DO</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040696#M112966</link>
      <description>&lt;P&gt;Actually, that "little DO LOOP" did not work.&lt;/P&gt;

&lt;P&gt;But if I adjust the upper and lower limits down a little bit, it does.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Actually, I think I know what they did wrong -&lt;/P&gt;

&lt;P&gt;Suppose they tried to evaluate it as follows:&lt;/P&gt;

&lt;P&gt;(Khi - Klo + Kinc) / Kinc&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;If they added Khi to Kinc FIRST and did NOT check for an integer overflow&lt;/P&gt;

&lt;P&gt;then they would get ZERO or a NEGATIVE result.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Which is what we get under certain conditions - -&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;The proper order is:&lt;/P&gt;

&lt;P&gt;first Khi- kLo, then divide by Kinc, then add 1.&lt;/P&gt;</description>
      <pubDate>Sat, 07 Mar 2015 20:56:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040696#M112966</guid>
      <dc:creator>WSinc</dc:creator>
      <dc:date>2015-03-07T20:56:00Z</dc:date>
    </item>
    <item>
      <title>I think that does not really</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040697#M112967</link>
      <description>&lt;P&gt;I think that does not really move things on from my post #19 made some time back in your other thread (https://software.intel.com/en-us/forums/topic/542641).&lt;/P&gt;

&lt;P&gt;To reiterate, for a DO loop , if &amp;nbsp;finish+step&amp;gt;= huge the loop does not run. Clearly this is not right as the loop index shouldn't need to take values higher than finish and could in fact productively run. &amp;nbsp;However you cannot say much more about what the compiler is doing in its pre-checks that is just guesswork I will leave that to the Intel guys.&lt;/P&gt;

&lt;P&gt;Your case is unusual as both step and finish are very large, outside what people would routinely do, but IMO the compiler should be able to cope with this as it is valid code.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 08 Mar 2015 09:44:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040697#M112967</guid>
      <dc:creator>andrew_4619</dc:creator>
      <dc:date>2015-03-08T09:44:20Z</dc:date>
    </item>
    <item>
      <title>This is what the 2008</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040698#M112968</link>
      <description>&lt;P&gt;I think that Dr. Fortran gave a clear statement about this matter in &lt;A href="https://software.intel.com/en-us/forums/topic/542641#comment-1816351.&amp;nbsp;This" target="_blank"&gt;https://software.intel.com/en-us/forums/topic/542641#comment-1816351.&amp;nbsp;This&lt;/A&gt; is what the 2008 standard says regarding the execution count of the loop body:&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;8.1.6.4.1(3)&amp;nbsp;The iteration count is established and is the value of the expression (&lt;EM&gt;m&lt;SUB&gt;2&lt;/SUB&gt; −m&lt;SUB&gt;1&lt;/SUB&gt; +m&lt;SUB&gt;3&lt;/SUB&gt;)/m&lt;SUB&gt;3&lt;/SUB&gt;&lt;/EM&gt;,&amp;nbsp;unless that value is negative, in which case the iteration count is 0.&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Other parts of the standard stipulate that the order of evaluation of an expression without parentheses is not specified. However, even if we take the order to be left to right, BillSincl's values of m1, m2, m3 are such that integer overflow occurs when m3 is added, even though m1 was subtracted first; the computed value of the calculated iteration count is negative, and &amp;nbsp;then the count is set to 0 as the standard states. The standard does not require that a processor should strive to avoid integer overflow, nor does it specify what should be done when integer overflow occurs. In standard-speak, the program is non-conforming and the results of compiling/running the program are undefined.&lt;/P&gt;

&lt;P&gt;Bill's dispute is with the standard, it seems. If he can show that IFort behaves differently than other compilers and/or that the behavior of the compiler does not comply with the standard, a complaint in this forum would be valid. Even a valid criticism of the standard might draw some interest. But when someone blithely ignores the standard and faults the compiler for not behaving in a way that one wishes for, there is a simple counter argument: most users want the compiler to be standard-compliant.&lt;/P&gt;

&lt;P&gt;In older versions of Fortran (and, with a "legacy code" option, with some current compilers), there was a provision for a minimum one-trip DO loop. That behavior may have been common but was probably not specified in a previous standard, and such behavior is not to be expected in modern code.&lt;/P&gt;</description>
      <pubDate>Sun, 08 Mar 2015 11:34:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040698#M112968</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2015-03-08T11:34:00Z</dc:date>
    </item>
    <item>
      <title>Like I said before, and</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040699#M112969</link>
      <description>&lt;P&gt;Like I said before, and app4619 and others also said:&lt;/P&gt;

&lt;P&gt;If they do it in THE PROPER ORDER, i.e.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;(M1-M3+M2)/M2 &amp;nbsp;rather than&lt;/P&gt;

&lt;P&gt;(M1+M2-M3)/M2 &amp;nbsp;it will work OK.&lt;/P&gt;

&lt;P&gt;Its kinda interesting that they don't get the integer overflow for INTEGER(1) and INTEGER(2) situations.&lt;/P&gt;

&lt;P&gt;whereas for the 4 and 8 byte cases, we CAN get it.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;My attitude is : It ought to be right &lt;STRONG&gt;100 per cent of the time, &lt;/STRONG&gt;rather than 99.9 per cent of the time.&lt;/P&gt;

&lt;P&gt;You never know when that other 0.1 per cent will bite you in the tush.&lt;/P&gt;

&lt;P&gt;I may have more of a perfectionist attitude, since I came from a background where you could lose&lt;/P&gt;

&lt;P&gt;a &lt;STRONG&gt;billion dollar spacecraft with one little glitch in the code &lt;/STRONG&gt;- - - so, I apologize.&lt;/P&gt;

&lt;P&gt;That integer overflow stuff &amp;nbsp;is pretty &lt;STRONG&gt;stupid &lt;/STRONG&gt;anyway. But one way to check it is to&lt;/P&gt;

&lt;P&gt;see if the sum (or product) of two positive numbers is &lt;STRONG&gt;still positive.&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;As I am sure most of you already know, when you MULTIPLY two 4 byte integers, the result is&lt;/P&gt;

&lt;P&gt;almost ALWAYS more than 4 bytes. and even if you put an 8 byte variable to the LEFT of the equals,&lt;/P&gt;

&lt;P&gt;you still &lt;STRONG&gt;almost always&lt;/STRONG&gt; get the wrong answer. Unless of course you say:&lt;/P&gt;

&lt;P&gt;C = int(A,8)*INT(b) &amp;nbsp;or&lt;/P&gt;

&lt;P&gt;C = 100000000_8 * 3&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;PS: It can still be positive, yet still wrong in some cases, so thats not a definitive test.&lt;/P&gt;</description>
      <pubDate>Sun, 08 Mar 2015 16:31:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040699#M112969</guid>
      <dc:creator>WSinc</dc:creator>
      <dc:date>2015-03-08T16:31:31Z</dc:date>
    </item>
    <item>
      <title>Quote:app4619 wrote:</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040700#M112970</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;app4619 wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;I think that does not really move things on from my post #19 made some time back in your other thread (&lt;A href="https://software.intel.com/en-us/forums/topic/542641"&gt;https://software.intel.com/en-us/forums/topic/542641&lt;/A&gt;).&lt;/P&gt;

&lt;P&gt;To reiterate, for a DO loop , if &amp;nbsp;finish+step&amp;gt;= huge the loop does not run. Clearly this is not right as the loop index shouldn't need to take values higher than finish and could in fact productively run.&amp;nbsp; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;I haven't been following this closely, but several of the examples that bill has posted are non-conforming - in particular - for the syntax example `DO variable = start, finish, step`, if finish + step would be greater than HUGE(variable), the program is in error.&amp;nbsp; You cannot rely on any number of iterations in this case - non-conforming program - anything can happen.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Perhaps you were simply stating this a different way - but I read you comment as implying that it should still work in this case.&lt;/P&gt;</description>
      <pubDate>Sun, 08 Mar 2015 18:52:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040700#M112970</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2015-03-08T18:52:56Z</dc:date>
    </item>
    <item>
      <title>I was simply saying that it</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040701#M112971</link>
      <description>&lt;P&gt;I was simply saying that it should be able to run ALL the steps called for in the DO LOOP,&lt;/P&gt;

&lt;P&gt;and it &lt;EM&gt;&lt;STRONG&gt;should not be relevant&lt;/STRONG&gt;&lt;/EM&gt; what happens on any step OUTSIDE of the DO LOOP.&lt;/P&gt;

&lt;P&gt;Unfortunately, the sources I have looked at &lt;EM&gt;&lt;STRONG&gt;don't address the integer overflow problem.&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;

&lt;P&gt;And I don't think the standard does either.&lt;/P&gt;

&lt;P&gt;Probably because in the "days of yore," we had processors that would TRAP on an integer overflow,&amp;nbsp;&lt;/P&gt;

&lt;P&gt;so you would &lt;EM&gt;&lt;STRONG&gt;immediately be alerted&lt;/STRONG&gt;&lt;/EM&gt; to any problems like that. At least I dont remember any CPU&lt;/P&gt;

&lt;P&gt;or any mainframe computer that simply ignored that situation. Then INTEL came along, and said "Ahh, we wont bother with that."&lt;/P&gt;

&lt;P&gt;This was AFTER the standard was posed back in the1960's. Personal computers first came along in the early 80's right?&lt;/P&gt;</description>
      <pubDate>Sun, 08 Mar 2015 22:32:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040701#M112971</guid>
      <dc:creator>WSinc</dc:creator>
      <dc:date>2015-03-08T22:32:43Z</dc:date>
    </item>
    <item>
      <title>Actually, when I did machine</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040702#M112972</link>
      <description>&lt;P&gt;Actually, back then when I did machine code, if you did a MULTIPLY of two 32-bit quantities, you always assumed that the result&lt;/P&gt;

&lt;P&gt;was up to 64 bits. And if you added them, you always assumed the result could be 33 bits. So it was up to the programmer&amp;nbsp;&lt;/P&gt;

&lt;P&gt;to assure that all possible cases were covered - - something that compilers don't do for us.&lt;/P&gt;

&lt;P&gt;A really smart compiler would at least give you a warning, like:&lt;/P&gt;

&lt;P&gt;INTEGER &amp;nbsp;A,B,C&lt;/P&gt;

&lt;P&gt;C = A + B&lt;/P&gt;

&lt;P&gt;"WARNING: results may be incorrect."&lt;/P&gt;

&lt;P&gt;Likewise for:&lt;/P&gt;

&lt;P&gt;C = A * B&lt;/P&gt;

&lt;P&gt;"Warning: results will HARDLY EVER be correct."&lt;/P&gt;</description>
      <pubDate>Sun, 08 Mar 2015 23:03:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040702#M112972</guid>
      <dc:creator>WSinc</dc:creator>
      <dc:date>2015-03-08T23:03:00Z</dc:date>
    </item>
    <item>
      <title>Quote:billsincl wrote:</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040703#M112973</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;billsincl wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;I was simply saying that it should be able to run ALL the steps called for in the DO LOOP,&lt;/P&gt;

&lt;P&gt;and it &lt;EM&gt;&lt;STRONG&gt;should not be relevant&lt;/STRONG&gt;&lt;/EM&gt; what happens on any step OUTSIDE of the DO LOOP.&lt;/P&gt;

&lt;P&gt;Unfortunately, the sources I have looked at &lt;EM&gt;&lt;STRONG&gt;don't address the integer overflow problem.&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;

&lt;P&gt;And I don't think the standard does either.&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;"The execution of any numeric operation whose result is not defined by the arithmetic used by the processor is prohibited."&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Execution of many (all?) of the do loop examples here and in the other similar thread require that the do variable be defined immediately prior to loop termination (we are not talking about a "step OUTSIDE of the DO LOOP") with a value greater than what can be stored in the variable.&amp;nbsp; That's a clear violation of the above.&amp;nbsp; Those examples are non-conforming.&lt;/P&gt;

&lt;P&gt;These sorts of restrictions on a program are taken into account when implementing compilers.&amp;nbsp; If you violate those restrictions then you shouldn't be surprised that the compiler doesn't do what you want it to do.&lt;/P&gt;</description>
      <pubDate>Sun, 08 Mar 2015 23:04:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040703#M112973</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2015-03-08T23:04:27Z</dc:date>
    </item>
    <item>
      <title>Now we are getting into</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040704#M112974</link>
      <description>&lt;P&gt;Now we are getting into "legalese." Where does it say that?&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Maybe they mean "define the LOOP variable" BEFORE termination ?&lt;/P&gt;

&lt;P&gt;i.e. test the results of adding the increment BEFORE going back thru the loop again.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Is that spelled out ?&lt;/P&gt;</description>
      <pubDate>Sun, 08 Mar 2015 23:19:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040704#M112974</guid>
      <dc:creator>WSinc</dc:creator>
      <dc:date>2015-03-08T23:19:00Z</dc:date>
    </item>
    <item>
      <title>Those words are in Fortran 95</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040705#M112975</link>
      <description>&lt;P&gt;Those words are in Fortran 95 on.&amp;nbsp; In the current standard (F2008) they are in 7.1.5.2.4.&amp;nbsp; There are also restrictions on calling intrinsic functions such that a result doesn't fit in the result variable that may be invoked - the intrinsic functions are implicitly referenced in the description of the behaviour of a do construct for things like kind conversion of parameters.&lt;/P&gt;

&lt;P&gt;(There is also a general processor dependent size and complexity limit on a program that could come into play here - but I don't think that needs to be relied upon to argue that most of the examples are non-conforming.)&lt;/P&gt;

&lt;P&gt;The definition of the do variable as part of the execution of the do loop is in the sequence described in the execution cycle (8.1.6.6.2).&amp;nbsp; There is no test on adding the increment - the number of iterations is hypothetically based on an iteration count as described previously in this thread (or maybe it was in the other thread) and that iteration count check occurs before execution of the statements in the body of the do construct begins.&amp;nbsp; It is the specified number of iterations in conjunction with the requirement that the do variable be incremented at the end of every iteration that makes [most of] your examples non-conforming.&lt;/P&gt;</description>
      <pubDate>Mon, 09 Mar 2015 00:41:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040705#M112975</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2015-03-09T00:41:22Z</dc:date>
    </item>
    <item>
      <title>Well, to me "conforming"</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040706#M112976</link>
      <description>&lt;P&gt;Well, to me "conforming" means the expression for the number of iterations,&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;N= (stop-start+increment)/increment&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;gives CORRECT results. In all cases.&lt;/P&gt;

&lt;P&gt;If start &amp;lt;= stop, then it can NEVER be zero or negative.&lt;/P&gt;

&lt;P&gt;The programmer has no way to know that ahead of time, since the&lt;/P&gt;

&lt;P&gt;start, stop and increment values can be &lt;STRONG&gt;expressions&lt;/STRONG&gt;, OR coming from &lt;STRONG&gt;DATA inputs.&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;Or a mixture of those.&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;So, how would he know either way?&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;Apparently we dont get this problem if the values are 1 or 2 bytes.&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;why would it not be consistent at least?&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 09 Mar 2015 01:12:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040706#M112976</guid>
      <dc:creator>WSinc</dc:creator>
      <dc:date>2015-03-09T01:12:00Z</dc:date>
    </item>
    <item>
      <title>Quote:billsincl wrote:N=</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040707#M112977</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;billsincl wrote:&lt;BR /&gt;&lt;STRONG style="font-size: 1em; line-height: 1.5;"&gt;N= (stop-start+increment)/increment&lt;/STRONG&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;gives CORRECT results. In all cases.&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;errr no it doesn't consider cases where start is negative and large) and stop is positive &amp;nbsp;and large for example....&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 09 Mar 2015 08:21:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Some-Do-Loops-fail-with-integer-8-as-well/m-p/1040707#M112977</guid>
      <dc:creator>andrew_4619</dc:creator>
      <dc:date>2015-03-09T08:21:18Z</dc:date>
    </item>
  </channel>
</rss>

