<?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 Re: Re:-O2, -O3 gives obvious wrong results, simple, 30 lines MWE attached. in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1318682#M157817</link>
    <description>&lt;P&gt;Great! Thank you!&lt;/P&gt;</description>
    <pubDate>Fri, 01 Oct 2021 22:40:44 GMT</pubDate>
    <dc:creator>CRquantum</dc:creator>
    <dc:date>2021-10-01T22:40:44Z</dc:date>
    <item>
      <title>-O2, -O3 gives obvious wrong results, simple, 30 lines MWE attached.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1316062#M157612</link>
      <description>&lt;P&gt;Dear all,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am a problem about Intel OneAPI Fortran, the version I am using is 2021.3.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The problem is repeatable on both linux and windows.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;gfortran does not have problem.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thing is, with -O3 or -O2 compile flag, the output array xout is wrong, it gives zeros, which should not be zeros.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;However, with -O0 flag, result is correct.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Furthermore, at&amp;nbsp; line 31, if I set np&amp;lt;=8, result is correct. But &amp;gt;8 result is wrong.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Also, if I add some write statement, the result become correct again.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;MWE is about 30 lines below.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The problem is at line 17,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN&gt;call&lt;/SPAN&gt;&amp;nbsp;rk4_ti_step_mod3&amp;nbsp;(&amp;nbsp;x(i-1),&amp;nbsp;x(i)&amp;nbsp;)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;somehow the -O2 or -O3 flag seems decided that they just do nothing here.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Could anyone have a look and identify if it is a compiler bug or not?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you very much in advance!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;module&lt;/SPAN&gt;&amp;nbsp;tests&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;implicit&amp;nbsp;none&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;contains&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;subroutine&lt;/SPAN&gt;&amp;nbsp;test01
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;integer&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN&gt;parameter&lt;/SPAN&gt;&amp;nbsp;::&amp;nbsp;n&amp;nbsp;=&amp;nbsp;10,&amp;nbsp;np&amp;nbsp;=&amp;nbsp;10
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;integer&lt;/SPAN&gt;&amp;nbsp;::&amp;nbsp;i,&amp;nbsp;itot,&amp;nbsp;istart,&amp;nbsp;istep,&amp;nbsp;j,&amp;nbsp;k
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;real&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;::&amp;nbsp;x(0:n),&amp;nbsp;xout(5,np)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;itot&amp;nbsp;=&amp;nbsp;n
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;istart&amp;nbsp;=&amp;nbsp;itot/5
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;istep&amp;nbsp;=&amp;nbsp;istart
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;do&lt;/SPAN&gt;&amp;nbsp;j&amp;nbsp;=&amp;nbsp;1,&amp;nbsp;np
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x(i)&amp;nbsp;=&amp;nbsp;20.0
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;do&lt;/SPAN&gt;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;1,&amp;nbsp;n
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;call&lt;/SPAN&gt;&amp;nbsp;rk4_ti_step_mod3&amp;nbsp;(&amp;nbsp;x(i-1),&amp;nbsp;x(i)&amp;nbsp;)&amp;nbsp;&lt;SPAN&gt;!&amp;nbsp;check&amp;nbsp;n=10&amp;nbsp;bug.&lt;/SPAN&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;!write&amp;nbsp;(&amp;nbsp;*,&amp;nbsp;'(2x,i8,2x,f14.6,2x,g14.6)'&amp;nbsp;)&amp;nbsp;i,&amp;nbsp;x(i-1),&amp;nbsp;x(i)&lt;/SPAN&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;end&amp;nbsp;do&lt;/SPAN&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;!write&amp;nbsp;(6,'(''x&amp;nbsp;=&amp;nbsp;'',t20,&amp;nbsp;5(f15.7,1x))')&amp;nbsp;x(istart:itot:istep)&lt;/SPAN&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xout(1:5:1,j)&amp;nbsp;=&amp;nbsp;x(istart:itot:istep)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;enddo&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;write&lt;/SPAN&gt;&amp;nbsp;(6,&lt;SPAN&gt;'(5(f15.7,1x))'&lt;/SPAN&gt;)&amp;nbsp;xout
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;end&amp;nbsp;subroutine&lt;/SPAN&gt;&amp;nbsp;test01
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;subroutine&lt;/SPAN&gt;&amp;nbsp;rk4_ti_step_mod3&amp;nbsp;(&amp;nbsp;x,&amp;nbsp;xstar&amp;nbsp;)&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;real&lt;/SPAN&gt;&amp;nbsp;::&amp;nbsp;x,&amp;nbsp;xstar
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xstar&amp;nbsp;=&amp;nbsp;x&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;!write(6,*)&amp;nbsp;'x',&amp;nbsp;x&amp;nbsp;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xstar&amp;nbsp;=&amp;nbsp;xstar&amp;nbsp;+&amp;nbsp;x
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;end&amp;nbsp;subroutine&lt;/SPAN&gt;&amp;nbsp;rk4_ti_step_mod3
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;end&amp;nbsp;module&lt;/SPAN&gt;&amp;nbsp;tests&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;program&lt;/SPAN&gt;&amp;nbsp;main
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;use&lt;/SPAN&gt;&amp;nbsp;tests
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;implicit&amp;nbsp;none&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;call&lt;/SPAN&gt;&amp;nbsp;test01
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;stop&lt;/SPAN&gt;&amp;nbsp;(&lt;SPAN&gt;'Program&amp;nbsp;end&amp;nbsp;normally.'&lt;/SPAN&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;end&amp;nbsp;program&lt;/SPAN&gt;&amp;nbsp;main&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;On the other hand, if I delete the only one module tests in the above code, and place the two subroutines in the main program, the problem is gone. Just do not know why.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;See code below, without using module, it works.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;program&lt;/SPAN&gt;&amp;nbsp;main
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;implicit&amp;nbsp;none&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;call&lt;/SPAN&gt;&amp;nbsp;test01
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;stop&lt;/SPAN&gt;&amp;nbsp;(&lt;SPAN&gt;'Program&amp;nbsp;end&amp;nbsp;normally.'&lt;/SPAN&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;contains&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;subroutine&lt;/SPAN&gt;&amp;nbsp;test01
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;integer&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN&gt;parameter&lt;/SPAN&gt;&amp;nbsp;::&amp;nbsp;n&amp;nbsp;=&amp;nbsp;10,&amp;nbsp;np&amp;nbsp;=&amp;nbsp;10
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;integer&lt;/SPAN&gt;&amp;nbsp;::&amp;nbsp;i,&amp;nbsp;itot,&amp;nbsp;istart,&amp;nbsp;istep,&amp;nbsp;j,&amp;nbsp;k
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;real&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;::&amp;nbsp;x(0:n),&amp;nbsp;xout(5,np)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;itot&amp;nbsp;=&amp;nbsp;n
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;istart&amp;nbsp;=&amp;nbsp;itot/5
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;istep&amp;nbsp;=&amp;nbsp;istart
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;do&lt;/SPAN&gt;&amp;nbsp;j&amp;nbsp;=&amp;nbsp;1,&amp;nbsp;np
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x(i)&amp;nbsp;=&amp;nbsp;20.0
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;do&lt;/SPAN&gt;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;1,&amp;nbsp;n
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;call&lt;/SPAN&gt;&amp;nbsp;rk4_ti_step_mod3&amp;nbsp;(&amp;nbsp;x(i-1),&amp;nbsp;x(i)&amp;nbsp;)&amp;nbsp;&lt;SPAN&gt;!&amp;nbsp;check&amp;nbsp;n=10&amp;nbsp;bug.&lt;/SPAN&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;!write&amp;nbsp;(&amp;nbsp;*,&amp;nbsp;'(2x,i8,2x,f14.6,2x,g14.6)'&amp;nbsp;)&amp;nbsp;i,&amp;nbsp;x(i-1),&amp;nbsp;x(i)&lt;/SPAN&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;end&amp;nbsp;do&lt;/SPAN&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;!write&amp;nbsp;(6,'(''x&amp;nbsp;=&amp;nbsp;'',t20,&amp;nbsp;5(f15.7,1x))')&amp;nbsp;x(istart:itot:istep)&lt;/SPAN&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xout(1:5:1,j)&amp;nbsp;=&amp;nbsp;x(istart:itot:istep)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;enddo&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;write&lt;/SPAN&gt;&amp;nbsp;(6,&lt;SPAN&gt;'(5(f15.7,1x))'&lt;/SPAN&gt;)&amp;nbsp;xout
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;end&amp;nbsp;subroutine&lt;/SPAN&gt;&amp;nbsp;test01
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;subroutine&lt;/SPAN&gt;&amp;nbsp;rk4_ti_step_mod3&amp;nbsp;(&amp;nbsp;x,&amp;nbsp;xstar&amp;nbsp;)&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;real&lt;/SPAN&gt;&amp;nbsp;::&amp;nbsp;x,&amp;nbsp;xstar
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xstar&amp;nbsp;=&amp;nbsp;x&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;!write(6,*)&amp;nbsp;'x',&amp;nbsp;x&amp;nbsp;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xstar&amp;nbsp;=&amp;nbsp;xstar&amp;nbsp;+&amp;nbsp;x
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;end&amp;nbsp;subroutine&lt;/SPAN&gt;&amp;nbsp;rk4_ti_step_mod3
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;end&amp;nbsp;program&lt;/SPAN&gt;&amp;nbsp;main&amp;nbsp;
&amp;nbsp;
	
	
	
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A even concise 20s line MWE which reproduce this -O2 or -O3 issue can be found here,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://fortran-lang.discourse.group/t/why-a-simple-code-intel-fortran-o3-o2-gives-wrong-results/1903/7?u=crquantum" target="_blank"&gt;https://fortran-lang.discourse.group/t/why-a-simple-code-intel-fortran-o3-o2-gives-wrong-results/1903/7?u=crquantum&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 21 Sep 2021 04:02:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1316062#M157612</guid>
      <dc:creator>CRquantum</dc:creator>
      <dc:date>2021-09-21T04:02:50Z</dc:date>
    </item>
    <item>
      <title>Re: -O2, -O3 gives obvious wrong results, simple, 30 lines MWE attached.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1316111#M157616</link>
      <description>&lt;P&gt;I built the first program with Intel oneAPI 2021.01 as well as Intel Fortran 18 and got even weirder results: unless I specify -debug, the output of the program is all zeroes. -O0 also gives zeroes. I do not see anything wrong with the program myself.&lt;/P&gt;</description>
      <pubDate>Tue, 21 Sep 2021 06:30:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1316111#M157616</guid>
      <dc:creator>Arjen_Markus</dc:creator>
      <dc:date>2021-09-21T06:30:29Z</dc:date>
    </item>
    <item>
      <title>Re: -O2, -O3 gives obvious wrong results, simple, 30 lines MWE attached.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1316182#M157621</link>
      <description>&lt;P&gt;x(0) is never initialized. You cannot assume uninitialized variables are 0.&lt;/P&gt;
&lt;P&gt;I have not tried your program with initializing x(0) to 0.0 so I cannot say their are further errors.&lt;/P&gt;
&lt;PRE&gt;rk4_ti_step_mod3&amp;nbsp;(&amp;nbsp;x,&amp;nbsp;xstar&amp;nbsp;) contains&lt;/PRE&gt;
&lt;PRE&gt;xstar&amp;nbsp;=&amp;nbsp;xstar&amp;nbsp;+&amp;nbsp;x with x dummy referencing x(0) when i==1&lt;/PRE&gt;
&lt;P&gt;IOW reading an uninitialized variable... then passing it on to the next cell in the array (propagating junk data).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Tue, 21 Sep 2021 12:33:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1316182#M157621</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2021-09-21T12:33:46Z</dc:date>
    </item>
    <item>
      <title>Re: -O2, -O3 gives obvious wrong results, simple, 30 lines MWE attached.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1316183#M157622</link>
      <description>&lt;P&gt;It is initialised:&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;    do j = 1, np
            i = 0
        x(i) = 20.0
 &lt;/LI-CODE&gt;
&lt;P&gt;I overlooked that at first myself &lt;/P&gt;</description>
      <pubDate>Tue, 21 Sep 2021 12:31:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1316183#M157622</guid>
      <dc:creator>Arjen_Markus</dc:creator>
      <dc:date>2021-09-21T12:31:55Z</dc:date>
    </item>
    <item>
      <title>Re: -O2, -O3 gives obvious wrong results, simple, 30 lines MWE attached.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1316194#M157626</link>
      <description>&lt;P&gt;&lt;STRIKE&gt;The above initializes x(1:np) but not x(0)&lt;/STRIKE&gt;&lt;/P&gt;
&lt;P&gt;oops i=0&lt;/P&gt;
&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Tue, 21 Sep 2021 13:02:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1316194#M157626</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2021-09-21T13:02:12Z</dc:date>
    </item>
    <item>
      <title>Re: -O2, -O3 gives obvious wrong results, simple, 30 lines MWE attached.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1316212#M157629</link>
      <description>&lt;P&gt;I can reproduce the error with IFort 2013SP1, IFort 16.0.8 and Ifort 19.1.3 using just /Ot, generating 64-bit code for the 25-line MWE in CRquantum's link to fortran-lang.discourse.group.&lt;/P&gt;
&lt;P&gt;What I can see in the assembly code is that the generated code for subroutine&amp;nbsp;rk4_ti_step_mod3 is correct, but that subroutine is never called. Instead,&amp;nbsp; bad inline code is generated in the caller.&lt;/P&gt;</description>
      <pubDate>Tue, 21 Sep 2021 14:43:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1316212#M157629</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2021-09-21T14:43:42Z</dc:date>
    </item>
    <item>
      <title>Re: -O2, -O3 gives obvious wrong results, simple, 30 lines MWE attached.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1316807#M157646</link>
      <description>&lt;P&gt;I compiled like this and ran.&amp;nbsp; Are these the answers you expect?&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;$ ifort -fno-inline forum.f90
$ a.out
     80.0000000     320.0000000    1280.0000000    5120.0000000   20480.0000000
     80.0000000     320.0000000    1280.0000000    5120.0000000   20480.0000000
     80.0000000     320.0000000    1280.0000000    5120.0000000   20480.0000000
     80.0000000     320.0000000    1280.0000000    5120.0000000   20480.0000000
     80.0000000     320.0000000    1280.0000000    5120.0000000   20480.0000000
     80.0000000     320.0000000    1280.0000000    5120.0000000   20480.0000000
     80.0000000     320.0000000    1280.0000000    5120.0000000   20480.0000000
     80.0000000     320.0000000    1280.0000000    5120.0000000   20480.0000000
     80.0000000     320.0000000    1280.0000000    5120.0000000   20480.0000000
     80.0000000     320.0000000    1280.0000000    5120.0000000   20480.0000000
Program end normally.&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;Thanks,&amp;nbsp;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/41971"&gt;@mecej4&lt;/a&gt;&amp;nbsp;, for the inline tip.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Sep 2021 20:53:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1316807#M157646</guid>
      <dc:creator>Barbara_P_Intel</dc:creator>
      <dc:date>2021-09-23T20:53:34Z</dc:date>
    </item>
    <item>
      <title>Re:-O2, -O3 gives obvious wrong results, simple, 30 lines MWE attached.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1317041#M157665</link>
      <description>&lt;P&gt;I also compiled with ifx.  I get the same answers I reported above.&lt;/P&gt;&lt;P&gt;So you have two workarounds.&lt;/P&gt;&lt;P&gt;(1) Compile with this compiler option&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px;"&gt;$ ifort -fno-inline forum.f90&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px;"&gt;(2) Compile with ifx. .o and .mod files are interchangeable between the compilers as long as you don't use -ipo.&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 24 Sep 2021 15:11:41 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1317041#M157665</guid>
      <dc:creator>Barbara_P_Intel</dc:creator>
      <dc:date>2021-09-24T15:11:41Z</dc:date>
    </item>
    <item>
      <title>Re: Re:-O2, -O3 gives obvious wrong results, simple, 30 lines MWE attached.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1318150#M157767</link>
      <description>&lt;P&gt;Thank you very much for your reply and the workaround!&lt;/P&gt;
&lt;P&gt;Would you submit a request to fix this issue?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 30 Sep 2021 01:13:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1318150#M157767</guid>
      <dc:creator>CRquantum</dc:creator>
      <dc:date>2021-09-30T01:13:46Z</dc:date>
    </item>
    <item>
      <title>Re:-O2, -O3 gives obvious wrong results, simple, 30 lines MWE attached.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1318635#M157814</link>
      <description>&lt;P&gt;I filed a bug report, CMPLRIL0-34271.  I'll keep you posted on its progress to a fix.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 01 Oct 2021 19:23:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1318635#M157814</guid>
      <dc:creator>Barbara_P_Intel</dc:creator>
      <dc:date>2021-10-01T19:23:36Z</dc:date>
    </item>
    <item>
      <title>Re: Re:-O2, -O3 gives obvious wrong results, simple, 30 lines MWE attached.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1318682#M157817</link>
      <description>&lt;P&gt;Great! Thank you!&lt;/P&gt;</description>
      <pubDate>Fri, 01 Oct 2021 22:40:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1318682#M157817</guid>
      <dc:creator>CRquantum</dc:creator>
      <dc:date>2021-10-01T22:40:44Z</dc:date>
    </item>
    <item>
      <title>Re:-O2, -O3 gives obvious wrong results, simple, 30 lines MWE attached.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1460371#M165321</link>
      <description>&lt;P&gt;The compiler developers looked this case over carefully and decided not to fix it due to a high risk of a regression. Please use one of the 2 workarounds. I suggest using ifx as that is the Intel Fortran compiler of the future.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 28 Feb 2023 22:26:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1460371#M165321</guid>
      <dc:creator>Barbara_P_Intel</dc:creator>
      <dc:date>2023-02-28T22:26:02Z</dc:date>
    </item>
    <item>
      <title>Re: -O2, -O3 gives obvious wrong results, simple, 30 lines MWE attached.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1460497#M165324</link>
      <description>&lt;P&gt;Here is another work-around, one that does not depend on changing compiler flags:&lt;/P&gt;
&lt;P&gt;Replace the line&lt;/P&gt;
&lt;LI-CODE lang="fortran"&gt;call rk4_ti_step_mod3 ( x(i-1), x(i) )&lt;/LI-CODE&gt;
&lt;P&gt;by&lt;/P&gt;
&lt;LI-CODE lang="fortran"&gt;call rk4_ti_step_mod3 ( (x(i-1)), x(i) )&lt;/LI-CODE&gt;</description>
      <pubDate>Wed, 01 Mar 2023 06:05:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1460497#M165324</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2023-03-01T06:05:17Z</dc:date>
    </item>
    <item>
      <title>Re: -O2, -O3 gives obvious wrong results, simple, 30 lines MWE attached.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1460506#M165327</link>
      <description>&lt;P&gt;Thank you all Barbara and mecej4, I appreciate your endeavor!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 01 Mar 2023 06:32:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/O2-O3-gives-obvious-wrong-results-simple-30-lines-MWE-attached/m-p/1460506#M165327</guid>
      <dc:creator>CRquantum</dc:creator>
      <dc:date>2023-03-01T06:32:34Z</dc:date>
    </item>
  </channel>
</rss>

