25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

220 Unità di Programma<br />

[prefisso] FUNCTION nome_function[(lista di argomenti)]<br />

tipo nome_function<br />

[istruzioni di definizione e dichiarazione di variabili]<br />

[istruzioni eseguibili]<br />

nome_function = espressione<br />

[CONTAINS<br />

procedure interne]<br />

END [FUNCTION [nome_function]]<br />

in cui lo specificatore opzionale prefisso può essere PURE, ELEMENTAL o RECURSIVE.<br />

La function deve iniziare con l’istruzioneFUNCTION e terminare con l’istruzioneEND FUNCTION.<br />

<strong>Il</strong> nome della function deve essere specificato nell’istruzione FUNCTION mentre è facoltativo<br />

nell’istruzione END FUNCTION.<br />

Per eseguire una funzione basta specificarne il nome all’interno di un’espressione dell’unità<br />

chiamante. L’esecuzione della funzione termina quando viene raggiunta l’istruzione END<br />

FUNCTION. <strong>Il</strong> valore restituito dalla function viene inserito nell’espressione dell’unità chiamante<br />

che contiene il suo nome.<br />

<strong>Il</strong> nome di una funzione deve apparire sul lato sinistro di almeno un’istruzione di assegnazione.<br />

<strong>Il</strong> valore che viene assegnato a nome_function , quando la funzione restituisce il controllo<br />

all’unità chiamante, è il valore della funzione.<br />

La lista degli argomenti può essere vuota nel caso in cui la funzione può svolgere i suoi<br />

calcoli senza argomenti di input. Tuttavia, le parentesi che contengono la lista degli argomenti<br />

sono obbligatorie anche se la lista è vuota.<br />

Poiché una funzione restituisce un valore, è sempre necessario assegnarle un tipo. Se è<br />

utilizzata l’istruzione IMPLICIT NONE il tipo di dati della funzione deve essere dichiarato sia<br />

nella procedura che nelle unità chiamanti. Viceversa, se l’istruzione IMPLICIT NONE non è<br />

utilizzata, alla funzione saranno applicate le convenzioni standard del <strong>Fortran</strong> per i tipi di dati<br />

predefiniti.<br />

5.2.3 Argomenti attuali e argomenti fittizi<br />

Le procedure sono utilizzate per assolvere a compiti ben precisi. L’attivazione di una procedura<br />

e la sua esecuzione presuppongono uno scambio di informazioni tra l’unità chiamante e la<br />

procedura. <strong>Il</strong> modo più comune per rendere dei dati disponibili ad una procedura è di passarli<br />

attraverso una lista di argomenti all’atto della chiamata di procedura.<br />

Una lista di argomenti è semplicemente un insieme di variabili o di espressioni (o anche<br />

nomi di procedure). Gli argomenti di una istruzione di chiamata sono detti argomenti attuali,<br />

mentre quelli corrispondenti nell’istruzione di dichiarazione della procedura sono chiamati argomenti<br />

fittizi. Gli argomenti attuali e quelli fittizi vengono detti argomenti associati: essi si<br />

corrispondono per posizione, cioè il primo argomento attuale corrisponde al primo argomento<br />

fittizio, il secondo argomento attuale al secondo argomento fittizio, e così via. Oltre al numero,<br />

anche il tipo di dati e il rango degli argomenti attuali e fittizi devono corrispondere esattamente.<br />

Non è, invece, necessario che essi si corrispondano anche per nome.

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

Saved successfully!

Ooh no, something went wrong!