<?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 Hi, in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Extended-precision/m-p/939203#M89548</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;Thanks for the response. Neither of the compiler options had any effect on the solution. I will play around with the code to see if I can determine the cause or, alternatively, just turn a blind eye to this...&lt;/P&gt;

&lt;P&gt;With kind regards&lt;/P&gt;

&lt;P&gt;TJ&lt;/P&gt;</description>
    <pubDate>Wed, 18 Dec 2013 18:36:29 GMT</pubDate>
    <dc:creator>tjt</dc:creator>
    <dc:date>2013-12-18T18:36:29Z</dc:date>
    <item>
      <title>Extended precision</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Extended-precision/m-p/939198#M89543</link>
      <description>&lt;P&gt;Quick query.&lt;/P&gt;

&lt;P&gt;I might be completely wrong with this but are dynamically allocated real*8 arrays stored at 80 bits while static arrays are stored at 64 bits?&lt;/P&gt;

&lt;P&gt;If so, is there a way to disable this so the stack is at 64 bits?&lt;/P&gt;

&lt;P&gt;Thanks in advance&lt;/P&gt;

&lt;P&gt;TJ.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Dec 2013 19:13:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Extended-precision/m-p/939198#M89543</guid>
      <dc:creator>tjt</dc:creator>
      <dc:date>2013-12-16T19:13:02Z</dc:date>
    </item>
    <item>
      <title>This can't be quick, as it's</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Extended-precision/m-p/939199#M89544</link>
      <description>&lt;P&gt;This can't be&amp;nbsp;quick, as it's not clear what you have in mind.&lt;/P&gt;

&lt;P&gt;ifort has no way to store real*8 in 80-bit format.&lt;/P&gt;

&lt;P&gt;The /Qpc options are still described in the Windows .chm help file, but I suppose you would need to be using the 32-bit (ia32) compiler with architecture option set to ia32 (/arch:IA32 or -mia32, according to Windows or linux). &amp;nbsp;This subject still isn't close to your wording.&lt;/P&gt;</description>
      <pubDate>Mon, 16 Dec 2013 20:21:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Extended-precision/m-p/939199#M89544</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2013-12-16T20:21:12Z</dc:date>
    </item>
    <item>
      <title>The simple answer to what you</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Extended-precision/m-p/939200#M89545</link>
      <description>&lt;P&gt;The simple answer to what you seem to be getting at is "No, they aren't, so just use the default options and you won't get any 80-bit floats." Even if you used a 32-bit compiler and used the options Tim mentions, at best you'd get intermediate calculations in 80-bit registers but they'd never get stored to memory that way. The default is to use the precision you declare and the SSE instructions used for floating point don't have an 80-bit option.&lt;/P&gt;</description>
      <pubDate>Mon, 16 Dec 2013 20:25:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Extended-precision/m-p/939200#M89545</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2013-12-16T20:25:15Z</dc:date>
    </item>
    <item>
      <title>Many thanks for the responses</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Extended-precision/m-p/939201#M89546</link>
      <description>&lt;P&gt;Many thanks for the responses!&lt;/P&gt;

&lt;P&gt;Sorry for not being clearer in my query. I am running ifort 11.1 on a 64 bit Linux machine. I am trying to determine why an modification to my code influences the value of a function.&lt;/P&gt;

&lt;P&gt;I have a number of dynamically allocated arrays :&lt;/P&gt;

&lt;P&gt;&amp;nbsp;real*8,save,allocatable :: &amp;nbsp;&amp;nbsp; &amp;nbsp;DENSITY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (:)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;real*8,save,allocatable :: &amp;nbsp;&amp;nbsp; &amp;nbsp;MASS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; (:)&lt;BR /&gt;
	&amp;nbsp;real*8,save,allocatable :: &amp;nbsp;&amp;nbsp; &amp;nbsp;PRESSURE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (:)&lt;/P&gt;

&lt;P&gt;in my function I calculate the value of variable 'pressure_force_ij' from&lt;/P&gt;

&lt;P&gt;&amp;nbsp;real*8 &amp;nbsp;&amp;nbsp; &amp;nbsp;pressure_force_ij&lt;/P&gt;

&lt;P&gt;&amp;nbsp;pressure_force_ij = ((pressure(i)+pressure(j))/2.0) * (mass(j)/density(j))&lt;/P&gt;

&lt;P&gt;Now, if I change this to&lt;/P&gt;

&lt;P&gt;&amp;nbsp;real*8 &amp;nbsp;&amp;nbsp; &amp;nbsp;pressure_force_ij&lt;/P&gt;

&lt;P&gt;&amp;nbsp;real*8 &amp;nbsp;&amp;nbsp;&amp;nbsp; pressure_i, pressure_j, mass_j, density_j&lt;/P&gt;

&lt;P&gt;&amp;nbsp;pressure_i = pressure(i)&lt;/P&gt;

&lt;P&gt;&amp;nbsp;pressure_j = pressure(j)&lt;/P&gt;

&lt;P&gt;&amp;nbsp;mass_j&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = mass(j)&lt;/P&gt;

&lt;P&gt;&amp;nbsp;density_j&amp;nbsp;&amp;nbsp;&amp;nbsp; = density(j)&lt;/P&gt;

&lt;P&gt;&amp;nbsp;pressure_force_ij = ((pressure_i+pressure_j)/2.0) * (mass_j/density_j)&lt;/P&gt;

&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;I should get the same value but I find that I get a very slightly difference. This is evident as the pressure force value exhibits positive feedback behaviour. I thought that this could be explained by the dynamic and static variables being stored at differing precisions but it would appear that this is not the case.&lt;/P&gt;

&lt;P&gt;I am compiling with flags -O2 -openmp -xAVX -traceback -check bounds&lt;/P&gt;

&lt;P&gt;Any ideas on why the change would effect the result?&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;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&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;</description>
      <pubDate>Tue, 17 Dec 2013 11:42:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Extended-precision/m-p/939201#M89546</guid>
      <dc:creator>tjt</dc:creator>
      <dc:date>2013-12-17T11:42:19Z</dc:date>
    </item>
    <item>
      <title>If you are looking for the</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Extended-precision/m-p/939202#M89547</link>
      <description>&lt;P&gt;If you are looking for the parentheses to force the same order of evaluation in the two cases, you should add the option -assume protect_parens (or an option which includes that). &amp;nbsp; As far as I know, the lack of default status for this option is a historical question (might even involve your suspicions about past extended precision options).&lt;/P&gt;

&lt;P&gt;Depending on how this code is used, -prec-div may also have an effect; without it, the compiler will look for opportunities to replace&amp;nbsp;&lt;SPAN style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;/density_j by 1/density_j * (which&amp;nbsp;has&amp;nbsp;numerical implications), as well as replacing /2.0 by *0.5 (which is completely safe and seems unnecessary to be controlled by -prec-div).&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;I don't know at which&amp;nbsp;version ifort began having problems with allocatable under the -openmp option; I think that would be subsequent to the final 11.1 version (and appears to be corrected in the latest 13.1 and 14.0 versions). &amp;nbsp;In the 11.1 series also, it would be preferable to use the final update version.&lt;/P&gt;</description>
      <pubDate>Tue, 17 Dec 2013 12:28:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Extended-precision/m-p/939202#M89547</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2013-12-17T12:28:00Z</dc:date>
    </item>
    <item>
      <title>Hi,</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Extended-precision/m-p/939203#M89548</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;Thanks for the response. Neither of the compiler options had any effect on the solution. I will play around with the code to see if I can determine the cause or, alternatively, just turn a blind eye to this...&lt;/P&gt;

&lt;P&gt;With kind regards&lt;/P&gt;

&lt;P&gt;TJ&lt;/P&gt;</description>
      <pubDate>Wed, 18 Dec 2013 18:36:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Extended-precision/m-p/939203#M89548</guid>
      <dc:creator>tjt</dc:creator>
      <dc:date>2013-12-18T18:36:29Z</dc:date>
    </item>
    <item>
      <title> Tim covered the effects and</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Extended-precision/m-p/939204#M89549</link>
      <description>&lt;P&gt;&amp;nbsp;Tim covered the effects and switches that seemed most likely to be responsible.&amp;nbsp;&amp;nbsp;&amp;nbsp;However, if you build with -fp-model precise, that should suppress all the optimizations that might lead to small variations in results. See the article attached at &lt;A href="http://software.intel.com/en-us/articles/consistency-of-floating-point-results-using-the-intel-compiler/"&gt;http://software.intel.com/en-us/articles/consistency-of-floating-point-results-using-the-intel-compiler/&lt;/A&gt;&amp;nbsp;for more detail than you proably want to know. If that doesn't help, check carefully that you don't have typos in any of your type declarations - use implicit none, and perhaps -real-size=64.&lt;/P&gt;</description>
      <pubDate>Wed, 18 Dec 2013 21:44:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Extended-precision/m-p/939204#M89549</guid>
      <dc:creator>Martyn_C_Intel</dc:creator>
      <dc:date>2013-12-18T21:44:35Z</dc:date>
    </item>
  </channel>
</rss>

