Come creare una subroutine in Fortran

Nel linguaggio Fortran posso definire un sottoprogramma tramite l'istruzione SUBROUTINE

PROGRAM nome
...
CALL nome2 ( argomenti )
...
END PROGRAM

SUBROUTINE nome2 ( argomenti )
...
END SUBROUTINE

La subroutine va inserita in coda al programma, dopo la clausola END PROGRAM.

Per eseguirla utilizzo l'istruzione CALL all'interno del programma principale.

Nota. In Fortran le variabili locali del programma e della subroutine sono diverse. Tuttavia, in Fortran95 le variabili passate come argomenti nell'istruzione CALL sono in comune.

    Un esempio pratico

    In questo programma creo una subroutine somma.

    1. PROGRAM nome
    2. a=1
    3. b=2
    4. CALL somma(a,b,c)
    5. WRITE (*,*) "totale=",c
    6. END PROGRAM
    7. SUBROUTINE somma(x,y,z)
    8. z=x+y
    9. END SUBROUTINE

    Alla riga 4 il programma invoca la subroutine somma tramite l'istruzione CALL passandogli le variabili a,b,c.

    Nota. Le prime due variabili (a,b) contengono i valori degli addendi, mentre la terza variabile (c) è destinata a ospitare il risultato dell'operazione.

    La subroutine riceve i valori di a,b,c e li assegna alle variabili locali x,y,z.

    Poi somma i valori x+y e assegna il risultato a z.

    L'istruzione END SUBROUTINE chiude il sottoprogramma, restituendo i valori delle variabili secondo l'ordine di invocazione

    a=x
    b=y
    c=z

    Il controllo sul flusso di esecuzione torna al programma principale alla fine della riga 4.

    Nella riga 5 l'istruzione WRITE stampa il valore della variabile c sullo schermo

    L'output del programma è

    Totale = 3.0000000

    E così via

    Attenzione. In Fortran l'istruzione RETURN chiude il sottoprogramma ma, a differenza del linguaggio C, non passa alcun valore al programma principale.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Fortran (subroutine)