<?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: What does stack overflow imply? in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802284#M38333</link>
    <description>&lt;P&gt;&lt;FONT face="Arial"&gt;Coding changes to recognize unnecessary temps may be a substantial effort. And the payback (to Intel) might not be worth the effort.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;Adding a "-check:arg_temp_created" would be relatively easy to do. And the payback to an individual customer might be significant.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;There are not only performance issues but some coding issues as well. Assume a temporary is created (when it need not be) and the address is passed on to a function or subroutine. Further assume the temporary was derived from an array which is shared in OpenMP. In this case you have the opportunity to have multiple and different instances of the same data.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;It would be nice to have a compiler warning so I could be informed if temporaries are created. This would save me a lot of debugging effort.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;Jim Dempsey&lt;/FONT&gt;&lt;/P&gt;</description>
    <pubDate>Sun, 10 Sep 2006 02:55:22 GMT</pubDate>
    <dc:creator>jimdempseyatthecove</dc:creator>
    <dc:date>2006-09-10T02:55:22Z</dc:date>
    <item>
      <title>What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802274#M38323</link>
      <description>Hello,&lt;BR /&gt;&lt;BR /&gt;I writing a Monte-Carlo random walk simulation, and if I do it with a large number of particles (300,000), I get a stack overflow error. I am confused as to what that error may signify.&lt;BR /&gt;&lt;BR /&gt;Here are the gory details:&lt;BR /&gt;&lt;BR /&gt;The error occurs in the routine &lt;SPAN style="font-family: Courier New;"&gt;execute_simulation&lt;/SPAN&gt; (in red) in the following module (I include the module header). It occurs during the first loop of that routine. The routine &lt;SPAN style="font-family: Courier New;"&gt;execute_simulation &lt;SPAN style="font-family: Verdana;"&gt;is called from the &lt;SPAN style="font-family: Courier New;"&gt;main&lt;/SPAN&gt; program.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="#808080" face="Courier New"&gt;module simulation_class&lt;BR /&gt; use misc_math_utilities&lt;BR /&gt; use particle_cloud_class&lt;BR /&gt; implicit none&lt;BR /&gt;&lt;BR /&gt; type simulation&lt;BR /&gt; integer :: file_unit&lt;BR /&gt; REAL :: DT=1e-6&lt;BR /&gt; integer :: cMax_part=10,cMax_steps=10,iStep,seed_arr(2)=(/1,1/)&lt;BR /&gt; type (Particle_cloud) ::oParticle_cloud&lt;BR /&gt; real, dimension(3)::vRinit,vVinit&lt;BR /&gt; integer cPart&lt;BR /&gt; logical fPrint_av_KE&lt;BR /&gt;&lt;BR /&gt; end type simulation&lt;BR /&gt;&lt;BR /&gt; interface create_obj&lt;BR /&gt; module procedure create_simulation_obj&lt;BR /&gt; end interface&lt;BR /&gt; interface print_obj_def&lt;BR /&gt; module procedure print_simulation_obj_def&lt;BR /&gt; end interface&lt;BR /&gt;&lt;BR /&gt;... other routines omitted ...&lt;BR /&gt; subroutine execute_simulation(self)&lt;BR /&gt; type (simulation) self&lt;BR /&gt; integer step&lt;BR /&gt; do step=1,self%cMax_steps&lt;BR /&gt; &lt;FONT color="#ff0000"&gt;call take_step(self%oParticle_cloud)&lt;/FONT&gt;&lt;BR /&gt; call print_stats(self%oParticle_cloud,step)&lt;BR /&gt; end do&lt;BR /&gt;&lt;BR /&gt; end subroutine execute_simulation&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#808080" face="Courier New"&gt;end module&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;The &lt;FONT face="Courier New"&gt;take_step&lt;/FONT&gt; routine is in the following module&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="#808080" face="Courier New"&gt;MODULE particle_cloud_class&lt;BR /&gt;&lt;BR /&gt; use misc_math_utilities&lt;BR /&gt;&lt;BR /&gt; type particle_cloud&lt;BR /&gt; integer Count&lt;BR /&gt; real,allocatable::mStorage(:,:)&lt;BR /&gt; end type particle_cloud&lt;BR /&gt; integer iPart ! used for looping through particles&lt;BR /&gt; integer::viCoords(3)=(/1,2,3/),viVel(3)=(/4,5,6/)&lt;BR /&gt;&lt;BR /&gt; interface create_obj&lt;BR /&gt; module procedure create_particle_cloud_obj&lt;BR /&gt; end interface&lt;BR /&gt; interface print_obj_def&lt;BR /&gt; module procedure print_particle_cloud_def&lt;BR /&gt; end interface&lt;BR /&gt; interface print_stats&lt;BR /&gt; module procedure print_R_stats&lt;BR /&gt; end interface&lt;BR /&gt; &lt;BR /&gt;... stuff omitted &lt;BR /&gt;&lt;BR /&gt; &lt;FONT color="#ff0000"&gt;subroutine take_step(self)&lt;BR /&gt; type (particle_cloud)::self&lt;BR /&gt; real::temp(3)&lt;BR /&gt; self%mStorage(viCoords,:)=self%mStorage(viCoords,:)+self%mStorage(viVel,:)&lt;BR /&gt;&lt;BR /&gt; do iPart=1,self%Count&lt;BR /&gt; temp=rn_point_on_sphere()&lt;BR /&gt; self%mStorage(viVel,iPart)=temp&lt;BR /&gt; end do&lt;BR /&gt; end subroutine t
ake_step&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/FONT&gt;where &lt;FONT face="Courier New"&gt;rn_point_on_sphere()&lt;/FONT&gt; is a function that returns a 3-element vector of a random point on a sphere. I have tested that generator for up to 10^8 calls, and it seems to work ok.&lt;BR /&gt;&lt;BR /&gt;I am not sure how to go and debug that error. Thanks for any pointers and suggestions.&lt;BR /&gt;&lt;BR /&gt;Mirko&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 01 Sep 2006 23:15:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802274#M38323</guid>
      <dc:creator>mirko_vukovic</dc:creator>
      <dc:date>2006-09-01T23:15:15Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802275#M38324</link>
      <description>See &lt;A href="https://community.intel.com/en-us/forums//topic/41911#12580"&gt;Don't Blow Your Stack&lt;/A&gt;. Also, look for the next update of the compiler (real soon now) to include an option to use the heap for temporary arrays, pretty much eliminating the stack overflow issue for most applications.&lt;BR /&gt;</description>
      <pubDate>Fri, 01 Sep 2006 23:57:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802275#M38324</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2006-09-01T23:57:04Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802276#M38325</link>
      <description>&lt;P&gt;Mirko,&lt;/P&gt;
&lt;P&gt;Perhaps the compiler is creating an unnecessary temporary variable to perform the integration step addition.&lt;/P&gt;
&lt;P&gt;Try replacing the array copy with equivelent loop:&lt;/P&gt;
&lt;P&gt;subroutine take_step(self)&lt;BR /&gt; type (particle_cloud)::self&lt;BR /&gt; real::temp(3)&lt;/P&gt;
&lt;P&gt; do iPart=1,self%Count&lt;BR /&gt; self%mStorage(viCoords,iPart)=self%mStorage(viCoords,iPart)+self%mStorage(viVel,iPart)&lt;BR /&gt; end do&lt;BR /&gt;&lt;BR /&gt; do iPart=1,self%Count&lt;BR /&gt; temp=rn_point_on_sphere()&lt;BR /&gt; self%mStorage(viVel,iPart)=temp&lt;BR /&gt; end do&lt;BR /&gt; end subroutine take_step&lt;/P&gt;
&lt;P&gt;Jim Dempsey&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 02 Sep 2006 03:24:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802276#M38325</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2006-09-02T03:24:25Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802277#M38326</link>
      <description>&lt;P&gt;&lt;FONT face="Courier New"&gt;Additional Information:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;If the loop replacement from the prior post corrects the Stack Overflow problem then at some point in the future you may want to consider optimizing the Euler integration. Create a subroutine that redefines the array of XYZ vectors into a rank 1 array of reals. Then perform the array incriment on the rank 1 array of reals. The compiler can then optimize the code for the size of real and if you choose SSE3 optimizations.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Jim&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 02 Sep 2006 04:05:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802277#M38326</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2006-09-02T04:05:50Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802278#M38327</link>
      <description>Thank you. &lt;BR /&gt;&lt;BR /&gt;I will play a bit with setting the stack size, and the suggestions of the two other posters.&lt;BR /&gt;&lt;BR /&gt;Mirko&lt;BR /&gt;</description>
      <pubDate>Sat, 09 Sep 2006 03:00:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802278#M38327</guid>
      <dc:creator>mirko_vukovic</dc:creator>
      <dc:date>2006-09-09T03:00:44Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802279#M38328</link>
      <description>Jim,&lt;BR /&gt;&lt;BR /&gt;Your suggested modification did not help.&lt;BR /&gt;&lt;BR /&gt;I should point out that the error is &lt;I&gt;reported&lt;/I&gt; where the take_step routine is &lt;I&gt;called.&lt;BR /&gt;&lt;BR /&gt;&lt;/I&gt;The caller routine looks like this:&lt;BR /&gt;&lt;FONT face="Courier New"&gt;&lt;BR /&gt; subroutine execute_simulation(self)&lt;BR /&gt; type (simulation) self&lt;BR /&gt; integer step&lt;BR /&gt; do step=1,self%cMax_steps&lt;BR /&gt; &lt;FONT color="#ff0000"&gt;call take_step(self%oParticle_cloud)&lt;/FONT&gt;&lt;BR /&gt; call print_stats(self%oParticle_cloud,step)&lt;BR /&gt; end do&lt;BR /&gt;&lt;BR /&gt; end subroutine execute_simulation&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="Verdana"&gt;and the run-time stack overflow error points to the highlited line.&lt;BR /&gt;&lt;BR /&gt;I have already encountered a similar problem in the same code. There was an error in a routine that calculates a random number (sqrt of a negative number). However, the run-time error was pointing to the statement that &lt;I&gt;calls&lt;/I&gt; this routine. I have sent the relevant code the intel support.&lt;BR /&gt;&lt;BR /&gt;Mirko&lt;BR /&gt;&lt;/FONT&gt;&lt;/FONT&gt;</description>
      <pubDate>Sat, 09 Sep 2006 03:25:23 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802279#M38328</guid>
      <dc:creator>mirko_vukovic</dc:creator>
      <dc:date>2006-09-09T03:25:23Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802280#M38329</link>
      <description>I mentioned earlier that the compiler would soon have an option to allocate temporaries on the heap. The good news is that it does, as of 9.1.029. The bad news is that support for the new switch, /heap-arrays as described in the release notes (which none of you read, apparently...), was inadvertently left out of the command driver in this release. It will get fixed for the next one. In the meantime, you can add this to the command line options:&lt;BR /&gt;&lt;BR /&gt;-Qoption,f,"-heap_arrays 0"&lt;BR /&gt;&lt;BR /&gt;and it will enable the feature.&lt;BR /&gt;</description>
      <pubDate>Sat, 09 Sep 2006 03:28:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802280#M38329</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2006-09-09T03:28:24Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802281#M38330</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;DIV&gt;&lt;IMG src="https://community.intel.com/file/6745" /&gt; &lt;STRONG&gt;MADsblionel:&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;I mentioned earlier that the compiler would soon have an option to allocate temporaries on the heap. The good news is that it does, as of 9.1.029. The bad news is that support for the new switch, /heap-arrays as described in the release notes (which none of you read, apparently...), was inadvertently left out of the command driver in this release. It will get fixed for the next one. In the meantime, you can add this to the command line options:&lt;BR /&gt;&lt;BR /&gt;-Qoption,f,"-heap_arrays 0"&lt;BR /&gt;&lt;BR /&gt;and it will enable the feature.&lt;BR /&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;I tried both options: increased the stack size, and separately invoked the switch. Both worked. But that should not be news to you -- you expected it to work :-)&lt;BR /&gt;&lt;BR /&gt;Thank you&lt;BR /&gt;&lt;BR /&gt;Mirko&lt;BR /&gt;</description>
      <pubDate>Sat, 09 Sep 2006 04:38:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802281#M38330</guid>
      <dc:creator>mirko_vukovic</dc:creator>
      <dc:date>2006-09-09T04:38:14Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802282#M38331</link>
      <description>&lt;P&gt;So the runtime _complaint_ went away but the underlaying problem did not.&lt;/P&gt;
&lt;P&gt;The problem is likely unnecessary temporaries being created. These not only consume stack space but creates excessive call overhead.&lt;/P&gt;
&lt;P&gt;It would be nice if the compiler had an option to issue an information message when it creates a temporary array. The runtime system can report a warning on some calls. IMHO the warning needs to be issued at compile time too.&lt;/P&gt;
&lt;P&gt;Jim Dempsey&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 09 Sep 2006 11:42:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802282#M38331</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2006-09-09T11:42:15Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802283#M38332</link>
      <description>Jim, you said&lt;BR /&gt;"It would be nice if the compiler had an option to issue an information message when it creates a temporary array."&lt;BR /&gt;-check:arg_temp_created has been discussed in the Fortran forum, along with invitations to submit Premier reports of cases where the compiler should recognize the temporary is unnecessary. I've submitted several such, after checking the effect on performance. It's not always evident whether the temporary improves or degrades performance. Real cases from more customers ought to raise the priority on this.&lt;BR /&gt;Also, there are cases where the temporary is loop invariant, so it could be created and destroyed outside an inner loop, likely making it beneficial for performance.&lt;BR /&gt;</description>
      <pubDate>Sat, 09 Sep 2006 21:16:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802283#M38332</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2006-09-09T21:16:34Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802284#M38333</link>
      <description>&lt;P&gt;&lt;FONT face="Arial"&gt;Coding changes to recognize unnecessary temps may be a substantial effort. And the payback (to Intel) might not be worth the effort.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;Adding a "-check:arg_temp_created" would be relatively easy to do. And the payback to an individual customer might be significant.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;There are not only performance issues but some coding issues as well. Assume a temporary is created (when it need not be) and the address is passed on to a function or subroutine. Further assume the temporary was derived from an array which is shared in OpenMP. In this case you have the opportunity to have multiple and different instances of the same data.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;It would be nice to have a compiler warning so I could be informed if temporaries are created. This would save me a lot of debugging effort.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;Jim Dempsey&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 10 Sep 2006 02:55:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802284#M38333</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2006-09-10T02:55:22Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802285#M38334</link>
      <description>As Tim said, there IS a "-check:arg_temps_created". This applies to temps created for passing arguments only, not those created for evaluating expressions. For arguments, the compiler generates run-time code to determine if a temp is needed so if you get one in a situation that doesn't require one, that's a big and please report it.&lt;BR /&gt;&lt;BR /&gt;Eliminating temps in assignments is a big performance win, and it is something we are constantly improving. The analysis can sometimes be tricky.&lt;BR /&gt;</description>
      <pubDate>Sun, 10 Sep 2006 04:34:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802285#M38334</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2006-09-10T04:34:19Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802286#M38335</link>
      <description>&lt;P&gt;It's nice to hear you're trying to eliminate unnecessary temps. I've given up using array sectoring on anything except arrays with known and small dimensionsbecause of the stack overflows. Allocation on the heap rather than the stack won't help me: since I do what I can to optimize my own usage of the heap, that will just convert my stack overflows into stack-heap collisions. I've been writingutility subs as necessary to manipulate array sectors as whole arrays when possible and indexing them myself when not.I haven't had any problems since I began doing so.&lt;/P&gt;
&lt;P&gt;Bruce&lt;/P&gt;</description>
      <pubDate>Tue, 12 Sep 2006 07:53:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802286#M38335</guid>
      <dc:creator>dbruceg</dc:creator>
      <dc:date>2006-09-12T07:53:25Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802287#M38336</link>
      <description>&lt;P&gt;&lt;FONT face="Arial"&gt;Steve:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;/check:&lt;KEYWORD&gt;&lt;BR /&gt; check run-time conditions&lt;BR /&gt; keywords: all (same as /4Yb), none (same as /nocheck, /4Nb), &lt;BR /&gt; [no]arg_temp_created, [no]bounds,[no]format,&lt;BR /&gt; [no]output_conversion, [no]power, [no]uninit, [no]args&lt;BR /&gt;&lt;/KEYWORD&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;This is a run time check&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;It would be much nicer to have a compile time check issue an information messagesuch that I can use the IDE to fix the source file(s). &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;Receiving: &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;forrtl: warning (402): fort: (1): In call to AVSETVIEWPOINT, an array temporary&lt;BR /&gt;was created for argument #2&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;Helps only if I have a console window and look at the console window. Which may be flipping a whole bunch of other stuff. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;In looking at the above message which of my 700+ source modules has the problem call???&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;Jim Dempsey&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Sep 2006 03:31:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802287#M38336</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2006-09-14T03:31:11Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802288#M38337</link>
      <description>Jim,&lt;BR /&gt;&lt;BR /&gt;This is a run-time check because the compiled code does a run-time test to see if the argument is contiguous. If it is, then no temp is created and no warning. The accompanying trraceback should identify the location.&lt;BR /&gt;</description>
      <pubDate>Thu, 14 Sep 2006 20:33:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802288#M38337</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2006-09-14T20:33:14Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802289#M38338</link>
      <description>&lt;P&gt;Steve:&lt;/P&gt;
&lt;P&gt;I think I missed something important in the discussions over the past few months. Are you saying that&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;a(:) = b(kf:kl,indx)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;will generate stack temps, but&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;p = Dot_Product(r(jf:jl,indr),s(kf:kl,inds))&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;will not?&lt;/P&gt;
&lt;P&gt;Bruce&lt;/P&gt;</description>
      <pubDate>Fri, 15 Sep 2006 01:00:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802289#M38338</guid>
      <dc:creator>dbruceg</dc:creator>
      <dc:date>2006-09-15T01:00:37Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802290#M38339</link>
      <description>I'd need an actual program to say for sure. The first statement shouldn't ever need a temp, and if it does, that's something that should be fixed. By the way, instead of a(:) you should simply write a.&lt;BR /&gt;&lt;BR /&gt;For the second, a lot might depend on what the values of indr and inds are and what the declarations of the variables are. &lt;BR /&gt;</description>
      <pubDate>Fri, 15 Sep 2006 02:08:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802290#M38339</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2006-09-15T02:08:47Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802291#M38340</link>
      <description>&lt;P&gt;&lt;FONT face="Arial"&gt;Steve:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;I seem to have missed something big in the discussions about stack temps over the past few months. Are you saying that&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;a(:) = b(kf:kl,indx)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;will generate stack temps, but&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;p = Dot_Product ( r(jf:jl,indr) , s(kf:kl,inds) )&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;will not?&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Arial"&gt;Bruce&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 15 Sep 2006 03:54:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802291#M38340</guid>
      <dc:creator>dbruceg</dc:creator>
      <dc:date>2006-09-15T03:54:19Z</dc:date>
    </item>
    <item>
      <title>Re: What does stack overflow imply?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802292#M38341</link>
      <description>Bruce,&lt;BR /&gt;&lt;BR /&gt;Did you intend to repost your earlier question?&lt;BR /&gt;</description>
      <pubDate>Fri, 15 Sep 2006 07:05:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/What-does-stack-overflow-imply/m-p/802292#M38341</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2006-09-15T07:05:31Z</dc:date>
    </item>
  </channel>
</rss>

