Questo sito contribuisce alla audience di

Passaggio di sottosezioni di array nel Fortran

Un esempio di come passare una parte di un array ad un sottoprogramma

fortran 90,intel fortran,visual fortran,compilatore fortran

Per analizzare nel dettaglio come passare una parte di un array ad un sottoprogramma vi presento una subroutine per la moltiplicazione matrice-vettore. Ci sono due modi per fare questo, utilizzando prodotti interni o operazioni saxpy. Cerchiamo di essere modulari e riutilizziamo il codice saxpy già presentato in un articolo precedente. Un semplice codice è riportato di seguito.

      subroutine matvec (m, n, A, lda, x, y)
      integer m, n, lda
      real x(*), y(*), A(lda,*)
c
c Compute y = A*x, where A is m by n and stored in an array
c with leading dimension lda.
c
c Local variables
      integer i, j

c Initialize y
      do 10 i = 1, m
         y(i) = 0.0
   10 continue

c Matrix-vector product by saxpy on columns in A.
c Notice that the length of each column of A is m, not n!
      do 20 j = 1, n
         call saxpy (m, x(j), A(1,j), y)
   20 continue

      return
      end

Link correlati all’argomento

- Programmare con Fortran

- Note sul Fortran 90

- Come scaricare gratuitamente il compilatore Fortran

- Gli articoli della guida Fortran