Sottoprogrammi nel Fortran


FORTRANCosì come già accadeva per il fortran 77, anche il nuovo formato fortran 90 ci consente di suddividere un programma principali in una serie di sottoprogrammi. tali sottoprogrammi possono essere di due tipi:

  1. funzioni
  2. subroutine

In entrambi i casi è poi possibile suddividere il sottoprogrammi in ulteriori due forme:

  1. sottoprogramma interno
  2. sottoprogramma esterno.

I sottoprogrammi interni sono quelle procedure che possono comparire nell’ambito del programma principale. mentre i  sottoprogrammi esterni sono quelli che compaiono in una sezione separata di programma dopo l’ istruzione principale END del programma.

Ciò è del tutto simile a quanto già si faceva nel fortran 77 trattandosi pur sempre di programmazione procedurale.  Inoltre, così come in fortran 77, i sottoprogrammi del tipo function, nel fortran 90, hanno un tipo esplicito e sono indirizzati a restituire un valore.

Mentre i sottoprogrammi del tipo subroutine, non hanno tipo esplicito e restituiscono il risultato o nessun valore con una chiamata del parametro CONTAINS(). Poichè porremo l’attenzione sui sottoprogrammi esterni, è essenziale l’utilizzo di una caratteristica del fortran 90 conosciuta come INTERFACE BLOCKS.

Questo blocco è una caratteristica di sicurezza che permette che i programmi principali ed i subprograms esterni si connettano giustamente. Un INTERFACE BLOCKS si accerta che il programma chiamante ed il subprogram abbiano il numero ed il tipo corretti di argomenti.

Ciò aiuta il compilatore a rilevare l’uso errato d’un subprogram . Un INTERFACE BLOCK consiste di:

1. numero di argomenti
2. tipo di ogni argomento
3. che tipo del value(s) ha restituito il subprogram

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>