<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, May 12, 2013 at 9:22 AM, Zaak Beekman <span dir="ltr">&lt;<a href="mailto:zbeekman@gmail.com" target="_blank">zbeekman@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra">I&#39;m curious why you want to install the .mod files. As far as I know, I don&#39;t think you need these at run time, but I could be wrong. (I know this to be true at least for statically linked binaries.)</div>
</div></blockquote><div><br></div><div style>When application code that use the modules (compiled into the library) is compiled, the</div><div style>compiler requires the .mod files.</div><div style><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div class="gmail_extra">I do know, however, if you are providing a library .mod files are NOT compatible across different compiler vendors, and even different compiler releases from the same vendor. This, along with compilation cascades, is one of the main motivations for the sub-module functionality specified in F2008. This way, library vendors can ship the module sources with the libraries, containing any type definitions, interface info, other use associations, module variables etc. but place all of the procedures in submodules and ship those as (possibly an archive) of compiled submodules/object files. The customer can then build the .mod file with their compiler, without exposing the possibly proprietary implementation details of the methods/procedures. This is my current understanding, anyway.</div>
</div></blockquote><div><br></div><div style>Submodules (which I have never used) address the compilation cascade problem, but I </div><div style>think you&#39;re mistaken about the second part.  The way an array object, for example, is implemented</div>
<div style>(rank, bounds, strides, memory address, etc) will vary between compilers;  you can&#39;t pass an array</div><div style>created in code built by one compiler to a procedure built by another.  You&#39;d need some sort of Fortran ABI standard, which doesn&#39;t exist, for this to work.</div>
<div style><br></div></div></div></div>