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.

266 Unità di Programma<br />

Differenza rispetto all’UTC:<br />

Ore: 01 Minuti: 10<br />

SYSTEM_CLOCK([COUNT],[COUNT_RATE],[COUNT_MAX])<br />

Subroutine che restituisce il tempo del sistema. Gli argomenti, aventi tutti attributoINTENT(OUT,<br />

sono tutti opzionali sebbene almeno uno di essi debba essere necessariamente specificato.<br />

• COUNT è uno scalare di tipo INTEGER che restituisce un valore calcolato in base al valore<br />

corrente del clock di sistema. Questo valore viene incrementato di un’unità ad ogni ciclo<br />

del clock fino al raggiungimento del valore COUNT_MAX, dopodiché viene resettato a zero<br />

ed il conteggio riprende daccapo. Nel caso in cui non esistesse un orologio di sistema, il<br />

valore restituito da COUNT sarebbe -HUGE(0).<br />

• COUNT_RATE è uno scalare di tipo INTEGER che fornisce il numero di cicli per secondo<br />

del clock del processore. Nel caso in cui non esistesse un orologio di sistema, il valore<br />

restituito da COUNT_RATE sarebbe 0.<br />

• COUNT_MAX è uno scalare di tipo INTEGER che fornisce il massimo valore raggiungibile<br />

da COUNT. Nel caso in cui non esistesse un orologio di sistema, il valore restituito da<br />

COUNT_MAX sarebbe 0.<br />

Un esempio di utilizzo della procedura intrinseca SYSTEM_CLOCK è fornito dal seguente<br />

frammento di codice:<br />

INTEGER :: ic, crate, cmax<br />

CALL SYSTEM_CLOCK(COUNT=ic,COUNT_RATE=crate,COUNT_MAX=cmax)<br />

PRINT*, "Ciclo corrente: ",ic<br />

PRINT*, "Cicli al secondo: ",crate<br />

PRINT*, "Ciclo massimo: ",cmax<br />

un cui possibile output potrebbe essere questo:<br />

Ciclo corrente: 46364<br />

Cicli al secondo: 1<br />

Ciclo massimo: 86399<br />

CPU_TIME(TIME)<br />

Si tratta di una subroutine intrinseca introdotta dal <strong>Fortran</strong> <strong>95</strong> che fornisce il tempo (in secondi)<br />

speso dal processore sul programma corrente, con una approssimazione dipendente dal processore.<br />

<strong>Il</strong> parametro formaleTIME è una variabile scalare di tipoREAL con attributoINTENT(OUT).<br />

Se la procedura non è in grado di restituire un valore significativo, alla variabile TIME viene<br />

assegnato un valore negativo dipendente dalla specifica implementazione.<br />

<strong>Il</strong> seguente frammento di programma può aiutare a comprendere il funzionamento della<br />

procedura CPU_TIME:

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

Saved successfully!

Ooh no, something went wrong!