<?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 Understanding Fortran code in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Understanding-Fortran-code/m-p/804637#M39583</link>
    <description>Not really, because lambda functions are unnamed and are basically declared where they're used. But I suppose it's the closest that C++ has to the idea. Statement functions have awkward limitations and puzzling scope - internal procedures are much better, which is why statement functions were selected for deprecation.</description>
    <pubDate>Mon, 18 Oct 2010 20:46:29 GMT</pubDate>
    <dc:creator>Steven_L_Intel1</dc:creator>
    <dc:date>2010-10-18T20:46:29Z</dc:date>
    <item>
      <title>Understanding Fortran code</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Understanding-Fortran-code/m-p/804633#M39579</link>
      <description>Hi,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I have a Fortran 90 code which looks like the following:&lt;/DIV&gt;&lt;DIV&gt;=============================&lt;/DIV&gt;&lt;DIV&gt;Real :: e&lt;/DIV&gt;&lt;DIV&gt;Real :: a,b,c,d&lt;/DIV&gt;&lt;DIV&gt;Real :: a1,b1,c1,d1,p,q&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;a(a1,b1,c1,q) = a1+b1*c1-d1/8.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Integer :: i1&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;! Main computation starts&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;e = a(2.,5.,6.,9.)&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;==============================&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Would you guys please explain what does the "a(a1,b1,c1,q) = a1+b1*c1-d1/8." line segment means? Is it similar to a function call? What do we call this capability in fortran or programming languages in general?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thanks!&lt;BR /&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 18 Oct 2010 19:02:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Understanding-Fortran-code/m-p/804633#M39579</guid>
      <dc:creator>Pipa</dc:creator>
      <dc:date>2010-10-18T19:02:55Z</dc:date>
    </item>
    <item>
      <title>Understanding Fortran code</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Understanding-Fortran-code/m-p/804634#M39580</link>
      <description>That is an obsolescent language feature called "statement function". It is a one-line declaration of a function named "a" that takes four arguments and returns as a result the expression on the right side of the equal sign. The datatype of "a" and its arguments are taken from the earlier declarations. The scope of the declaration of "a" is that routine only.&lt;BR /&gt;&lt;BR /&gt;The last line calls "a" and passes it four arguments - the result is stored in "e".&lt;BR /&gt;&lt;BR /&gt;Statement functions are still technically part of the Fortran language, but are termed "obsolescent" and will be flagged as such by compilers when standards checking is enabled. The recommend replacement is internal functions.</description>
      <pubDate>Mon, 18 Oct 2010 19:22:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Understanding-Fortran-code/m-p/804634#M39580</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2010-10-18T19:22:56Z</dc:date>
    </item>
    <item>
      <title>Understanding Fortran code</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Understanding-Fortran-code/m-p/804635#M39581</link>
      <description>Thanks a lot!!</description>
      <pubDate>Mon, 18 Oct 2010 19:24:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Understanding-Fortran-code/m-p/804635#M39581</guid>
      <dc:creator>Pipa</dc:creator>
      <dc:date>2010-10-18T19:24:22Z</dc:date>
    </item>
    <item>
      <title>Understanding Fortran code</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Understanding-Fortran-code/m-p/804636#M39582</link>
      <description>Steve,&lt;BR /&gt;&lt;BR /&gt;Wouldn't this "obsolescent" "statement function" come back in Vogue as Lambda functions?&lt;BR /&gt;Lambda function in the sense of C++0x.&lt;BR /&gt;&lt;BR /&gt;Jim&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Mon, 18 Oct 2010 19:57:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Understanding-Fortran-code/m-p/804636#M39582</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2010-10-18T19:57:53Z</dc:date>
    </item>
    <item>
      <title>Understanding Fortran code</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Understanding-Fortran-code/m-p/804637#M39583</link>
      <description>Not really, because lambda functions are unnamed and are basically declared where they're used. But I suppose it's the closest that C++ has to the idea. Statement functions have awkward limitations and puzzling scope - internal procedures are much better, which is why statement functions were selected for deprecation.</description>
      <pubDate>Mon, 18 Oct 2010 20:46:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Understanding-Fortran-code/m-p/804637#M39583</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2010-10-18T20:46:29Z</dc:date>
    </item>
  </channel>
</rss>

