<?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 This appears related to the in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Complex-Matrix-Assign-Crashes-in-IFORT-16-0-3/m-p/1097957#M126022</link>
    <description>&lt;P&gt;This appears related to the creation of array stack temporaries. The program runs with pre-16.0 compilers without any aid and runs with 16.0 compilers&amp;nbsp;with the aid of either -&lt;STRONG&gt;heap-arrays&lt;/STRONG&gt; or elevating the shell stack limit (i.e. &lt;STRONG&gt;ulimit –s unlimited&lt;/STRONG&gt;).&lt;/P&gt;

&lt;P&gt;I need to consult others whether the changed behavior was anticipated with 16.0. I'll update after learning more.&lt;/P&gt;

&lt;P&gt;For convenience I included your test case below.&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;!======================================================================
program test
&amp;nbsp; implicit none

&amp;nbsp; integer, parameter :: db = kind(1.0d0)
&amp;nbsp; integer, parameter :: sg = kind(1.0)

&amp;nbsp; integer, parameter :: stdout = 6

&amp;nbsp; ! local variables
&amp;nbsp; integer :: itmp, i, ierr, m

&amp;nbsp; complex(db), allocatable :: zz(:,:)
&amp;nbsp; complex(sg), allocatable :: cc(:,:)

&amp;nbsp; m = 5868

&amp;nbsp; allocate(zz(m,m),stat=ierr)
&amp;nbsp; write(stdout,*) 'IERR: ', ierr
&amp;nbsp; allocate(cc(m,m),stat=ierr)
&amp;nbsp; write(stdout,*) 'IERR: ', ierr

&amp;nbsp; zz = 0._db ! This line ok
&amp;nbsp; zz = cmplx(0._db,0._db,db) ! This line crashes

&amp;nbsp; cc = 0._sg ! This line ok
&amp;nbsp; cc = cmplx(0._sg,0._sg,sg) ! This line crashes

&amp;nbsp; deallocate(zz,cc)

end program test&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 17 Jun 2016 16:24:06 GMT</pubDate>
    <dc:creator>Kevin_D_Intel</dc:creator>
    <dc:date>2016-06-17T16:24:06Z</dc:date>
    <item>
      <title>Complex Matrix Assign Crashes in IFORT 16.0.3</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Complex-Matrix-Assign-Crashes-in-IFORT-16-0-3/m-p/1097955#M126020</link>
      <description>&lt;DIV class="field field-name-body field-type-text-with-summary field-label-hidden"&gt;
	&lt;DIV class="field-items"&gt;
		&lt;DIV class="field-item even"&gt;
			&lt;P&gt;Hi,&lt;/P&gt;

			&lt;P&gt;Attached is a simple test case that crashes on a complex matrix assign in ifort 16.0.3.&amp;nbsp; It works with all previous ifort versions I have used.&amp;nbsp; The crash occurs when using the cmplx intrinsic and does not occur when not using the intrinsic.&amp;nbsp; For example,&lt;/P&gt;

			&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zz = cmplx(0._db,0._db,db) ! db defined in test file&lt;/P&gt;

			&lt;P&gt;crashes but&lt;/P&gt;

			&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zz = 0._db ! db defined in test file&lt;/P&gt;

			&lt;P&gt;does not.&amp;nbsp; My compile line is&lt;/P&gt;

			&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ifort -traceback testZ8.F90&lt;/P&gt;

			&lt;P&gt;Thanks,&lt;/P&gt;

			&lt;P&gt;John&lt;/P&gt;
		&lt;/DIV&gt;
	&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Wed, 15 Jun 2016 20:23:41 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Complex-Matrix-Assign-Crashes-in-IFORT-16-0-3/m-p/1097955#M126020</guid>
      <dc:creator>John_Y_</dc:creator>
      <dc:date>2016-06-15T20:23:41Z</dc:date>
    </item>
    <item>
      <title>Thank you for the report and</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Complex-Matrix-Assign-Crashes-in-IFORT-16-0-3/m-p/1097956#M126021</link>
      <description>&lt;P&gt;Thank you for the report and reproducer John. We'll look into this.&lt;/P&gt;</description>
      <pubDate>Wed, 15 Jun 2016 21:25:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Complex-Matrix-Assign-Crashes-in-IFORT-16-0-3/m-p/1097956#M126021</guid>
      <dc:creator>Kevin_D_Intel</dc:creator>
      <dc:date>2016-06-15T21:25:03Z</dc:date>
    </item>
    <item>
      <title>This appears related to the</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Complex-Matrix-Assign-Crashes-in-IFORT-16-0-3/m-p/1097957#M126022</link>
      <description>&lt;P&gt;This appears related to the creation of array stack temporaries. The program runs with pre-16.0 compilers without any aid and runs with 16.0 compilers&amp;nbsp;with the aid of either -&lt;STRONG&gt;heap-arrays&lt;/STRONG&gt; or elevating the shell stack limit (i.e. &lt;STRONG&gt;ulimit –s unlimited&lt;/STRONG&gt;).&lt;/P&gt;

&lt;P&gt;I need to consult others whether the changed behavior was anticipated with 16.0. I'll update after learning more.&lt;/P&gt;

&lt;P&gt;For convenience I included your test case below.&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;!======================================================================
program test
&amp;nbsp; implicit none

&amp;nbsp; integer, parameter :: db = kind(1.0d0)
&amp;nbsp; integer, parameter :: sg = kind(1.0)

&amp;nbsp; integer, parameter :: stdout = 6

&amp;nbsp; ! local variables
&amp;nbsp; integer :: itmp, i, ierr, m

&amp;nbsp; complex(db), allocatable :: zz(:,:)
&amp;nbsp; complex(sg), allocatable :: cc(:,:)

&amp;nbsp; m = 5868

&amp;nbsp; allocate(zz(m,m),stat=ierr)
&amp;nbsp; write(stdout,*) 'IERR: ', ierr
&amp;nbsp; allocate(cc(m,m),stat=ierr)
&amp;nbsp; write(stdout,*) 'IERR: ', ierr

&amp;nbsp; zz = 0._db ! This line ok
&amp;nbsp; zz = cmplx(0._db,0._db,db) ! This line crashes

&amp;nbsp; cc = 0._sg ! This line ok
&amp;nbsp; cc = cmplx(0._sg,0._sg,sg) ! This line crashes

&amp;nbsp; deallocate(zz,cc)

end program test&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 17 Jun 2016 16:24:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Complex-Matrix-Assign-Crashes-in-IFORT-16-0-3/m-p/1097957#M126022</guid>
      <dc:creator>Kevin_D_Intel</dc:creator>
      <dc:date>2016-06-17T16:24:06Z</dc:date>
    </item>
    <item>
      <title>Kevin,</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Complex-Matrix-Assign-Crashes-in-IFORT-16-0-3/m-p/1097958#M126023</link>
      <description>&lt;P&gt;Kevin,&lt;/P&gt;

&lt;P&gt;Using "-heap-arrays" is a simple enough workaround.&amp;nbsp; It's interesting the behavior changed though.&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;John&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jun 2016 12:06:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Complex-Matrix-Assign-Crashes-in-IFORT-16-0-3/m-p/1097958#M126023</guid>
      <dc:creator>John_Y_</dc:creator>
      <dc:date>2016-06-20T12:06:12Z</dc:date>
    </item>
    <item>
      <title>In version 15, the compiler</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Complex-Matrix-Assign-Crashes-in-IFORT-16-0-3/m-p/1097959#M126024</link>
      <description>&lt;P&gt;In version 15, the compiler did a simple element-by-element initialization in a loop. In version 16 it created an array temp for the whole initialized array and copied it - this triggered the stack overflow. In the upcoming version 17, it generates a vectorized loop to more efficiently set the values and doesn't use a temp.&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jun 2016 12:45:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Complex-Matrix-Assign-Crashes-in-IFORT-16-0-3/m-p/1097959#M126024</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2016-06-20T12:45:11Z</dc:date>
    </item>
  </channel>
</rss>

