Una subroutine nel Fortran rappresenta un tipo di procedura, essa viene richiamata specificandone il nome attraverso l’istruzione CALL che riceve i valori di input e restituisce quelli di output attraverso una lista di argomenti.
Il costrutto nella sua forma generale per definire una subroutine è il seguente:
Nella definizione della struttura è possibile identificare il nome della subroutine, che dovrà rispettare le regole per la scelta dei nomi nel Fortran, seguito dall’elenco delle varibili di scambio tra la procedura ed il programma chiamante.
Segue la definizione e la dichiarazione delle variabile che sono utilizzate all’interno della procedura, quindi segue il corpo della procedura cioè le istruzioni che dovrà eseguire nel momento in cui verrà chiamata dal programma principale.
Quando un programma chiama una subroutine, l’esecuzione del programma viene temporaneamente sospesa per consentire l’esecuzione della subroutine. Quando viene raggiunta l’istruzione RETURN o l’istruzione END SUBROUTINE l’esecuzione dell’unità chiamante riprende dalla riga successiva a quel la che ha effettuato la chiamata.
La chiamata avviene attraverso l’istruzione CALL, la cui sintassi è:
Un esempio di soubroutine di fortran 90 è fornito di seguito:
!TRASFORMATA DI FOURIER DISCRETA !________________________________ subroutine dft (A,N,E) implicit none 17 integer :: N !numero di campioni integer :: E !numero di campinature effettuate integer :: i,j !indice di riga e di colonna della matrice complex :: uim !unita' immaginaria complex,dimension(0:1000,0:1000) :: A !matrice complessa uim=(0,1) do i=0, n-1 do j=0, n-1 A(i,j)=exp(-(2*3.14*uim*i*j)/n) end do end do E=N end
Questa subroutine calcola le trasformate discrete di fourier dato un certo campione.
LINK DI APPROFONDIMENTO PER L’ARGOMENTO:
- Programmare con Fortran
- Sottoprogrammi nel Fortran
- Gli array bidimensionali in Fortran
- Gli array monodimensionali nel Fortran
- Il ciclo Do implicito nel Fortran
- I cicli nel Fortran