dimanche 24 août 2008

Compilateur Intel Fortran: bit or byte ?

Depuis la version 10.0, et pour respecter les recommendation de la norme 2003 du Fortran, l'unite utilisee dans l'option recl d'une instruction open a change.
En effet, precedemment, l'unite utilisee etait le byte (qui correspoond a 8 bits). Ceci pretait a confusion, et donc la norme Fortran 2003 stipule qu'a present, l'unite utilisee doit etre le bit.

Ex:
open(UNIT=99, FILE='toto', ACCESS='DIRECT', FORM='UNFORMATTED', RECL=4, IOSTAT=ios)
Dans cette instruction, l'option RECL, stipulait que les mots du fichier ouvert mesuraient 4 bytes, soit 32 bits.
En revanche, la nouvelle norme stipule que cette ecriture signifie dorenavant que chaque mot mesure 4 bits.

Vous allez donc vous demander si il faut reecrire tous vos programmes. La reponse est evidemment non ! En effet, cette nouvelle regle a vu la naissance d'une nouvelle option de compilation: --assume byterecl

Donc pour vous permettre de compiler et executer a nouveau vos programmes avec le compilateur fortran, pensez a utiliser cette option de compilation.
$ ifort --assume byterecl toto.f90 -o toto

Aucun commentaire: