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.

164 Array<br />

INTEGER :: numero_atomico<br />

REAL :: massa_atomica<br />

END TYPE elemento_chimico<br />

TYPE(elemento_chimico), DIMENSION(numero_elementi) :: tavola_periodica = &<br />

elemento_chimico("xxx","X",0,0.0)<br />

INTEGER :: loop<br />

! start<br />

tavola_periodica(1) = elemento_chimico("Idrogeno","H",1,1.01)<br />

tavola_periodica(2) = elemento_chimico("Elio","He",2,4.00)<br />

! ...<br />

DO loop = 1,numero_elementi<br />

WRITE(*,*) tavola_periodica(loop)<br />

END DO<br />

STOP<br />

END PROGRAM chimica<br />

<strong>Il</strong> precedente programma definisce una struttura di nome elemento_chimico avente due componenti<br />

letterali atte ad ospitare il nome ed il simbolo chimico di un elemento, e due componenti<br />

numeriche atte ad ospitare il numero atomico e la massa atomica. Quindi, viene dichiarato l’array<br />

tavola_periodica di 109 elementi (tanti essendo gli elementi chimici presenti in natura) di<br />

tipo elemento_chimico e, infine, viene avviata una fase di immagazzinamento dei dati relativi<br />

agli elementi chimici e la loro successiva stampa a video.<br />

Si guardi, ora, questa definizione di tipo:<br />

TYPE triplet<br />

REAL :: u<br />

REAL, DIMENSION(3) :: du<br />

REAL, DIMENSION(3,3) :: d2u<br />

END TYPE triplet<br />

le cui le componenti possono essere pensate, ad esempio, come il valore di una funzione scalare<br />

tridimensionale (u), la sua derivata prima (du) e la sua derivata seconda (d2u), rispettivamente.<br />

Con la seguente dichiarazione:<br />

TYPE(triplet) :: t<br />

TYPE(triplet), DIMENSION(10,10,10) :: a<br />

t%u rappresenterà un valore reale; t%du un array di elementi t%du(1), t%du(2) e t%du(3);<br />

t%d2u, infine, sarà un array bidimensionale di elementit%d2u(i,j). Allo stesso modo, l’elemento<br />

a(1,2,5) rappresenta un oggetto di tipo triplet mentre l’espressione a(1,2,5)%d2u(1,2)<br />

si riferisce all’elemento (1,2) dell’array d2u, secondo campo dell’oggetto triplet a sua volta<br />

elemento (1,2,5) dell’array a.

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

Saved successfully!

Ooh no, something went wrong!