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

Peeplo Engine

Un motore di ricerca nuovo, ricco e approfondito.

Inizia ora le tue ricerche su Peeplo.