Stampare Valori Logici e Stringhe in Fortran

Stampare Valori Logici: il Descrittore L

Per stampare una variabile booleana in Fortran è necessario adoperare il descrittore L.

Il suo formato generale è:

rLw

dove:

  • r è il numero di ripetizioni, quindi quante volte il descrittore deve essere ripetuto;
  • w è la larghezza del campo, quindi il numero di caratteri che occupa il valore stampato.

Dal momento che una variabile booleana può assumere solo i valori .TRUE. e .FALSE., l'output sarà sempre T o F e sarà sempre allineato a destra.

Vediamo un esempio:

logical :: output = .TRUE.
logical :: debug = .FALSE.

write (*, "(2L5)") output, debug

L'output di questo esempio sarà:

    T    F

In particolare, notiamo che le due variabili sono state stampate in due campi da 5 caratteri ed i loro valori occupano rispettivamente 1 carattere, quindi sono stati allineati a destra. Inoltre, il numero di ripetizioni è 2, quindi sono stati stampati due valori booleani.

Stampare Stringhe: il Descrittore A

Per stampare una stringa in Fortran è necessario adoperare il descrittore A.

questo descrittore può avere due formati:

rA

oppure

rAw

dove:

  • r è il numero di ripetizioni, quindi quante volte il descrittore deve essere ripetuto;
  • w è la larghezza del campo, quindi il numero di caratteri che occupa il valore stampato.

Nel primo caso, il formato rA mostra la stringa in un campo di lunghezza pari a quello del numero di caratteri della stringa stessa.

Nel secondo caso, il formato rAw mostra la stringa in un campo di lunghezza w. Se la stringa è più corta di w, il valore stampato sarà allineato a destra e riempito con degli spazi a sinistra. Se la stringa è più lunga di w, il valore stampato sarà troncato a w caratteri.

Prendiamo un esempio:

CHARACTER(len=17) :: saluto = 'Ciao, come si va?'

write (*, 10) saluto
write (*, 20) saluto
write (*, 30) saluto

10 format (' ', A)
20 format (' ', A20)
30 format (' ', A6)

L'output di questo esempio sarà:

 Ciao, come si va?
    Ciao, come si va?
 Ciao,

Notiamo che la stringa nome è lunga 17 caratteri. In output abbiamo usato 3 descrittori di formato diversi:

  1. Nel primo caso abbiamo usato semplicemente A che indica che il campo deve essere lungo quanto la stringa, quindi 17 caratteri. Infatti, l'output è di 17 caratteri.
  2. Nel secondo caso abbiamo usato A20 che indica che il campo deve essere lungo 20 caratteri. Infatti, l'output è di 20 caratteri e la stringa è allineata a destra e sono stati aggiunti 3 spazi vuoti a sinistra.
  3. Nel terzo caso abbiamo usato A6 che indica che il campo deve essere lungo 6 caratteri. Infatti, l'output è di 6 caratteri e la stringa è stata troncata a 6 caratteri.