25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5.18 Visibilità 303<br />

5.17.4 Overloading delle procedure intrinseche<br />

Quando viene introdotto un nuovo tipo di dati può essere utile estendere l’applicabilità di<br />

alcune procedure intrinseche a variabili del nuovo tipo. In questo caso si definisce una generic<br />

interface con lo stesso nome della procedura intrinseca già esistente. Una procedura intrinseca<br />

potrà essere così ”estesa” e sarà questa procedura ad essere richiamata (col nome usuale) quando<br />

la variabile argomento sia del nuovo tipo di dati.<br />

Ad esempio, si supponga di voler estendere il significato della funzione intrinseca LEN_TRIM<br />

affinché fornisca il numero di lettere che compongono il nome diproprietario quando applicata<br />

ad un oggetto di tipo casa. <strong>Il</strong> seguente modulo illustra come ciò possa essere fatto:<br />

MODULE mio_modulo<br />

IMPLICIT NONE<br />

TYPE casa<br />

CHARACTER(LEN=20) :: proprietario<br />

INTEGER :: residenti<br />

REAL :: valore<br />

END TYPE casa<br />

INTERFACE LEN_trim<br />

MODULE PROCEDURE lettere<br />

END INTERFACE<br />

CONTAINS<br />

FUNCTION lettere(c)<br />

TYPE(casa), INTENT(IN) :: c<br />

INTEGER :: lettere<br />

lettere = LEN_TRIM(c%proprietario)<br />

END FUNCTION lettere<br />

END MODULE mio_modulo<br />

5.18 Visibilità<br />

La visibilità (scope) di una entità con nome (variabile o procedura) o di un’etichetta è, per<br />

definizione, quella parte di un programma all’interno della quale quel nome o quell’etichetta<br />

sono unici. In altre parole, la visibilità di un’entità con nome o di un etichetta è l’insieme di<br />

tutte le unità di visibilità ”non sovrapposte” in cui quel nome o quella etichetta possono essere<br />

usati senza ambiguità.<br />

Una unità di visibilità è uno qualsiasi dei seguenti ambienti:<br />

• Una definizione di un tipo di dati derivato.<br />

• Un interface block, esclusi ogni definizione di tipo di dati derivati o interface block al suo<br />

interno.<br />

• Un’unità di programma o procedura interna, esclusi ogni definizione di tipo di dati<br />

derivati, procedure o interface block al suo interno.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!