Questo sito contribuisce alla audience di

Esercizio sull'uso dei moduli nel Fortran

Come usare i moduli in un programma Fortran

fortran 90,intel fortran,visual fortran,compilatore fortran

La funzione MatrixVectorOperations già proposta in un ‘esempio precedente poteva essere inserito in un modulo e utilizzata così in qualsiasi programma che necessitava di effettuare la moltiplicazione matrice-vettore. Un esempio di tale modulo è riportato qui sotto. Un vantaggio significativo di procedure di modulo è la loro interfaccia esplicita - il compilatore Fortran 90 è in grado di rilevare discordanze tipo di chiamate a sottoprogrammi all’interno di un modulo.

module MatrixVectorOperations

integer, parameter :: N = 3 ! A global constant.

contains ! Module procedure definitions appear below.

function matrixVectorMultiply( A, b ) result( c )
implicit none

! Assume the shape of A and b.
real, dimension( :, : ), intent( in ) :: A
real, dimension( : ), intent( in ) :: b
real, dimension( size( b ) ) :: c

integer N
integer i

N = size( b )

c = 0.0

do i = 1, N
c = c + b( i ) * A( :, i )
end do
end function matrixVectorMultiply

end module MatrixVectorOperations

program MatrixVector
use MatrixVectorOperations
implicit none

real, dimension( N, N ) :: A
real, dimension( N ) :: b, c

! Fill A and b with random entries.
call random_number( A )
call random_number( b )

! Compute the matrix-vector product, A*b.
c = matrixVectorMultiply( A, b )

print *, ‘The matrix-vector product is ‘, c

end program MatrixVector

Link correlati all’argomento

- I compilatori Fortran

- Programmare con Fortran

- Elementi di calcolo numerico con il Fortran

- Esercizi sul Fortran 90

Link correlati