<?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 Fortran modules in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Fortran-modules/m-p/853194#M66697</link>
    <description>Steve, Jim,&lt;BR /&gt;&lt;BR /&gt;Thanks for very quick replies. I'm recompiling large, someone elses program and to be honest - have no time to refactor too much of it. My predecessor used to compile it by this 'illegal' operation of commenting and deleting. I was curious maybe someone else knows this hack. Anyway, thanks again for your repies.&lt;BR /&gt;&lt;BR /&gt;P.S. Don't know why my username did not appear, I was logged in...</description>
    <pubDate>Tue, 06 Apr 2010 14:31:24 GMT</pubDate>
    <dc:creator>rfvujm</dc:creator>
    <dc:date>2010-04-06T14:31:24Z</dc:date>
    <item>
      <title>Fortran modules</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Fortran-modules/m-p/853191#M66694</link>
      <description>Hi All,&lt;BR /&gt;&lt;BR /&gt;First of all, sorry for a newbie quiestion on this forum.&lt;BR /&gt;&lt;BR /&gt;1st case, I have two simple fortran modules, A_MOD and B_MOD:&lt;BR /&gt;&lt;BR /&gt;&lt;PRE&gt;[bash]MODULE A_MOD&lt;BR /&gt;USE B_MOD&lt;BR /&gt;INTEGER PAR_1&lt;BR /&gt;...&lt;BR /&gt;IF (PAR_2 .GT. 0) CYCLE&lt;BR /&gt;...[/bash]&lt;/PRE&gt;  &lt;PRE&gt;[bash]MODULE B_MOD&lt;BR /&gt;USE A_MOD&lt;BR /&gt;INTEGER PAR_2&lt;BR /&gt;...&lt;BR /&gt;IF (PAR_1 .GT. 0) CYCLE&lt;BR /&gt;...[/bash]&lt;/PRE&gt; &lt;BR /&gt;2nd case, similar three modules, A_MOD, B_MOD and C_MOD:&lt;BR /&gt;- A uses B&lt;BR /&gt;- B uses C&lt;BR /&gt;- C uses A&lt;BR /&gt;&lt;BR /&gt;In any of such combinations, how do I compile the program? To compile A, I need B to be compiled, which needs A.

Heard about some vague solution, where:&lt;BR /&gt;- in A you comment lines 2 and 5&lt;BR /&gt;- compile A&lt;BR /&gt;- compile B&lt;BR /&gt;- uncomment A&lt;BR /&gt;- delete all/some .obj and/or .mod files (???)&lt;BR /&gt;- recompile (what?)&lt;BR /&gt;&lt;BR /&gt;Tried, no success, as I do not understand it.&lt;BR /&gt;&lt;BR /&gt;Any hint would be very appreciated. :)&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Mario&lt;BR /&gt;</description>
      <pubDate>Tue, 06 Apr 2010 09:17:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Fortran-modules/m-p/853191#M66694</guid>
      <dc:creator>rfvujm</dc:creator>
      <dc:date>2010-04-06T09:17:50Z</dc:date>
    </item>
    <item>
      <title>Fortran modules</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Fortran-modules/m-p/853192#M66695</link>
      <description>Well, this is interesting - a post written by no username. Hmm.&lt;BR /&gt;&lt;BR /&gt;The short answer is "don't do that" - a circular module dependency is not legal Fortran and will, as you note, cause problems when you try to build. If A and B are really that related, put them in the same module. Otherwise, perhaps moving some common items to a third module C will break the mutual dependency.</description>
      <pubDate>Tue, 06 Apr 2010 13:15:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Fortran-modules/m-p/853192#M66695</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2010-04-06T13:15:31Z</dc:date>
    </item>
    <item>
      <title>Fortran modules</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Fortran-modules/m-p/853193#M66696</link>
      <description>Mario,&lt;BR /&gt;&lt;BR /&gt;As Steve recommends seperate the data such that you have no circular dependencies.&lt;BR /&gt;&lt;BR /&gt;MODULE A_MOD_DATA&lt;BR /&gt;INTEGER PAR_1&lt;BR /&gt;...&lt;BR /&gt;------------------------&lt;BR /&gt;MODULE B_MOD_DATA&lt;BR /&gt;INTEGER PAR_2&lt;BR /&gt;...&lt;BR /&gt;----------------------&lt;BR /&gt;MODULE A_MOD_CODE&lt;BR /&gt;USE B_MOD_DATA&lt;BR /&gt;...&lt;BR /&gt;IF(PAR_1 .GT. 0) CYCLE&lt;BR /&gt;...&lt;BR /&gt;------------------------&lt;BR /&gt;MODULE B_MOD_CODE&lt;BR /&gt;USE A_MOD_DATA&lt;BR /&gt;...&lt;BR /&gt;IF(PAR_2 .GT. 0) CYCLE&lt;BR /&gt;...&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;This doesn't fix situations were you are co-dependent on subroutines and/or functions, but this can be fix using INTERFACE blocks.&lt;BR /&gt;&lt;BR /&gt;Jim Dempsey&lt;BR /&gt;</description>
      <pubDate>Tue, 06 Apr 2010 13:57:13 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Fortran-modules/m-p/853193#M66696</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2010-04-06T13:57:13Z</dc:date>
    </item>
    <item>
      <title>Fortran modules</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Fortran-modules/m-p/853194#M66697</link>
      <description>Steve, Jim,&lt;BR /&gt;&lt;BR /&gt;Thanks for very quick replies. I'm recompiling large, someone elses program and to be honest - have no time to refactor too much of it. My predecessor used to compile it by this 'illegal' operation of commenting and deleting. I was curious maybe someone else knows this hack. Anyway, thanks again for your repies.&lt;BR /&gt;&lt;BR /&gt;P.S. Don't know why my username did not appear, I was logged in...</description>
      <pubDate>Tue, 06 Apr 2010 14:31:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Fortran-modules/m-p/853194#M66697</guid>
      <dc:creator>rfvujm</dc:creator>
      <dc:date>2010-04-06T14:31:24Z</dc:date>
    </item>
  </channel>
</rss>

