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.

Capitolo 6<br />

Array Processing<br />

6.1 Le diverse classi di array<br />

Esistono tre possibili tipologie di array che differiscono tra loro a seconda del modo in cui essi<br />

sono ”associati” allo spazio in memoria ad essi relativo.<br />

• Array statici: la loro ampiezza è fissata in fase di dichiarazione e non può in alcun modo<br />

essere modificata durante l’esecuzione del programma. Questa forma di array è la meno<br />

flessibile nella maggior parte delle applicazioni in quanto per adattare un programma a<br />

nuove esigenze in termini di spazio in memoria è necessario intervenire sul codice sorgente,<br />

modificare le dimensioni degli array e ricompilare il programma. L’unico modo per ovviare<br />

a questo inconveniente è quello di sovradimensionare gli array, soluzione questa non certo<br />

ottimale in quanto a gestione della memoria.<br />

Nel <strong>Fortran</strong> <strong>90</strong>/<strong>95</strong> tali array sono detti array di forma esplicita<br />

• Array semi-dinamici: l’ampiezza di tali array, che possono essere dichiarati esclusivamente<br />

in una procedura, è determinata in fase di esecuzione quando il comando del programma<br />

”entra” nella suddetta procedura. In tal modo è possibile creare array di dimensioni tali<br />

da adattare il programma alle esigenze attuali.<br />

Nel <strong>Fortran</strong> <strong>90</strong>/<strong>95</strong> tali array sono chiamati array fittizi di forma presunta (se sono parametri<br />

formali), o array automatici (se, invece, rappresentano variabili locali).<br />

• Array dinamici: l’ampiezza e, con essa, l’impegno in termini di memoria associato a tali<br />

array possono essere alterati durante l’esecuzione del programma. Questa è la forma<br />

di array più flessibile e potente ma soffre di due inconvenienti: la lentezza in fase di<br />

esecuzione associata al loro uso e la mancanza di un controllo che individui, in fase di<br />

compilazione, eventuali errori dovuti a limiti fuori range.<br />

Nel <strong>Fortran</strong> <strong>90</strong>/<strong>95</strong> tali array sono detti array allocabili.<br />

Nei prossimi paragrafi queste diverse forme di array saranno analizzate in dettaglio.<br />

313

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

Saved successfully!

Ooh no, something went wrong!