<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Wed, 25 Nov 2009 18:41:22 -0800 -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="http://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/66719/feed" rel="self" type="application/rss+xml" />
    <title>Intel Software Network - <![CDATA[ Function Overloading ]]> feed</title>
    <link>http://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/66719</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Re: Function Overloading</title>
      <description><![CDATA[ <div style="margin:0px;">
<div id="quote_reply" style="margin-top: 5px; width: 100%;">
<div style="margin-left:2px;margin-right:2px;">Quoting - <a href="/en-us/profile/406810">brunocalado</a></div>
<div style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"><em>How can I create a interface for overload this functions?<br /><br />I need just to use <br />CALL func(a,b)<br />for the all functions<br /><br />SUBROUTINE func1(a,b)<br />INTEGER :: a,b<br />END SUBROUTINE<br /><br />SUBROUTINE func2(a,b)<br />REAL :: a,b<br />END SUBROUTINE<br /><br /><br /></em></div>
</div>
</div>
<br />You can use generic name for procedures like below:<br /><br />INTERFACE func<br /><br />SUBROUTINE func1(a,b)<br />INTEGER :: a,b<br />END SUBROUTINE<br /><br />SUBROUTINE func2(a,b)<br />REAL :: a,b<br />END SUBROUTINE<br /><br />END INTERFACE<br /><br /> ]]></description>
      <link>http://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/66719/</link>
      <pubDate>Thu, 02 Jul 2009 18:54:38 -0700</pubDate>
      <guid isPermaLink="true">http://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/66719/</guid>
      <category>ISN General</category>
    </item>
    <item>
      <title>Re: Function Overloading</title>
      <description><![CDATA[ <div style="margin:0px;">
<div id="quote_reply" style="width: 100%; margin-top: 5px;">Not working...<br /><br />What's wrong?<br /><br />INTERFACE getRandom<br /> INTEGER FUNCTION getRandomA()<br /> END FUNCTION<br /> INTEGER FUNCTION getRandomB(max)<br /> INTEGER, INTENT(IN) :: max<br /> END FUNCTION<br /> INTEGER FUNCTION getRandomC(min,max)<br /> INTEGER, INTENT(IN) :: min, max<br /> END FUNCTION<br />END INTERFACE<br /><br /><br />MODULE test<br /> USE IFPORT<br />CONTAINS<br /> INTEGER FUNCTION getRandomA()<br /> IMPLICIT NONE<br /> getRandomA = MOD( IRAND(), geneSize-1 ) + 1 !        GENERATE RANDOM FROM 1 TO geneSize-1<br /> END FUNCTION<br /><br /> INTEGER FUNCTION getRandomB(max)<br /> IMPLICIT NONE<br /> INTEGER, INTENT(IN) :: max<br /> getRandomB = MOD( IRAND(), geneSize-1 ) + 1 !        GENERATE RANDOM FROM 1 TO geneSize-1<br /> END FUNCTION<br /><br /> INTEGER FUNCTION getRandomC(min, max)<br /> IMPLICIT NONE<br /> INTEGER, INTENT(IN) :: min, max<br /> getRandomC = MOD( IRAND(), geneSize-1 ) + 1 !        GENERATE RANDOM FROM 1 TO geneSize-1<br /> END FUNCTION<br />END MODULE<br /></div>
</div> ]]></description>
      <link>http://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/66719/</link>
      <pubDate>Fri, 03 Jul 2009 16:09:53 -0700</pubDate>
      <guid isPermaLink="true">http://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/66719/</guid>
      <category>ISN General</category>
    </item>
    <item>
      <title>Re: Function Overloading</title>
      <description><![CDATA[ <div style="margin:0px;"></div>
This is how it's done.  Note that geneSize is not defined here, but I assume you'll take care of that.<br /><br />
<pre name="code" class="plain">MODULE test
USE IFPORT

INTERFACE getRandom
MODULE PROCEDURE getRandomA
MODULE PROCEDURE getRandomB
MODULE PROCEDURE getRandomC
END INTERFACE

CONTAINS
INTEGER FUNCTION getRandomA()
IMPLICIT NONE
getRandomA = MOD( IRAND(), geneSize-1 ) + 1 !        GENERATE RANDOM FROM 1 TO geneSize-1
END FUNCTION

INTEGER FUNCTION getRandomB(max)
IMPLICIT NONE
INTEGER, INTENT(IN) :: max
getRandomB = MOD( IRAND(), geneSize-1 ) + 1 !        GENERATE RANDOM FROM 1 TO geneSize-1
END FUNCTION

INTEGER FUNCTION getRandomC(min, max)
IMPLICIT NONE
INTEGER, INTENT(IN) :: min, max
getRandomC = MOD( IRAND(), geneSize-1 ) + 1 !        GENERATE RANDOM FROM 1 TO geneSize-1
END FUNCTION
END MODULE

</pre>
<br /> ]]></description>
      <link>http://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/66719/</link>
      <pubDate>Fri, 03 Jul 2009 17:06:17 -0700</pubDate>
      <guid isPermaLink="true">http://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/66719/</guid>
      <category>ISN General</category>
    </item>
    <item>
      <title>Re: Function Overloading</title>
      <description><![CDATA[ <div style="margin:0px;">
<div id="quote_reply" style="width: 100%; margin-top: 5px;">
<div style="margin-left:2px;margin-right:2px;">Quoting - <a href="/en-us/profile/336209">Steve Lionel (Intel)</a></div>
<div style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"><em> This is how it's done.  Note that geneSize is not defined here, but I assume you'll take care of that.<br /><br />
<pre name="code" class="plain">MODULE test
USE IFPORT

INTERFACE getRandom
MODULE PROCEDURE getRandomA
MODULE PROCEDURE getRandomB
MODULE PROCEDURE getRandomC
END INTERFACE

CONTAINS
INTEGER FUNCTION getRandomA()
IMPLICIT NONE
getRandomA = MOD( IRAND(), geneSize-1 ) + 1 !        GENERATE RANDOM FROM 1 TO geneSize-1
END FUNCTION

INTEGER FUNCTION getRandomB(max)
IMPLICIT NONE
INTEGER, INTENT(IN) :: max
getRandomB = MOD( IRAND(), geneSize-1 ) + 1 !        GENERATE RANDOM FROM 1 TO geneSize-1
END FUNCTION

INTEGER FUNCTION getRandomC(min, max)
IMPLICIT NONE
INTEGER, INTENT(IN) :: min, max
getRandomC = MOD( IRAND(), geneSize-1 ) + 1 !        GENERATE RANDOM FROM 1 TO geneSize-1
END FUNCTION
END MODULE

</pre>
<br /></em></div>
</div>
</div>
<br />Worked.<br /><br />Thank you.<br /> ]]></description>
      <link>http://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/66719/</link>
      <pubDate>Fri, 03 Jul 2009 18:44:36 -0700</pubDate>
      <guid isPermaLink="true">http://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/66719/</guid>
      <category>ISN General</category>
    </item>
  </channel></rss>