Loading...
You are not logged-in Login/Register





  • Posts   Search Threads
  • brunocaladoJuly 2, 2009 4:28 PM PDT   
    Function Overloading

    How can I create a interface for overload this functions?

    I need just to use
    CALL func(a,b)
    for the all functions

    SUBROUTINE func1(a,b)
    INTEGER :: a,b
    END SUBROUTINE

    SUBROUTINE func2(a,b)
    REAL :: a,b
    END SUBROUTINE




    Xiaoping Duan (Intel)July 2, 2009 7:54 PM PDT
    Rate
     
    Re: Function Overloading

    Quoting - brunocalado
    How can I create a interface for overload this functions?

    I need just to use
    CALL func(a,b)
    for the all functions

    SUBROUTINE func1(a,b)
    INTEGER :: a,b
    END SUBROUTINE

    SUBROUTINE func2(a,b)
    REAL :: a,b
    END SUBROUTINE



    You can use generic name for procedures like below:

    INTERFACE func

    SUBROUTINE func1(a,b)
    INTEGER :: a,b
    END SUBROUTINE

    SUBROUTINE func2(a,b)
    REAL :: a,b
    END SUBROUTINE

    END INTERFACE



    brunocaladoJuly 3, 2009 5:09 PM PDT
    Rate
     
    Re: Function Overloading

    Not working...

    What's wrong?

    INTERFACE getRandom
    INTEGER FUNCTION getRandomA()
    END FUNCTION
    INTEGER FUNCTION getRandomB(max)
    INTEGER, INTENT(IN) :: max
    END FUNCTION
    INTEGER FUNCTION getRandomC(min,max)
    INTEGER, INTENT(IN) :: min, max
    END FUNCTION
    END INTERFACE


    MODULE test
    USE IFPORT
    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


    Steve Lionel (Intel)July 3, 2009 6:06 PM PDT
    Rate
     
    Re: Function Overloading

    This is how it's done.  Note that geneSize is not defined here, but I assume you'll take care of that.

    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
    
    



    Steve

    Attaching or including files in a post
    Doctor Fortran blog
    @DoctorFortran on Twitter

    brunocaladoJuly 3, 2009 7:44 PM PDT
    Rate
     
    Re: Function Overloading

    This is how it's done.  Note that geneSize is not defined here, but I assume you'll take care of that.

    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
    
    


    Worked.

    Thank you.


Forum jump:  

Intel Software Network Forums Statistics

16,367 users have contributed to 46,339 threads and 163,926 posts to date.

In the past 24 hours, we have 27 new thread(s) 145 new posts(s), and 83 new user(s).

In the past 3 days, the most popular thread for everyone has been Formula for the intersection of straight lines The most posts were made to Take a look at John Burkhard&# The post with the most views is \"-check none\" generates error

Please welcome our newest member dozo1971


For more complete information about compiler optimizations, see our Optimization Notice.