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.5 Moduli 229<br />

IMPLICIT NONE<br />

vettore=pi*(/1.,-2.,3.,-4.,5./)<br />

DO i=1,m<br />

...<br />

END DO<br />

CALL sub<br />

END PROGRAM test_mio_modulo<br />

SUBROUTINE sub<br />

USE mio_modulo<br />

IMPLICIT NONE<br />

WRITE(*,*) vettore<br />

END SUBROUTINE sub<br />

Un’applicazione particolarmente comune per un modulo è quella di realizzare un archivio<br />

di costanti con nome di interesse ed i cui valori possano essere attinti da svariate procedure.<br />

Un esempio di questo tipo di utilizzo è rappresentato dal codice seguente:<br />

MODULE trig_consts<br />

! Scopo: definire alcune costanti di interesse in trigonometria<br />

! LEGENDA:<br />

! pi: pi greco<br />

! r2d: fattore di conversione radianti->gradi<br />

! rdg: fattore di conversione gradi->radianti<br />

IMPLICIT NONE<br />

SAVE<br />

REAL(KIND(1.D0)), PARAMETER :: pi = 3.141592653589, &<br />

r2d = 180.0d0/pi, &<br />

d2r = pi/180.0d0<br />

END MODULE trig_consts<br />

PROGRAM calculate<br />

USE trig_consts<br />

IMPLICIT NONE<br />

WRITE(*,*) SIN(30.0*d2r)<br />

END PROGRAM calculate<br />

In particolare è possibile scrivere un modulo che contenga le definizioni dei numeri di kind degli<br />

oggetti che verranno utilizzati nel corso di un programma e delle procedure da esso invocate:<br />

MODULE def_kind<br />

INTEGER, PARAMETER :: &<br />

short = SELECTED_INT_KIND(4), & ! interi ad almeno 4 cifre<br />

long = SELECTED_INT_KIND(9), & ! interi ad almeno 9 cifre<br />

dble = SELECTED_REAL_KIND(15,200) ! reali a 15 cifre fino a 10**200

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

Saved successfully!

Ooh no, something went wrong!