Questo sito contribuisce alla audience di

Le interfacce per definire un sottoprogramma Fortran

Come utilizzare le interfacce nel definire un sottoprogramma

fortran 90,intel fortran,visual fortran,compilatore fortran

Le interfacce sono necessarie per definire un sottoprogramma generico. I sottoprogrammi generici erano già utilizzati nel Fortran 77 nelle procedure intrinseche quali ad esempio la funzione sin o, come gli operatori ‘+’. Queste funzioni intrinseche sono casi particolari nel Fortran 77 e sono stati sovraccaricati di lavoro su una varietà di tipi di argomento.

Ad esempio sin (x) in modo appropriato calcola il seno del suo argomento, se x è singola o in doppia precisione, oppure un numero reale o complesso. In Fortran 90, i sottoprogrammi definiti dall’utente possono essere generici nello stesso senso. Le funzioni generiche e le subroutine possono essere definiti, analogamente a qualsiasi altro sottoprogramma, anche se l’interfaccia deve essere esplicita. Il modo usuale di definire una tale funzione generica è quella di inserirlo in un modulo, come nell’esempio qui sotto.

module RationalArithmetic
   type rational
      integer n, d   ! Numerator and denominator.
   end type rational

   interface operator (*)
      module procedure integerRationalMultiply, &
                       rationalIntegerMultiply
   end interface

   contains

   function integerRationalMultiply( i, r )
      type( rational ) integerRationalMultiply
      integer, intent( in ) :: i
      type( rational ), intent( in ) :: r

      integerRationalMultiply = rational( i * r%n, r%d )
   end function integerRationalMultiply

   function rationalIntegerMultiply( r, i )
      type( rational ) rationalIntegerMultiply
      type( rational ), intent( in ) :: r
      integer, intent( in ) :: i

      rationalIntegerMultiply = rational( i * r%n, r%d )
   end function rationalIntegerMultiply

end module RationalArithmetic

Link correlati all’argomento

- I compilatori Fortran

- Programmare con Fortran

- Elementi di calcolo numerico con il Fortran

- Esercizi sul Fortran 90