Questo sito contribuisce alla audience di

Gli array nei common blocks 2

Come utilizzare gli array nei blocchi comuni del Fortran

fortran 90,intel fortran,visual fortran,compilatore fortran

Il blocco comune definito nell’articolo precedente contiene in primo luogo tutti gli elementi di A, poi i numeri interi n e nmax. Supponiamo di voler utilizzare la matrice in qualche subroutine. Per fare questo è necessario includere le stesse dichiarazioni in tutte le subroutine, ad esempio.


      subroutine sub1 (...)
      integer nmax
      parameter (nmax=20)
      integer n
      real A(nmax, nmax)
      common /matrix/ A, n, nmax

E’ facile allora dedurre che Array con dimensioni variabili non possono apparire in blocchi comune, quindi il valore di nmax deve essere esattamente lo stesso che compare nel programma principale. Ricordiamo che la dimensione di una matrice deve essere nota al momento della compilazione, quindi nmax deve essere definito in una dichiarazione di parametro. Si sarebbe tentati di cancellare la dichiarazione dei parametri nella subroutine a cui nmax appartiene al blocco comune, ma questo procedimento non è consentito.

L’esempio appena visto mostra ch non c’è nulla da guadagnare utilizzando i blocchi comuni per la dichiarazione di matrici . Quindi il metodo preferito in Fortran 77 è quello di passare le matrici come argomenti di subroutine (insieme con le dimensioni principali).

Gli array nei common blocks