<?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 all, in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031348#M110696</link>
    <description>&lt;P&gt;Thank you all,&lt;/P&gt;

&lt;P&gt;I am following your suggestions and will reply back here on the outcome.&lt;/P&gt;

&lt;P&gt;SSA&lt;/P&gt;</description>
    <pubDate>Tue, 11 Nov 2014 15:38:45 GMT</pubDate>
    <dc:creator>Suresh_A_</dc:creator>
    <dc:date>2014-11-11T15:38:45Z</dc:date>
    <item>
      <title>How and when to use DLLEXPORT and DLLIMPORT in nested Fortran Subroutines to create Fortran Static lib and DLL ?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031335#M110683</link>
      <description>&lt;P style="margin-left:.375in;"&gt;I am having trouble understanding the use of DLLEXPORT and DLLIMPORT directives in my Fortran routines to create Static lib and DLL callable from VB6/VBA.&amp;nbsp; What I want to accomplish outlines below and any help and/or guidance would be appreciated.&lt;/P&gt;

&lt;P style="margin-left:.375in;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;OL&gt;
	&lt;LI&gt;Built a static library (LibA.lib)
		&lt;OL style="list-style-type:lower-alpha;"&gt;
			&lt;LI&gt;Sub A…. SUB N&lt;/LI&gt;
			&lt;LI&gt;Not included any DLLEXPORT or IMPORT Statements&lt;BR /&gt;
				&amp;nbsp;&lt;/LI&gt;
		&lt;/OL&gt;
	&lt;/LI&gt;
	&lt;LI&gt;Created a stand-alone Win&amp;nbsp; EXE to test above LIBA.lib
		&lt;OL style="list-style-type:lower-alpha;"&gt;
			&lt;LI&gt;Main Program MainPgm.for&amp;nbsp;&lt;/LI&gt;
			&lt;LI&gt;calls routines from LIBA.lib&lt;/LI&gt;
			&lt;LI&gt;LIBA.lib Included in source&lt;/LI&gt;
			&lt;LI&gt;Execution of built exe produced correct results (without any DLLExport and DLL import statement if any of the sub-routines)&lt;BR /&gt;
				&amp;nbsp;&lt;/LI&gt;
		&lt;/OL&gt;
	&lt;/LI&gt;
	&lt;LI&gt;Wants to create a DLL to be called from VB6 and Excel VBA
		&lt;OL style="list-style-type:lower-alpha;"&gt;
			&lt;LI&gt;Main subroutine which is called from VB6/VBA contains DLLEXport statement&lt;/LI&gt;
			&lt;LI&gt;No other routines contains any DLLEXPORT or DLLIMPORT routines&lt;/LI&gt;
			&lt;LI&gt;LIBA.LIB is included in Source category&lt;/LI&gt;
			&lt;LI&gt;The call structure is as follows:&lt;/LI&gt;
		&lt;/OL&gt;
	&lt;/LI&gt;
&lt;/OL&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-left:1.125in;"&gt;Public Subroutine A…&lt;/P&gt;

&lt;P style="margin-left:1.125in;"&gt;!DEC$ ATTRIBUTES DLLEXPORT, DECORATE, ALIAS : "A" :: A&lt;/P&gt;

&lt;P style="margin-left:1.125in;"&gt;Call B&lt;/P&gt;

&lt;P style="margin-left:1.125in;"&gt;Call C&lt;/P&gt;

&lt;P style="margin-left:1.125in;"&gt;Call D&lt;/P&gt;

&lt;P style="margin-left:1.125in;"&gt;End Sub&lt;/P&gt;

&lt;P style="margin-left:1.125in;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-left:1.125in;"&gt;Sub B&lt;/P&gt;

&lt;P style="margin-left:1.125in;"&gt;Call E&lt;/P&gt;

&lt;P style="margin-left:1.125in;"&gt;Call F&lt;/P&gt;

&lt;P style="margin-left:1.125in;"&gt;End Sub&lt;/P&gt;

&lt;P style="margin-left:1.125in;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;OL style="list-style-type:lower-alpha;"&gt;
	&lt;LI value="5"&gt;The linked error for unresolved reference for B,C,D..&lt;/LI&gt;
&lt;/OL&gt;

&lt;P style="margin-left:.375in;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-left:.375in;"&gt;My Question is…&lt;/P&gt;

&lt;P style="margin-left:.375in;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;OL style="list-style-type:lower-alpha;"&gt;
	&lt;LI&gt;Do I need to include DLLEXPORT and DLLIMPORT statement for all subroutines, for example&lt;/LI&gt;
&lt;/OL&gt;

&lt;P style="margin-left:.375in;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-left:.375in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in Sub A should I also include..&lt;/P&gt;

&lt;P style="margin-left:.375in;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-left:.75in;"&gt;!DEC$ ATTRIBUTES DLLIMPORT, DECORATE, ALIAS : "B" :: B&lt;/P&gt;

&lt;P style="margin-left:.75in;"&gt;!DEC$ ATTRIBUTES DLLIMPORT, DECORATE, ALIAS : "C" :: C&lt;/P&gt;

&lt;P style="margin-left:.75in;"&gt;!DEC$ ATTRIBUTES DLLIMPORT, DECORATE, ALIAS : "D" :: D&lt;/P&gt;

&lt;P style="margin-left:.75in;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-left:.75in;"&gt;Then in SUB B should I include DLLEXPORT as well..&lt;/P&gt;

&lt;P style="margin-left:.75in;"&gt;!DEC$ ATTRIBUTES DLLEXPORT, DECORATE, ALIAS : "B" :: B&lt;/P&gt;

&lt;P style="margin-left:.75in;"&gt;!DEC$ ATTRIBUTES DLLIMPORT, DECORATE, ALIAS : "E" ::E&lt;/P&gt;

&lt;P style="margin-left:.75in;"&gt;!DEC$ ATTRIBUTES DLLIMPORT, DECORATE, ALIAS : "F" :: F&lt;/P&gt;

&lt;P style="margin-left:.75in;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;OL style="list-style-type:lower-alpha;"&gt;
	&lt;LI value="2"&gt;If that is the case, I have 200+ routines and that is lots of changes, Is there anyway to simplify the specifying references in DLL without such coding of !DEC$ directives.&lt;/LI&gt;
&lt;/OL&gt;

&lt;P style="margin-left:.375in;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-left:.375in;"&gt;I would appreciate clarifications.&lt;/P&gt;</description>
      <pubDate>Mon, 20 Oct 2014 16:57:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031335#M110683</guid>
      <dc:creator>Suresh_A_</dc:creator>
      <dc:date>2014-10-20T16:57:35Z</dc:date>
    </item>
    <item>
      <title>Suresh,</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031336#M110684</link>
      <description>&lt;P&gt;Suresh,&lt;/P&gt;

&lt;P&gt;I've moved this question to our Intel Visual Fortran forum where Fortran-specific questions are better addressed.&lt;/P&gt;

&lt;P&gt;There are several issues here. First, only the routines you want to be directly called by users of the DLL need to have ATTRIBUTES DLLEXPORT specified. The internal routines don't need this.&lt;/P&gt;

&lt;P&gt;Second, and this can be critical, VBA requires that routines you call have the STDCALL calling mechanism, which is not the default in Intel Fortran. (I assume you are using Intel Fortran - if not, let me know.) If you don't do this, the routine may appear to work but the stack will be corrupted on return, leading to unpredictable behavior. To do this, add the STDCALL attribute to the !DEC$ ATTRIBUTES line. You should also add REFERENCE because otherwise, STDCALL changes arguments to pass-by-value. So for example, routine A would have:&lt;/P&gt;

&lt;P&gt;!DEC$ ATTRIBUTES STDCALL,REFERENCE,ALIAS:"A" :: A&lt;/P&gt;

&lt;P&gt;Third, you should not use DECORATE if your intention is to call the routine from VBA. In particular, your routine 'A' would end up with an external name of something like _A@8, depending on the number of arguments. You should use ALIAS here to specify the exact name that VBA will use.&lt;/P&gt;

&lt;P&gt;Fourth, whatever directive you add for routine A must also be added to a Fortran routine that calls A, whether it be in a main program or elsewhere in your library. If you don't do this, you'll get link errors and/or stack corruption.&lt;/P&gt;

&lt;P&gt;I hope this helps - reply here if you have further questions.&lt;/P&gt;</description>
      <pubDate>Wed, 29 Oct 2014 17:46:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031336#M110684</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2014-10-29T17:46:55Z</dc:date>
    </item>
    <item>
      <title>Steve,</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031337#M110685</link>
      <description>&lt;P&gt;Steve,&lt;/P&gt;

&lt;P&gt;Thanks for your guidance. Now, I have another problem.&lt;/P&gt;

&lt;P&gt;I have created DLL successfully and wants to use its one routine in a test program and I have imported the DLL library but the test program would not link and keeps on complaining about the routine from DLL is not found.&lt;/P&gt;

&lt;P&gt;I must be doing something wrong in linking step. Any help and guidance would be appreciated.&lt;/P&gt;

&lt;P&gt;I have enclosed zip file for both DLL and Test programs.&lt;/P&gt;

&lt;P&gt;Question - Would the same DLL using the suggestion by you earlier work in VB as well ?&lt;/P&gt;

&lt;P&gt;Thanks so much&lt;/P&gt;

&lt;P&gt;Suresh&lt;/P&gt;</description>
      <pubDate>Fri, 07 Nov 2014 02:47:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031337#M110685</guid>
      <dc:creator>Suresh_A_</dc:creator>
      <dc:date>2014-11-07T02:47:51Z</dc:date>
    </item>
    <item>
      <title>You exported GEINTF but did</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031338#M110686</link>
      <description>&lt;P&gt;You exported GEINTF but did not do the same for GEDATA when you built the DLL.&lt;/P&gt;</description>
      <pubDate>Fri, 07 Nov 2014 14:03:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031338#M110686</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-11-07T14:03:16Z</dc:date>
    </item>
    <item>
      <title>Hi mecej4,</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031339#M110687</link>
      <description>&lt;P&gt;Hi mecej4,&lt;/P&gt;

&lt;P&gt;I retried putting the DLLEXPORT just like GEINTF but still would not link and create Exe. It still complains about GEDATA as follows.&amp;nbsp; I even tried by putting DLLIMPORT statement in Main Program and still the same message.&lt;/P&gt;

&lt;P&gt;To me, it seems somewhere it is not recognizing the DLL lib in linking the test program.&lt;/P&gt;

&lt;P&gt;Error&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp; error LNK2019: unresolved external symbol _GEDATA referenced in function _MAIN__&amp;nbsp;&amp;nbsp; &amp;nbsp;TestLPIntfDll.obj&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	Error&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp; fatal error LNK1120: 1 unresolved externals&amp;nbsp;&amp;nbsp; &amp;nbsp;Release\TestLPIntfDll.exe&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;

&lt;P&gt;Any further help would be appreciated.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 07 Nov 2014 15:50:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031339#M110687</guid>
      <dc:creator>Suresh_A_</dc:creator>
      <dc:date>2014-11-07T15:50:39Z</dc:date>
    </item>
    <item>
      <title>You didn't show us how or</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031340#M110688</link>
      <description>&lt;P&gt;You didn't show us how or where you DLLEXPORTed GEDATA, but what you do have for GEINTF is wrong and will give you a big headache. You have STDCALL in the ATTRIBUTES directive, which (on IA-32) changes the calling mechanism and routine name. You then "papered over" the name difference with ALIAS. The result will be stack corruption when the routine is called.&lt;/P&gt;

&lt;P&gt;What you should do instead is replace the ATTRIBUTES line in GEINTF with:&lt;/P&gt;

&lt;P&gt;!DEC$ ATTRIBUTES DLLEXPORT :: GEINTF&lt;/P&gt;

&lt;P&gt;and add to GEDATA:&lt;/P&gt;

&lt;P&gt;!DEC$ ATTRIBUTES DLLEXPORT :: GEDATA&lt;/P&gt;

&lt;P&gt;That should take care of it. The other attributes you added just complicate/hurt things.&lt;/P&gt;</description>
      <pubDate>Fri, 07 Nov 2014 16:45:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031340#M110688</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2014-11-07T16:45:42Z</dc:date>
    </item>
    <item>
      <title>Hi Steve,</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031341#M110689</link>
      <description>&lt;P&gt;Hi Steve,&lt;/P&gt;

&lt;P&gt;I followed your suggestions and recreated the DLL without any problem.&lt;/P&gt;

&lt;P&gt;However, when I again tried to link TestLPInfdll.exe, I again got the same error as follows:&lt;/P&gt;

&lt;P&gt;The linked command line is&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;/OUT:"Release\TestLPIntfDll.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"C:\Windows\System32" /MANIFEST /MANIFESTFILE:"Release\TestLPIntfDll.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /SUBSYSTEM:CONSOLE /IMPLIB:"c:\Windows\Systems32\omsLPIntfDll.lib"&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;And the error I get again&lt;/P&gt;

&lt;P&gt;Error&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp; error LNK2019: unresolved external symbol _GEDATA referenced in function _MAIN__&amp;nbsp;&amp;nbsp; &amp;nbsp;TestLPIntfDll.obj&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	Error&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp; fatal error LNK1120: 1 unresolved externals&amp;nbsp;&amp;nbsp; &amp;nbsp;Release\TestLPIntfDll.exe&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;

&lt;P&gt;From your earlier replies, I get this impression that DLL if called from VBA should be complied with the following directive&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;!DEC$ ATTRIBUTES STDCALL,REFERENCE,ALIAS:"A" :: A&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;and If DLL to be called from Intel Fortran should be compiled with the following directive&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;!DEC$ ATTRIBUTES DLLEXPORT :: GEINTF&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;Is my understanding correct ?&lt;/P&gt;

&lt;P&gt;Anyway, right now I am trying to test DLL from Fortran pgm itself before I try again with VBA.&lt;/P&gt;

&lt;P&gt;I have enclosed zip files for both DLL and TestPgm if you want to see the files.&lt;/P&gt;

&lt;P&gt;Thanks again&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>Fri, 07 Nov 2014 22:13:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031341#M110689</guid>
      <dc:creator>Suresh_A_</dc:creator>
      <dc:date>2014-11-07T22:13:03Z</dc:date>
    </item>
    <item>
      <title>If you are calling from VBA,</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031342#M110690</link>
      <description>&lt;P&gt;If you are calling from VBA, then yes, you have to change the attributes as you showed. But if you do that, and ALSO want to call from Fortran, you will need to say:&lt;/P&gt;

&lt;P&gt;!DEC$ ATTRIBUTES DLLIMPORT,STDCALL,REFERENCE,ALIAS:"GEINTF" :: GEINTF&lt;BR /&gt;
	&lt;SPAN style="line-height: 19.5120010375977px; font-size: 1em;"&gt;!DEC$ ATTRIBUTES DLLIMPORT,STDCALL,REFERENCE,ALIAS:"GEDATA" :: GEDATA&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="line-height: 19.5120010375977px; font-size: 1em;"&gt;in the Fortran code that calls these routines.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;What did you do for GEDATA in the DLL? You keep talking about GEINTF.&lt;/P&gt;</description>
      <pubDate>Sat, 08 Nov 2014 00:36:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031342#M110690</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2014-11-08T00:36:20Z</dc:date>
    </item>
    <item>
      <title>Hi Steve,</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031343#M110691</link>
      <description>&lt;P&gt;Hi Steve,&lt;/P&gt;

&lt;P&gt;I have done that and still the test progarm will not link with DLL. I have put correct directives in GEDATA and Calling program as per your suggestion.&amp;nbsp; Still the TestLPIntfDLL does not link GEDATA and create an Exe.&amp;nbsp; Please advise. I have copied the DLL in System32 and have reference to it in the linker as implib.&lt;/P&gt;

&lt;P&gt;The linker command line is&lt;/P&gt;

&lt;P&gt;&lt;EM&gt;/OUT:"Release\TestLPIntfDll.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"C:\Windows\System32" /MANIFEST /MANIFESTFILE:"Release\TestLPIntfDll.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /SUBSYSTEM:CONSOLE /IMPLIB:"omsLPIntfDll.lib"&lt;/EM&gt;&lt;/P&gt;

&lt;P&gt;It gives the following error in linking.&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;Error&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp; error LNK2019: unresolved external symbol __imp_GEDATA referenced in function _MAIN__&amp;nbsp;&amp;nbsp; &amp;nbsp;TestLPIntfDll.obj&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	Error&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp; fatal error LNK1120: 1 unresolved externals&amp;nbsp;&amp;nbsp; &amp;nbsp;Release\TestLPIntfDll.exe&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;Program TestLPIntfDll&lt;/STRONG&gt;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&lt;STRONG&gt;!DEC$ ATTRIBUTES DLLIMPORT,STDCALL,REFERENCE,ALIAS:"GEDATA" :: GEDATA&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;INCLUDE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'GEPARM.FOR /LIST'&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INCLUDE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'GEBLK1.FOR /LIST'&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INCLUDE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'GEBLK2.FOR /LIST'&lt;BR /&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;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FLNAME="LPTEST1.DAT"&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OFFLUN=20&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DBGLUN=25&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DATPRT=30&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LUNPRT=35&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !IRDWR=1&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILEPATH=TRIM("G:\oms-Development\Version-VB6\Interfaces\" //&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 "omsLPIntf\Input\" // FLNAME)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPEN (UNIT=OFFLUN, FILE=FILEPATH, STATUS='OLD',&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp; ACCESS='SEQUENTIAL', FORM='FORMATTED',&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp; ERR=10, IOSTAT=IOS)&lt;BR /&gt;
	&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;&amp;nbsp;&amp;nbsp; Open (UNIT=DBGLUN,file='C:\OMSLLC\DEBUG-' //&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 FLNAME,STATUS='REPLACE')&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Open (UNIT=DATPRT,file='C:\OMSLLC\INPUT-DATA-' //&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 FLNAME,STATUS='REPLACE')&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Open (UNIT=LUNPRT,file='C:\OMSLLC\LP-MATRIX-SOLN-' //&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 FLNAME,STATUS='REPLACE')&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WRITE (DBGLUN,50) FILEPATH&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	C&amp;nbsp;&amp;nbsp; &amp;nbsp;---Call GEDATA from the DLL&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call&amp;nbsp; GEDATA ( OFFLUN, DBGLUN, DATPRT, LUNPRT,&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&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;&amp;nbsp; IRDWR,&amp;nbsp; NRMAX, NCMAX,&amp;nbsp; NROWS,&amp;nbsp; NCOLS, &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&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;&amp;nbsp; ROWNAM, COLNAM, MATXIN, ROWRHS,&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&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;&amp;nbsp; LOWBND, UPPBND, OBJCOF, PSBASE, SOLN )&lt;BR /&gt;
	*&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;GO TO 100&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;10&amp;nbsp;&amp;nbsp; &amp;nbsp;WRITE(DBGLUN,FMT=800,ADVANCE="YES") FILEPATH&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;GO TO 100&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;80&amp;nbsp;&amp;nbsp; &amp;nbsp;WRITE(DBGLUN,FMT=1050,ADVANCE="YES") FLNAME, IRC&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	100&amp;nbsp;&amp;nbsp; &amp;nbsp;CONTINUE&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE(OFFLUN)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE(DBGLUN)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE(DATPRT)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE(LUNPRT)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	*&lt;BR /&gt;
	*---- FORMAT STATTEMENTS&lt;BR /&gt;
	*&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; 50 FORMAT(2x,'Input Data File Opened Successfully ', A100) &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp; 800&amp;nbsp;&amp;nbsp; &amp;nbsp;FORMAT('Error in Opening the Data File ', A100)&lt;BR /&gt;
	&amp;nbsp; 990 FORMAT (A72)&lt;BR /&gt;
	&amp;nbsp;1000 FORMAT (56X,I3)&lt;BR /&gt;
	&amp;nbsp;1050 FORMAT (/1X,' GEDATA ERROR - IN READING FILE ',A20,' AT RECORD',&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1' NUMBER ',I3)&lt;BR /&gt;
	&amp;nbsp;6002 FORMAT (2X,3I3)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/P&gt;

&lt;P&gt;&amp;nbsp;
	&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUBROUTINE&amp;nbsp; GEDATA ( OFFLUN, DBGLUN, DATPRT, LUNPRT,&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IRDWR,&amp;nbsp; NRMAX, NCMAX,&amp;nbsp; NROWS,&amp;nbsp; NCOLS, &amp;nbsp;&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROWNAM, COLNAM, MATXIN, ROWRHS,&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOWBND, UPPBND, OBJCOF, PSBASE, SOLN )&lt;BR /&gt;
		*&lt;BR /&gt;
		&lt;STRONG&gt;!DEC$ ATTRIBUTES DLLEXPORT :: GEDATA&lt;/STRONG&gt;&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INCLUDE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'GEPARM.FOR'&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INCLUDE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'GEBLK1.FOR'&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INCLUDE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'GEBLK2.FOR'&lt;BR /&gt;
		*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
		!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DIMENSION&amp;nbsp;&amp;nbsp;&amp;nbsp; ROWNAM(NRMAX), COLNAM(NCMAX), MATXIN(NRMAX,NCMAX),&lt;BR /&gt;
		!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROWRHS(NRMAX), LOWBND(NCMAX), UPPBND(NCMAX),&lt;BR /&gt;
		!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PSBASE(NCMAX), OBJCOF(NCMAX), SOLN(NCMAX)&lt;BR /&gt;
		!C&lt;BR /&gt;
		!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !REAL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: LOWBND, MATXIN&lt;BR /&gt;
		!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*2&amp;nbsp;&amp;nbsp;&amp;nbsp; :: PSBASE, NCHARS&lt;BR /&gt;
		!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER*2&amp;nbsp;&amp;nbsp;&amp;nbsp; :: OFFLUN, DBGLUN, DATPRT, LUNPRT&lt;BR /&gt;
		!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: AIPACK&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CHARACTER*8&amp;nbsp; :: MATROW, MATCOL, TEMVAR&lt;BR /&gt;
		!&amp;nbsp;&amp;nbsp; &amp;nbsp;INTEGER*2&amp;nbsp;&amp;nbsp;&amp;nbsp; :: NROWS, NCOLS, NFXMCF&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
		***&amp;nbsp;&amp;nbsp; DATA NCHARS /8/&lt;BR /&gt;
		*&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp; &amp;nbsp;WRITE (DBGLUN,6001)&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IRC = 1&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GO TO (101,102), IRDWR&lt;BR /&gt;
		*&lt;BR /&gt;
		101&amp;nbsp;&amp;nbsp; CONTINUE&lt;BR /&gt;
		*&lt;BR /&gt;
		*---&amp;nbsp; READ THE OFFLINE FILE&lt;BR /&gt;
		*&lt;BR /&gt;
		*&lt;BR /&gt;
		*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.&amp;nbsp; LP PROBLEM RUN IDENTIFICATION TITLE&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO 5 IRC = 1,3&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ (OFFLUN,&amp;nbsp; 990,ERR=80) TITLE(IRC)&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp; &amp;nbsp;WRITE (DATPRT,FMT=990,ADVANCE='YES') TITLE(IRC)&lt;BR /&gt;
		5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CONTINUE&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO 51 IRC = 1,3&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ (OFFLUN,FMT=990,ERR=80) CBLOCK&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp; &amp;nbsp;WRITE (DATPRT,FMT=990,ADVANCE='YES') CBLOCK&lt;BR /&gt;
		51&amp;nbsp;&amp;nbsp;&amp;nbsp; CONTINUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
		*&lt;BR /&gt;
		!6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IRC = 6&lt;BR /&gt;
		*&lt;BR /&gt;
		*---- 1. GENERAL FIXED LP PARAMETERS&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !IRC = IRC +1&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ (OFFLUN, 1000,ERR=80)&amp;nbsp; NROWS&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp; &amp;nbsp;READ (OFFLUN, 1000,ERR=80)&amp;nbsp; NCOLS&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ (OFFLUN, 1000,ERR=80)&amp;nbsp; NFXMCF&lt;BR /&gt;
		C&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp; &amp;nbsp;WRITE (DBGLUN,6002) NROWS, NCOLS, NFXMCF&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !IRC = IRC +2&lt;BR /&gt;
		*&lt;BR /&gt;
		*---&amp;nbsp; 2. ROW NAMES AND RIGHT HAND SIDES&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !IRC = IRC +2&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO 512 IRC = 1,2&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ (OFFLUN,FMT=990,ERR=80) CBLOCK&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp; &amp;nbsp;WRITE (DATPRT,FMT=990,ADVANCE='YES') CBLOCK&lt;BR /&gt;
		512&amp;nbsp;&amp;nbsp; CONTINUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO 10 IROW = 1, NROWS&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !IRC = IRC+1&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ (OFFLUN,1010,ERR=80) ROWNAM(IROW),ROWRHS(IROW)&lt;BR /&gt;
		C&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp; &amp;nbsp;WRITE (DATPRT,6003) IRC,ROWNAM(IROW),ROWRHS(IROW)&lt;BR /&gt;
		C&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IX = AIPACK (ROWNAM(IROW),8,NAIPACK)&lt;BR /&gt;
		C&lt;BR /&gt;
		*&lt;BR /&gt;
		10&amp;nbsp;&amp;nbsp;&amp;nbsp; CONTINUE&lt;BR /&gt;
		*&lt;BR /&gt;
		*---&amp;nbsp; 3. COLUMN NAMES, LOWER AND UPPER BOUNDS AND PREVIOUS LP SOLUTION&lt;BR /&gt;
		*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BASIS FLAGS&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !IRC = IRC+2&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO 513 IRC = 1,2&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ (OFFLUN,FMT=990,ERR=80) CBLOCK&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp; &amp;nbsp;WRITE (DATPRT,FMT=990,ADVANCE='YES') CBLOCK&lt;BR /&gt;
		513&amp;nbsp;&amp;nbsp; CONTINUE&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO 20 ICOL = 1, NCOLS&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IRC = IRC+1&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ (OFFLUN,1020,ERR=80)&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; COLNAM(ICOL), LOWBND(ICOL), UPPBND(ICOL),&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; OBJCOF(ICOL), SOLN(ICOL),&amp;nbsp;&amp;nbsp; PSBASE(ICOL)&lt;BR /&gt;
		C&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WRITE (DATPRT, 6004) IRC,&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 COLNAM(ICOL), LOWBND(ICOL), UPPBND(ICOL),&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 OBJCOF(ICOL), SOLN(ICOL),&amp;nbsp;&amp;nbsp; PSBASE(ICOL)&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IX = AIPACK (COLNAM(ICOL),8,NAIPACK)&lt;BR /&gt;
		C&lt;BR /&gt;
		20&amp;nbsp;&amp;nbsp;&amp;nbsp; CONTINUE&lt;BR /&gt;
		*&lt;BR /&gt;
		*---&amp;nbsp; FIXED MATRIX COEFFICIENTS BY READING THE ROW AND COLUMN NAMES,&lt;BR /&gt;
		*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND THE COEFFICIENT&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !IRC = IRC + 2&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO 514 IRC = 1,2&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ (OFFLUN,FMT=990,ERR=80) CBLOCK&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp; &amp;nbsp;WRITE (DATPRT,FMT=990,ADVANCE='YES') CBLOCK&lt;BR /&gt;
		514&amp;nbsp;&amp;nbsp; CONTINUE&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO 30 IMC = 1, NFXMCF&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !IRC = IRC +1&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ (OFFLUN, 1030,ERR=80) MATROW, MATCOL, COEFF&lt;BR /&gt;
		C&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IX = AIPACK (MATROW,8,NAIPACK)&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IX = AIPACK (MATCOL,8,NAIPACK)&lt;BR /&gt;
		C&lt;BR /&gt;
		*&lt;BR /&gt;
		*---&amp;nbsp;&amp;nbsp;&amp;nbsp; I. MATCH THE MATRIX ROW AGAINST THE ONES READ EARLIER&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO 40 IROW = 1, NROWS&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (MATROW.NE.ROWNAM(IROW)) GO TO 40&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMROW = IROW&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GO TO 50&lt;BR /&gt;
		*&lt;BR /&gt;
		40&amp;nbsp;&amp;nbsp;&amp;nbsp; CONTINUE&lt;BR /&gt;
		*&lt;BR /&gt;
		*---&amp;nbsp; ROW NAME NOT CONSISTENT, PRINT THE ERROR MESSAGE&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WRITE (DBGLUN,1040) MATROW, MATCOL, IRC, FLNAME&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GO TO 30&lt;BR /&gt;
		*&lt;BR /&gt;
		50&amp;nbsp;&amp;nbsp;&amp;nbsp; CONTINUE&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO 60 ICOL = 1, NCOLS&lt;BR /&gt;
		*&lt;BR /&gt;
		*---&amp;nbsp;&amp;nbsp;&amp;nbsp; MATCH THE MATRIX COLUMN AGAINST THE ONES READ EARLIER&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (MATCOL.NE.COLNAM(ICOL)) GO TO 60&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMCOL = ICOL&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GO TO 70&lt;BR /&gt;
		*&lt;BR /&gt;
		60&amp;nbsp;&amp;nbsp;&amp;nbsp; CONTINUE&lt;BR /&gt;
		*&lt;BR /&gt;
		*---&amp;nbsp; COLUMN NAME NOT CONSISTENT, PRINT ERROR MESSAGE&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WRITE (DBGLUN,1040) MATROW, MATCOL, IRC, FLNAME&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GO TO 30&lt;BR /&gt;
		*&lt;BR /&gt;
		70&amp;nbsp;&amp;nbsp;&amp;nbsp; MATRIX(IMROW,IMCOL) = COEFF&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WRITE (DBGLUN,6005) IRC, MATROW, MATCOL, IMROW,IMCOL, COEFF&lt;BR /&gt;
		*&lt;BR /&gt;
		30&amp;nbsp;&amp;nbsp;&amp;nbsp; CONTINUE&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WRITE (DBGLUN,6006)&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN&lt;BR /&gt;
		*&lt;BR /&gt;
		80&amp;nbsp;&amp;nbsp;&amp;nbsp; CONTINUE&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WRITE (DBGLUN,1050) FLNAME, IRC&lt;BR /&gt;
		*&lt;BR /&gt;
		*---&amp;nbsp; WRITE ON THE OFFLINE OR ONLINE FILE&lt;BR /&gt;
		*&lt;BR /&gt;
		102&amp;nbsp;&amp;nbsp; CONTINUE&lt;BR /&gt;
		*&lt;BR /&gt;
		*---&amp;nbsp; LOWER AND UPPER BOUNDS AND PREBIOUS LP SOLUTION BASIS FLAGS&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IRC = NROWS+10&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO 90 ICOL = 1, NCOLS&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IRC = IRC+1&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WRITE (DATPRT, 1020,ERR=100)&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; COLNAM(ICOL), LOWBND(ICOL), UPPBND(ICOL), OBJCOF(ICOL),&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; SOLN(ICOL), PSBASE(ICOL)&lt;BR /&gt;
		*&lt;BR /&gt;
		90&amp;nbsp;&amp;nbsp;&amp;nbsp; CONTINUE&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WRITE (DBGLUN,6006)&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN&lt;BR /&gt;
		*&lt;BR /&gt;
		100&amp;nbsp;&amp;nbsp; WRITE (DBGLUN,1060) FLNAME, IRC&lt;BR /&gt;
		*&lt;BR /&gt;
		*---- FORMAT STATTEMENTS&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;990&amp;nbsp;&amp;nbsp; FORMAT (A80)&lt;BR /&gt;
		&amp;nbsp;1000&amp;nbsp; FORMAT (56X,I3)&lt;BR /&gt;
		&amp;nbsp;1010&amp;nbsp; FORMAT (A8,4X,F12.0)&lt;BR /&gt;
		&amp;nbsp;1020&amp;nbsp; FORMAT (A8,4X,4(F12.0),6X,I1)&lt;BR /&gt;
		&amp;nbsp;1030&amp;nbsp; FORMAT (A8,4X,A8,4X,F12.0)&lt;BR /&gt;
		&amp;nbsp;1040&amp;nbsp; FORMAT (1X,' GEDATA ERROR - EITHER EQUATION NAME ',A8,' OR ',&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 'VARIABLE NAME ',A8,' NOT MATCHED WITH EARLIER ENTRIES ON ',&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 /1X,' THE RECORD NO ', I3,' OF THE FILE ',A8)&lt;BR /&gt;
		&amp;nbsp;1050&amp;nbsp; FORMAT (1X,' GEDATA ERROR - IN READING FILE ',A8,' AT RECORD',&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1' NUMBER ',I3)&lt;BR /&gt;
		&amp;nbsp;1060&amp;nbsp; FORMAT (1X, 'GEDATA ERROR - IN WRITING FILE ',A8, ' AT RECORD',&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1' NUMBER ',I3)&lt;BR /&gt;
		*&lt;BR /&gt;
		*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -------- DEBUG PRINT FORMAT STATEMENTS ---------------------------&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;6001&amp;nbsp; FORMAT (2X,'ENTERING GEDATA')&lt;BR /&gt;
		&amp;nbsp;6002&amp;nbsp; FORMAT (2X,3I3)&lt;BR /&gt;
		&amp;nbsp;6003&amp;nbsp; FORMAT (2X,I3,2X,A8,2X,F10.3)&lt;BR /&gt;
		&amp;nbsp;6004&amp;nbsp; FORMAT (2X,I3,2X,A8,4(2X,F10.3),2X,I2)&lt;BR /&gt;
		&amp;nbsp;6005&amp;nbsp; FORMAT (2X,I4,2X,A8,2X,A8,2X,2X,I3,2X,I3,2X,F10.3)&lt;BR /&gt;
		&amp;nbsp;6006&amp;nbsp; FORMAT (2X,'EXITING GEDATA')&lt;BR /&gt;
		*&lt;BR /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;The DLL compiles OK and I move it to System32 directory&lt;/STRONG&gt;.&lt;/P&gt;

&lt;P&gt;&lt;BR /&gt;
	1&amp;gt;------ Rebuild All started: Project: omsLPIntfDll, Configuration: Release Win32 ------&lt;BR /&gt;
	1&amp;gt;Deleting intermediate files and output files for project 'omsLPIntfDll', configuration 'Release|Win32'.&lt;BR /&gt;
	1&amp;gt;Compiling with Intel(R) Visual Fortran Compiler XE 15.0.0.108 [IA-32]...&lt;BR /&gt;
	1&amp;gt;GEALGO.FOR&lt;BR /&gt;
	1&amp;gt;GEDATA.FOR&lt;BR /&gt;
	1&amp;gt;GEMATX.FOR&lt;BR /&gt;
	1&amp;gt;AIPACK.FOR&lt;BR /&gt;
	1&amp;gt;GESOLN.FOR&lt;BR /&gt;
	1&amp;gt;GEINTF.FOR&lt;BR /&gt;
	1&amp;gt;Compiling manifest to resources...&lt;BR /&gt;
	1&amp;gt;Microsoft (R) Windows (R) Resource Compiler Version 6.3.9600.17029&lt;BR /&gt;
	1&amp;gt;Copyright (C) Microsoft Corporation.&amp;nbsp; All rights reserved.&lt;BR /&gt;
	1&amp;gt;Linking...&lt;BR /&gt;
	1&amp;gt;&amp;nbsp;&amp;nbsp; Creating library G:\oms-Development\Version-VB6\Interfaces\omsLPIntf\Source\Fortran\omsLPIntfDll\Release\omsLPIntfDll.lib and object G:\oms-Development\Version-VB6\Interfaces\omsLPIntf\Source\Fortran\omsLPIntfDll\Release\omsLPIntfDll.exp&lt;BR /&gt;
	1&amp;gt;Embedding manifest...&lt;BR /&gt;
	1&amp;gt;&lt;BR /&gt;
	1&amp;gt;Build log written to&amp;nbsp; "file://G:\oms-Development\Version-VB6\Interfaces\omsLPIntf\Source\Fortran\omsLPIntfDll\Release\BuildLog.htm"&lt;BR /&gt;
	1&amp;gt;omsLPIntfDll - 0 error(s), 0 warning(s)&lt;BR /&gt;
	========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 08 Nov 2014 06:30:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031343#M110691</guid>
      <dc:creator>Suresh_A_</dc:creator>
      <dc:date>2014-11-08T06:30:00Z</dc:date>
    </item>
    <item>
      <title>I think that your sources are</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031344#M110692</link>
      <description>&lt;P&gt;I think that your sources are in a somewhat messed up state now. You will have to sort things out, or start afresh. Perhaps you could start with a simpler project, for example, a Fortran main calling routines in a Fortran DLL, then try Stdcall, then calling from VB, etc.&lt;/P&gt;

&lt;P&gt;In the source file GEINTF.FOR included in one of the zip files of #7, you have subroutine dummy arguments (NROWS and NCOLS) with the attribute VALUE. Be aware that in such cases you are required to provide an explicit interface in a Fortran caller (see 12.4.2.2 of the F2008 standard, for instance).&lt;SPAN style="font-size: 14.3999996185303px; line-height: 17.5607986450195px;"&gt;&amp;nbsp;Failure to provide a required explicit interface is almost certain to cause the program to give incorrect results or to crash. There are, of course, similar consequences of using VALUE arguments in Fortran subprograms that are called from other languages.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 08 Nov 2014 12:17:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031344#M110692</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-11-08T12:17:00Z</dc:date>
    </item>
    <item>
      <title>Respectfully, I do not agree</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031345#M110693</link>
      <description>&lt;P&gt;Respectfully, I do not agree with your conclusion. These programs have worked flawlessly for many years with earlier version of FORTRAN (Compaq) and still they do with current version of Intel FORTRAN that I am using now if I combine them all into one FORTRAN Unit. The problem at hand is why GEDATA and/or GEINTF from DLL lib&amp;nbsp; (which compiles and links successfully) is not recognized in a test program calling GEDATA and/or GEINTF. I get it that If I have to call these programs from VBA/VB (which also has worked flawlessly before) I have to include all these directives and will give problems during execution if they are wrong.&amp;nbsp; Nevertheless, the objects of GEDATA and GEINTF from the DLL lib should be linked properly in the test program and it does not. So, in my opinion, it is a problem somewhere in linking now and not in executing which will become apparent later for incorrect directives, if any.&lt;/P&gt;

&lt;P&gt;May be I am missing something in importing or linking DLL lib in the linker command, that is why I included the linker command line code to see if I missed or incorrectly specified any linker parameters.&lt;/P&gt;

&lt;P&gt;May be you all can look at from different view point of linker problem and not a source code or directives problem.&lt;/P&gt;

&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Sat, 08 Nov 2014 16:40:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031345#M110693</guid>
      <dc:creator>Suresh_A_</dc:creator>
      <dc:date>2014-11-08T16:40:19Z</dc:date>
    </item>
    <item>
      <title>You need to have the</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031346#M110694</link>
      <description>&lt;P&gt;You need to have the DLLEXPORT directive also say STDCALL, REFERENCE, ALIAS:"GEDATA". Otherwise the names won't match.&lt;/P&gt;</description>
      <pubDate>Sun, 09 Nov 2014 01:00:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031346#M110694</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2014-11-09T01:00:02Z</dc:date>
    </item>
    <item>
      <title>Let's see if we can break the</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031347#M110695</link>
      <description>&lt;P&gt;Suresh A.: Let's see if we can break the logjam. If things worked "flawlessly" with CVF, we can try using IFort's CVF-compatibility mode. I have made the following changes to your sources:&lt;/P&gt;

&lt;OL&gt;
	&lt;LI&gt;removed "/LIST" from the include directives,&lt;/LI&gt;
	&lt;LI&gt;removed ", VALUE" attribute for dummy arguments from file GEINTF.FOR,&lt;/LI&gt;
	&lt;LI&gt;changed the DEC$ directives to specify alias names that, according to your posts, would be suitable for VBA (which I do not use and am not familiar with).&lt;/LI&gt;
&lt;/OL&gt;

&lt;P&gt;With these sources, I can compile and build the DLL and the test application using CVF6.6 as well as IFort 15.0 (32-bit). For the latter, I use the /iface:cvf option. Nevertheless, the test is incomplete because I do not have the data file(s), and we do not know if the subroutine arguments (80 bytes for GEDATA and 92 bytes for GEINTF) are passed correctly. However, you will have something to start with and extend.&lt;/P&gt;

&lt;P&gt;The command lines for building the DLL and then the test application:&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;ifort /LD /iface:cvf gealgo.for geintf.for gematx.for gesoln.for gedata.for aipack.for
ifort /MD /iface:cvf testlpintfdll.for gealgo.lib
&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 09 Nov 2014 01:02:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031347#M110695</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-11-09T01:02:00Z</dc:date>
    </item>
    <item>
      <title>Thank you all,</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031348#M110696</link>
      <description>&lt;P&gt;Thank you all,&lt;/P&gt;

&lt;P&gt;I am following your suggestions and will reply back here on the outcome.&lt;/P&gt;

&lt;P&gt;SSA&lt;/P&gt;</description>
      <pubDate>Tue, 11 Nov 2014 15:38:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031348#M110696</guid>
      <dc:creator>Suresh_A_</dc:creator>
      <dc:date>2014-11-11T15:38:45Z</dc:date>
    </item>
    <item>
      <title>Hi All,</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031349#M110697</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;I have tested stand-alone program with a main program and all routines in one one unit and they excecuted all 25 test cases.&lt;/P&gt;

&lt;P&gt;Next I stripped the main program and created DLL with DLLEXPORT directives in GEDATA and GEINTF and it created the DLL correctly.&lt;/P&gt;

&lt;P&gt;Next I wanted to linke tha main program as done in step-1 all DLL to create an EX to re-run testcases again and I can link and create EXE. I get the following errors.&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;The batchfile is as follows and all modules are in the same directory as this batch file.&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;Cd "G:\oms-Development\Version-VB6\Interfaces\omsLPIntf\Source\Fortran\TestLPIntfDLL-V2"&lt;BR /&gt;
	ifort /LD /iface:cvf TestLPIntfDll-V2.FOR &amp;gt;BatchBuild-Step1.txt&lt;BR /&gt;
	ifort /MD /iface:cvf TestLPIntfDll-V2.obj C:\Windows\System32\omsLPIntfDll.lib &amp;gt;BatchBuild-Step2.txt&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;
	&lt;/P&gt;&lt;P&gt;C:\&amp;gt;Cd "G:\oms-Development\Version-VB6\Interfaces\omsLPIntf\Source\Fortran\TestLPIntfDLL-V2"&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;

&lt;P&gt;C:\&amp;gt;ifort /LD /iface:cvf TestLPIntfDll-V2.FOR &amp;gt;BatchBuild-Step1.txt&lt;BR /&gt;
	ifort: error #10236: File not found:&amp;nbsp; '/LD'&lt;BR /&gt;
	ifort: error #10236: File not found:&amp;nbsp; '/iface:cvf'&lt;BR /&gt;
	ifort: error #10236: File not found:&amp;nbsp; 'TestLPIntfDll-V2.FOR'&lt;BR /&gt;
	ifort: command line error: no files specified; for help type "ifort -help"&lt;/P&gt;

&lt;P&gt;C:\&amp;gt;ifort /MD /iface:cvf TestLPIntfDll-V2.obj C:\Windows\System32\omsLPIntfDll.lib &amp;gt;BatchBuild-Step2.txt&lt;/P&gt;

&lt;P&gt;ifort: error #10236: File not found:&amp;nbsp; '/MD'&lt;BR /&gt;
	ifort: error #10236: File not found:&amp;nbsp; '/iface:cvf'&lt;BR /&gt;
	ifort: error #10236: File not found:&amp;nbsp; 'TestLPIntfDll-V2.obj'&lt;BR /&gt;
	ifort: warning #10362: Environment configuration problem encountered.&amp;nbsp; Please ch&lt;BR /&gt;
	eck for proper MPSS installation and environment setup.&lt;/P&gt;

&lt;P&gt;What am I doing wrong ? Is my system not installed properly. Even VS2013 does not link this step.&amp;nbsp; I have enclosed all 3 steps files here with. Once I can use the DLL with FORTRAN, nxt I will test with VB6/VBA.&amp;nbsp; Please advise.&lt;/P&gt;

&lt;P&gt;File-1 is creation of DLL&lt;/P&gt;

&lt;P&gt;File-2 is Stand-alone Program with all routines&lt;/P&gt;

&lt;P&gt;File-3 is Main program attempting to link with DLL created in Step-1.&lt;/P&gt;

&lt;P&gt;Thanks for your help.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 13 Nov 2014 03:23:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031349#M110697</guid>
      <dc:creator>Suresh_A_</dc:creator>
      <dc:date>2014-11-13T03:23:35Z</dc:date>
    </item>
    <item>
      <title>/LD was supposed to be /DLL.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031350#M110698</link>
      <description>&lt;P&gt;/LD was supposed to be /DLL. Maybe if you fix that the other errors will go away.&lt;/P&gt;</description>
      <pubDate>Thu, 13 Nov 2014 15:18:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031350#M110698</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2014-11-13T15:18:59Z</dc:date>
    </item>
    <item>
      <title>Steve, I think that he has</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031351#M110699</link>
      <description>&lt;P&gt;Steve, I think that he has other problems with his IFort installation. On Windows, MS compilers (C and Fortran) have used /LD as equivalent to /dll.&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;S:\lang\Suresh\omsLPIntfDll&amp;gt;ifort /? | findstr /I dll
Intel(R) Visual Fortran Compiler XE for applications running on IA-32, Version 15.0.0.108 Build 20140726
Copyright (C) 1985-2014 Intel Corporation.  All rights reserved.

/Qinline-dllimport
          allow(DEFAULT)/disallow functions declared DEC$ ATTRIBUTES DLLIMPORT
          dynamic-link (.dll) library
          keywords: static, dll, qwin, qwins
/LD&lt;D&gt;    produce a DLL instead of an EXE ('d' = debug version)
/dll      same as /LD
&lt;/D&gt;&lt;/PRE&gt;

&lt;P&gt;Something is strange because for him the compiler driver is interpreting all compiler options as files to be compiled or passed to the linker. His commands work fine for me and produce EXEs, DLLs and LIBs on my system. It may be something in his IFort.cfg at fault, when he builds at the command line.&lt;/P&gt;</description>
      <pubDate>Thu, 13 Nov 2014 15:49:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031351#M110699</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-11-13T15:49:43Z</dc:date>
    </item>
    <item>
      <title>I agree - I just tried some</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031352#M110700</link>
      <description>&lt;P&gt;I agree - I just tried some experiments and /LD did indeed get interpreted as /DLL and the other arguments were ok. I did not know about /LD.&lt;/P&gt;</description>
      <pubDate>Thu, 13 Nov 2014 16:12:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031352#M110700</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2014-11-13T16:12:25Z</dc:date>
    </item>
    <item>
      <title>Thanks for your comments. So,</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031353#M110701</link>
      <description>&lt;P&gt;Thanks for your comments. So, what should I do to fix this problem ? Reinstall Intel Fortran and others components ? or somehow fix the problem with ifort.cfg which I don't know how.&lt;/P&gt;

&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Thu, 13 Nov 2014 17:19:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031353#M110701</guid>
      <dc:creator>Suresh_A_</dc:creator>
      <dc:date>2014-11-13T17:19:24Z</dc:date>
    </item>
    <item>
      <title>Note the part of #15 where it</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031354#M110702</link>
      <description>&lt;P&gt;Note the part of #15 where it says "ifort: warning #10362: Environment configuration problem encountered. Please check for proper MPSS installation and environment setup."&lt;/P&gt;

&lt;P&gt;This indicates that there is a problem with your setup, and that has to get fixed before we can try anything else. It seems to me that the problem is preventing the compiler from successfully compiling even a three-line "Hello World!" program, in a newly created directory with only that three-line program. Confirm if that is the case.&lt;/P&gt;

&lt;P&gt;Important messages such as this warning tend to get overlooked in a post containing voluminous transcripts with lots of routine output in-line.&lt;/P&gt;</description>
      <pubDate>Thu, 13 Nov 2014 17:51:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/How-and-when-to-use-DLLEXPORT-and-DLLIMPORT-in-nested-Fortran/m-p/1031354#M110702</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-11-13T17:51:00Z</dc:date>
    </item>
  </channel>
</rss>

