<?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 Thank you for your reply in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/error-8000-There-is-a-conflict-between-local-interface-block-and/m-p/1126377#M132960</link>
    <description>&lt;P&gt;Thank you for your reply Steve.&amp;nbsp; The USERDLL is intended to be a Fortran routine.&amp;nbsp; RunBatch may be Fortran or C++, although I am using Fortran for test purposes.&amp;nbsp; I should have seen the differences that you pointed out, and&amp;nbsp;did not realize that ATTRIBUTES REFERENCE is incompatible with CHARACTER(*).&amp;nbsp;&amp;nbsp;I found&amp;nbsp;that by changing RunBatch code as follows:&lt;/P&gt;
&lt;PRE class="brush:fortran; class-name:dark;"&gt;CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C       DRIVER MODULE TO CALL UserDLL PROGRAM
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
      PROGRAM RunBatch
!
      USE DFWIN
!
      IMPLICIT NONE
!
      INTERFACE
        INTEGER(4) FUNCTION USERDLL(INFILE, OUTFILE, IBEG)
!DEC$ ATTRIBUTES DLLIMPORT :: USERDLL
!DEC$ ATTRIBUTES REFERENCE :: INFILE
!DEC$ ATTRIBUTES REFERENCE :: OUTFILE
!DEC$ ATTRIBUTES VALUE :: IBEG
        CHARACTER(260) INFILE
        CHARACTER(260) OUTFILE
        INTEGER(4) IBEG
        END FUNCTION
      END INTERFACE&lt;/PRE&gt;

&lt;P&gt;this example works OK now with /warn:interfaces turned on.&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 19 Feb 2020 04:06:05 GMT</pubDate>
    <dc:creator>Bill1</dc:creator>
    <dc:date>2020-02-19T04:06:05Z</dc:date>
    <item>
      <title>error #8000: There is a conflict between local interface block and external interface block.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/error-8000-There-is-a-conflict-between-local-interface-block-and/m-p/1126375#M132958</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I have created a small example taken from a very large program and am encountering an&amp;nbsp;error #8000: &amp;nbsp;There is a conflict between local interface block and external interface block. &amp;nbsp; [INFILE]&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C:\DLLtest\RunDLL\RunBatch.for&amp;nbsp;&amp;nbsp; &amp;nbsp;11&amp;nbsp; &amp;nbsp; when /warn:interfaces is turned on.&amp;nbsp; The program seems to run OK with this setting turned off, however, I am trying to track down another problem and am not sure if this problem may be related to the other one or not.&lt;/P&gt;&lt;P&gt;The RunBatch.exe program contains the following interface to USERDLL:&lt;/P&gt;
&lt;PRE class="brush:fortran; class-name:dark;"&gt;CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C &amp;nbsp; &amp;nbsp; &amp;nbsp; DRIVER MODULE TO CALL UserDLL PROGRAM
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
&amp;nbsp; &amp;nbsp; &amp;nbsp; PROGRAM RunBatch
!
&amp;nbsp; &amp;nbsp; &amp;nbsp; USE DFWIN
!
&amp;nbsp; &amp;nbsp; &amp;nbsp; IMPLICIT NONE
!
&amp;nbsp; &amp;nbsp; &amp;nbsp; INTERFACE
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; INTEGER(4) FUNCTION USERDLL(INFILE, OUTFILE, IBEG)
!DEC$ ATTRIBUTES DLLIMPORT :: USERDLL
!DEC$ ATTRIBUTES REFERENCE :: INFILE
!DEC$ ATTRIBUTES REFERENCE :: OUTFILE
!DEC$ ATTRIBUTES VALUE :: IBEG
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CHARACTER*(*), INTENT(IN) :: INFILE
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CHARACTER*(*), INTENT(IN) :: OUTFILE
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; INTEGER(4) IBEG
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END FUNCTION
&amp;nbsp; &amp;nbsp; &amp;nbsp; END INTERFACE
&lt;/PRE&gt;

&lt;P&gt;The USERDLL.dll contains the following interface:&lt;/P&gt;

&lt;PRE class="brush:fortran; class-name:dark;"&gt;CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; UserDLL PROGRAM
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
&amp;nbsp; &amp;nbsp; &amp;nbsp; INTEGER*4 FUNCTION USERDLL(INFILE, OUTFILE, IBEG)
!DEC$ ATTRIBUTES DLLEXPORT :: USERDLL
!DEC$ ATTRIBUTES REFERENCE :: INFILE
!DEC$ ATTRIBUTES REFERENCE :: OUTFILE
!DEC$ ATTRIBUTES VALUE :: IBEG
&lt;/PRE&gt;

&lt;P&gt;I have attached the files used to build the solution, thanks for any advice in locating the problem!&lt;/P&gt;
&lt;P&gt;Bill&lt;/P&gt;</description>
      <pubDate>Tue, 18 Feb 2020 02:25:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/error-8000-There-is-a-conflict-between-local-interface-block-and/m-p/1126375#M132958</guid>
      <dc:creator>Bill1</dc:creator>
      <dc:date>2020-02-18T02:25:25Z</dc:date>
    </item>
    <item>
      <title>The compiler is trying to</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/error-8000-There-is-a-conflict-between-local-interface-block-and/m-p/1126376#M132959</link>
      <description>&lt;P&gt;The compiler is trying to tell you that the interface for USERDLL you have in RunBatch.for doesn't match that in the actual USERDLL routine. The interface declares INFILE as CHARACTER(*), INTENT(IN), but the actual routine declares it as CHARACTER(260) and no INTENT. These must match. The compiler can see this because /warn:interface is enabled and the generated module from the DLL project is visible to the executable project since it is a project dependency.&lt;/P&gt;&lt;P&gt;The fix isn't quite as simple as declaring INFILE (and OUTFILE?) CHARACTER(*), as you also have ATTRIBUTES REFERENCE for those arguments and that's incompatible with CHARACTER(*).&lt;/P&gt;&lt;P&gt;Before I can tell you how to fix this. you need to tell us why you used ATTRIBUTES REFERENCE here. Is your eventual intent that USERDLL not be a Fortran routine? If so, there are better ways of handling this.&lt;/P&gt;</description>
      <pubDate>Tue, 18 Feb 2020 13:38:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/error-8000-There-is-a-conflict-between-local-interface-block-and/m-p/1126376#M132959</guid>
      <dc:creator>Steve_Lionel</dc:creator>
      <dc:date>2020-02-18T13:38:22Z</dc:date>
    </item>
    <item>
      <title>Thank you for your reply</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/error-8000-There-is-a-conflict-between-local-interface-block-and/m-p/1126377#M132960</link>
      <description>&lt;P&gt;Thank you for your reply Steve.&amp;nbsp; The USERDLL is intended to be a Fortran routine.&amp;nbsp; RunBatch may be Fortran or C++, although I am using Fortran for test purposes.&amp;nbsp; I should have seen the differences that you pointed out, and&amp;nbsp;did not realize that ATTRIBUTES REFERENCE is incompatible with CHARACTER(*).&amp;nbsp;&amp;nbsp;I found&amp;nbsp;that by changing RunBatch code as follows:&lt;/P&gt;
&lt;PRE class="brush:fortran; class-name:dark;"&gt;CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C       DRIVER MODULE TO CALL UserDLL PROGRAM
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
      PROGRAM RunBatch
!
      USE DFWIN
!
      IMPLICIT NONE
!
      INTERFACE
        INTEGER(4) FUNCTION USERDLL(INFILE, OUTFILE, IBEG)
!DEC$ ATTRIBUTES DLLIMPORT :: USERDLL
!DEC$ ATTRIBUTES REFERENCE :: INFILE
!DEC$ ATTRIBUTES REFERENCE :: OUTFILE
!DEC$ ATTRIBUTES VALUE :: IBEG
        CHARACTER(260) INFILE
        CHARACTER(260) OUTFILE
        INTEGER(4) IBEG
        END FUNCTION
      END INTERFACE&lt;/PRE&gt;

&lt;P&gt;this example works OK now with /warn:interfaces turned on.&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Feb 2020 04:06:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/error-8000-There-is-a-conflict-between-local-interface-block-and/m-p/1126377#M132960</guid>
      <dc:creator>Bill1</dc:creator>
      <dc:date>2020-02-19T04:06:05Z</dc:date>
    </item>
  </channel>
</rss>

