<?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 The presence of the reduction in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/XE-2017-regression-with-OpenMP-parallel-if-clause/m-p/1070731#M119402</link>
    <description>&lt;P&gt;The presence of the reduction clause is also significant - if it's not there then no problem. Thanks for filing the IPS issue.&lt;/P&gt;</description>
    <pubDate>Wed, 21 Sep 2016 13:28:21 GMT</pubDate>
    <dc:creator>Steven_L_Intel1</dc:creator>
    <dc:date>2016-09-21T13:28:21Z</dc:date>
    <item>
      <title>XE 2017 regression with OpenMP parallel if clause</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/XE-2017-regression-with-OpenMP-parallel-if-clause/m-p/1070727#M119398</link>
      <description>&lt;P&gt;Apologies for posting this here rather than at Premier Support, but:&lt;/P&gt;

&lt;P&gt;1) I won't be around for the next week.&lt;/P&gt;

&lt;P&gt;2) I haven't managed to produce a small reproducer yet and won't have time to do so today.&lt;/P&gt;

&lt;P&gt;While trying to build our main engine project with Intel Fortran Composer XE2017 (17.0.0.109), I get several compilation errors on OpenMP directives:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;    subroutine perf_faceflux_lp(current_model, retval)
        ! The following statement is only compiled when OpenMP directives are processed
        !$ use omp_lib
        logical :: do_in_parallel

        ! Declarations and code elided

        !$OMP parallel &amp;amp;
        !$OMP &amp;amp; if(do_in_parallel) &amp;amp;
        !$OMP &amp;amp; shared(current_model) &amp;amp;
        !$OMP &amp;amp; private(update_face) &amp;amp;
        !$OMP &amp;amp; private(dt_l) &amp;amp;
        !$OMP &amp;amp; private(list_of_new_updated_elem) &amp;amp;
        !$OMP &amp;amp; private(num_new_update_elem) &amp;amp;
        !$OMP &amp;amp; private(istat) &amp;amp;
        !$OMP &amp;amp; reduction(.or.: activate_bed_load)

        ! More code!
&lt;/PRE&gt;

&lt;P&gt;generates the following compilation errors:&lt;/P&gt;

&lt;P&gt;F:\Source\bluezone.xe2017\engines\infoworks_2d\iw_2d_sim\Lib1\face_flux.F90(120): error #5192: Lead underscore not allowed&lt;BR /&gt;
	F:\Source\bluezone.xe2017\engines\infoworks_2d\iw_2d_sim\Lib1\face_flux.F90(120): error #5082: Syntax error, found 'DO' when expecting one of: TASK TASKLOOP TARGET PARALLEL &amp;lt;REAL_KIND_CON&amp;gt; &amp;lt;REAL_CONSTANT&amp;gt; &amp;lt;DBLPRC_CONSTANT&amp;gt; ...&lt;BR /&gt;
	F:\Source\bluezone.xe2017\engines\infoworks_2d\iw_2d_sim\Lib1\face_flux.F90(169): error #7622: Misplaced part of an OpenMP* parallel directive.&lt;/P&gt;

&lt;P&gt;This code has compiled successfully on older versions of the compiler including XE 2016 and XE 2015 update with no problems.&lt;/P&gt;

&lt;P&gt;Fails on all platforms and configurations for XE 2017.&lt;/P&gt;

&lt;P&gt;Sample command line options:&lt;/P&gt;

&lt;P&gt;/nologo /debug:full /Od /I"..\lib2\Debug.x64" /I"..\..\..\cs\simlib\Debug.x64" /I"F:\Source\bluezone.xe2017\engines\cs\simlib\Debug.x64" /Qopenmp /stand:f03 /Qdiag-disable:7025,7363 /warn:declarations /warn:unused /warn:truncated_source /Qauto /module:"Debug.x64/" /object:"Debug.x64/" /Fd"Debug.x64\vc120.pdb" /traceback /check:bounds /libs:dll /threads /dbglibs /Qmkl:parallel /libdir:noauto /c&lt;/P&gt;

&lt;P&gt;I can work around this by renaming do_in_parallel to exec_in_parallel!&lt;/P&gt;</description>
      <pubDate>Fri, 09 Sep 2016 10:09:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/XE-2017-regression-with-OpenMP-parallel-if-clause/m-p/1070727#M119398</guid>
      <dc:creator>Mark_Lewy</dc:creator>
      <dc:date>2016-09-09T10:09:43Z</dc:date>
    </item>
    <item>
      <title>Update: I've submitted a</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/XE-2017-regression-with-OpenMP-parallel-if-clause/m-p/1070728#M119399</link>
      <description>&lt;P&gt;Update: I've submitted a small reproducer for this with Premier Support, it's issue &lt;SPAN style="font-weight:bold;color:#339933"&gt;6000163005.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 20 Sep 2016 16:15:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/XE-2017-regression-with-OpenMP-parallel-if-clause/m-p/1070728#M119399</guid>
      <dc:creator>Mark_Lewy</dc:creator>
      <dc:date>2016-09-20T16:15:44Z</dc:date>
    </item>
    <item>
      <title>Hmm ... this seems vaguely</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/XE-2017-regression-with-OpenMP-parallel-if-clause/m-p/1070729#M119400</link>
      <description>&lt;P&gt;Hmm ... this seems vaguely familiar.&lt;/P&gt;

&lt;P&gt;The parser is getting confused by this line:&lt;/P&gt;

&lt;P&gt;&lt;FONT face="Courier New"&gt;!$OMP &amp;amp; &lt;CODE class="fortran keyword"&gt;if&lt;/CODE&gt;&lt;CODE class="fortran plain"&gt;(do_in_parallel) &amp;amp;&lt;/CODE&gt;&lt;/FONT&gt;&lt;/P&gt;

&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;CODE class="fortran plain"&gt;If you change the name of that logical to something else, maybe "goo_in_parallel", then it should compile.&lt;/CODE&gt;&lt;/FONT&gt;&lt;/P&gt;

&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;CODE class="fortran plain"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;--Lorri&lt;/CODE&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 20 Sep 2016 16:20:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/XE-2017-regression-with-OpenMP-parallel-if-clause/m-p/1070729#M119400</guid>
      <dc:creator>Lorri_M_Intel</dc:creator>
      <dc:date>2016-09-20T16:20:48Z</dc:date>
    </item>
    <item>
      <title>Thanks Lorri,</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/XE-2017-regression-with-OpenMP-parallel-if-clause/m-p/1070730#M119401</link>
      <description>&lt;P&gt;Thanks Lorri,&lt;/P&gt;

&lt;P&gt;You will note that in my original post, I also found that renaming the scalar-logical-expression (as the OpenMP spec names it) in the if clause allowed the code to compile.&amp;nbsp; I wonder if the issue is that the original variable name starts with an OpenMP (or Fortran) keyword?&lt;/P&gt;</description>
      <pubDate>Wed, 21 Sep 2016 07:44:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/XE-2017-regression-with-OpenMP-parallel-if-clause/m-p/1070730#M119401</guid>
      <dc:creator>Mark_Lewy</dc:creator>
      <dc:date>2016-09-21T07:44:48Z</dc:date>
    </item>
    <item>
      <title>The presence of the reduction</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/XE-2017-regression-with-OpenMP-parallel-if-clause/m-p/1070731#M119402</link>
      <description>&lt;P&gt;The presence of the reduction clause is also significant - if it's not there then no problem. Thanks for filing the IPS issue.&lt;/P&gt;</description>
      <pubDate>Wed, 21 Sep 2016 13:28:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/XE-2017-regression-with-OpenMP-parallel-if-clause/m-p/1070731#M119402</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2016-09-21T13:28:21Z</dc:date>
    </item>
  </channel>
</rss>

