Questo sito contribuisce alla audience di

La trappola della stringa di troncamento nel Fortran

Lo scopo di questo programma è quello di mostrare le trappole di programmazione Fortran più comuni

fortran 90,programmi fortran,codice sorgente fortran,compilatore fortran

Nelle istruzioni di assegnazione e di lettura, le stringhe possono essere troncate se la lunghezza della variabile in ricezione non è abbastanza lunga. Che cosa succede se la lunghezza assegnata ad una variabile è più corta della lunghezza della stringa che ci si aspetta che l’identificatore possa avere? Il programma che segue ne dimostra l’effetto.

PROGRAM Fortran_stringa

CHARACTER(LEN=5), PARAMETER :: M = ‘Smith’, N = ‘TEXAS’
CHARACTER(LEN=4), PARAMETER :: X = ‘Smith’
CHARACTER(LEN=6), PARAMETER :: Y = ‘TEXAS’

! La trappola della stringa di troncamento

WRITE(*,*) “La trappola della stringa di troncamento:”
WRITE(*,*) ‘IS ‘, M, ‘ STILL IN ‘, N, ‘?’
WRITE(*,*) ‘IS ‘, X, ‘ STILL IN ‘, Y, ‘?’

END PROGRAM Fortran_stringa

-Output del programmma

La trappola della stringa di troncamento:
IS Smith STILL IN TEXAS?
IS Smit STILL IN TEXAS ?

Discussione
Tutti i nomi in questo programma sono alias di costanti.
Nella sezione dichiarativa del programma gli alias M ed N non dovrebbero avere alcun problema in quanto la lunghezza dei nomi e la lunghezza delle strighe risultano d’accordo. Poiché la lunghezza di X è di 4 ed è più corta della lunghezza della stringa ‘Smith’, X riceve solo i caratteri più a sinistra di 4 caratteri. Ora diamo un’occhiata a Y. Poiché la lunghezza di Y è superiore alla lunghezza della stringa ‘Texas’, degli spazi saranno aggiunti alla fine per riempirla fino a 6 caratteri. Così, Y diventa in realtà ‘Texas’. L’output dovrebbe apparire simile al seguente:
IS Smith STILL IN TEXAS?
IS Smit STILL IN TEXAS ?

Sulla seconda riga, è facilmente visibile che l’originale Smith diventa Smit e l’originale TEXAS diventa TEXAS_, dove _ indica uno spazio.

Link correlati all’argomento

- I compilatori Fortran

- Programmare con Fortran

- Elementi di calcolo numerico con il Fortran

- Esercizi sul Fortran 90