Monthly Archives: February 2015

Come formattare i numeri interi nel Fortran


FORTRANPer formattare i numeri interi nel Fortran si utilizza ildescrittore I che ci consente di controllare la rappresentazione dei numeri interi. La forma generale di tale descrittore è:

rIw oppure rIw.m

dove r,w e m assumono il seguente significato:

  • m = Numero minimo di cifre da stampare
  • r = Fattore di ripetizione: specifica il numero di volte che un descrittore deve essere utilizzato
  • w = Larghezza di campo: numero di caratteri da utilizzare

Per meglio comprendere il concetto appena esposto analizziamo allora il seguente esempio di istruzione di uscita formattata:

INTEGER :: a = 1, b = -2  
WRITE(*,"(2I5.2)") a, b

Il descrittore di formato utilizzato è 2I5.2 che del tutto uguale a (I5.2,I5.2,) grazie all’utilizzo del contatore di ripetizione 2. Così, ognuna delledue variabili intere sarà restituita secondo quanto stabilito dallo specificatore I5.2 ottenendo così il risultato seguente:

___01__-02

Analizziamo nel dettaglio quanto appena scritto: abbiamo deciso di rappresentare le due varibili intere mediante lo stesso descrittore che ci impone di utilizzare almeno due cifre e cinque spazi. Allora per la varibile a che contiene il numero 1 abbiamo utilizzato le cifre 01 in quanto il descrittore ci imponeva l’utilizzo di almeno due cifre (ecco il significato della presenza dello zero), mentre abbiamo inserito tre spazi bianchi a sinistra del numero ( tre caratteri underscore _), in quanto occorrevano cinque spazi per rappresentare il numero così come indicato dal ddescrittore.

Come formattare i numeri interi nel FortranNelle operazioni di input i due descrittori Iw.m e Iw si comportano allo stesso modo in quanto gli eventuali spazi bianchi posizionati in testa al numero, inseriti per garantire la lunghezza del campo, vengono completamente ignorati.

Nelle operazioni di output invece il dato intero viene rappresentato in un campo di w caratteri con almeno m cifre, di cui le prime uguali a zero se il numero da rappresentare è composto da meno di m cifre. In tal caso, come specificato nell’esempio appena mostrato, la lunghezza del campo wviene garantita dall’inserimento di spazi bianchi. Nel caso invece il campo non fosse sufficiente per contenere tutte le cifre del valore intero da produrre, il campo sarà riempito con un numero di asterischi pari a w.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO: