<?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 On line 20, replace INTERFACE in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Procedures-as-arguments-in-subroutine-calls/m-p/1184219#M149702</link>
    <description>&lt;P&gt;On line 20, replace INTERFACE by ABSTRACT INTERFACE, and on line 88 write the correct syntax for IMPORT, and then your program will be OK.&lt;/P&gt;</description>
    <pubDate>Fri, 14 Feb 2020 13:13:23 GMT</pubDate>
    <dc:creator>mecej4</dc:creator>
    <dc:date>2020-02-14T13:13:23Z</dc:date>
    <item>
      <title>Procedures as arguments in subroutine calls</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Procedures-as-arguments-in-subroutine-calls/m-p/1184218#M149701</link>
      <description>&lt;P&gt;Hi,&lt;BR /&gt;I have a program where many of the subroutines have procedures in the argument list.&lt;BR /&gt;Many of the subroutines have the same procedures passed.&lt;BR /&gt;Each subroutine has an INTERFACE for explicit declaration of the procedures.&lt;/P&gt;&lt;P&gt;I thought I could put these interfaces in a module and then USE the module in the subroutines.&lt;BR /&gt;This failed.&lt;BR /&gt;I had to also include the line: PROCEDURE(procname) :: MY_FUNC.&lt;/P&gt;&lt;P&gt;Is this according to the standard?&lt;/P&gt;&lt;P&gt;I have included a sample program that shows the same behaviour.&lt;BR /&gt;My compiler is: Intel(R) Visual Fortran Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.1.0.166 Build 20191121&lt;BR /&gt;Windows 10.&lt;/P&gt;&lt;P&gt;Regards,&lt;BR /&gt;Svein-Atle Engeseth&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 14 Feb 2020 12:30:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Procedures-as-arguments-in-subroutine-calls/m-p/1184218#M149701</guid>
      <dc:creator>Svein-Atle_Engeseth</dc:creator>
      <dc:date>2020-02-14T12:30:39Z</dc:date>
    </item>
    <item>
      <title>On line 20, replace INTERFACE</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Procedures-as-arguments-in-subroutine-calls/m-p/1184219#M149702</link>
      <description>&lt;P&gt;On line 20, replace INTERFACE by ABSTRACT INTERFACE, and on line 88 write the correct syntax for IMPORT, and then your program will be OK.&lt;/P&gt;</description>
      <pubDate>Fri, 14 Feb 2020 13:13:23 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Procedures-as-arguments-in-subroutine-calls/m-p/1184219#M149702</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2020-02-14T13:13:23Z</dc:date>
    </item>
    <item>
      <title>Hi,</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Procedures-as-arguments-in-subroutine-calls/m-p/1184220#M149703</link>
      <description>Hi,
Thanks for the answer.
My point was: Why is it necessary to have the line: PROCEDURE(name) :: FUNC.
If I change to an abstract interface, this line is still necessary.
Why shouldn't the USE statement be equivalent to having the interfaces in the subroutine?

The IMPORT is written correctly.

Regards,</description>
      <pubDate>Fri, 14 Feb 2020 17:34:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Procedures-as-arguments-in-subroutine-calls/m-p/1184220#M149703</guid>
      <dc:creator>Svein-Atle_Engeseth</dc:creator>
      <dc:date>2020-02-14T17:34:37Z</dc:date>
    </item>
    <item>
      <title>If you do not specify</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Procedures-as-arguments-in-subroutine-calls/m-p/1184221#M149704</link>
      <description>&lt;P&gt;If you do not specify "ABSTRACT", you are declaring an interface to one specific subprogram such as FUNC. With ABSTRACT, you are declaring an interface to a class of procedures FUNC1, FUNC2,..., all of which have the same interface.&lt;/P&gt;&lt;P&gt;An analogy: we can define a data type. Such a definition does not create any variables of that type, so declarations of variables must also be given. An abstract interface defines the characteristics&amp;nbsp;of a type of procedure, i.e, a procedure code type,&amp;nbsp;rather than data. The procedure(proc) declaration declares one&amp;nbsp;procedure of that type.&lt;/P&gt;&lt;P&gt;I think that the ONLY clause in the IMPORT statement was added for F2018.&lt;/P&gt;</description>
      <pubDate>Fri, 14 Feb 2020 17:50:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Procedures-as-arguments-in-subroutine-calls/m-p/1184221#M149704</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2020-02-14T17:50:00Z</dc:date>
    </item>
  </channel>
</rss>

