#1 Le 04/07/2012, à 13:36
- jbbaudouin
fortran lire une colonne spécifique d'un fichier
Bonjour à tous,
Je cherche à écrire un programme en fortran 90.
Le but de ce programme est pour l'instant de lire une colonne spécifique dans un fichier.
le fichier ce présente de la manière suivante :
# STEP TIME(ps) EPOT EION EELEC EKIN ETOT MSQ(ETOT)
100 1.000000E-01 -4.111966E+00 -1.994293E+00 -2.117673E+00 3.707901E-02 -4.074887E+00 2.158062E-03
200 2.000000E-01 -4.105900E+00 -1.988289E+00 -2.117611E+00 3.819495E-02 -4.067705E+00 5.349007E-04
...
et je voudrais lire une colonne (par exemple la troisième en partant de la gauche), pour ensuite écrire cette même colonne dans un autre fichier.
J'espère avoir donné assez d'informations,
Je vous remercie par avance de vos réponses,
jbbaudouin
Hors ligne
#2 Le 04/07/2012, à 14:35
- pingouinux
Re : fortran lire une colonne spécifique d'un fichier
Bonjour,
Voici un exemple à adapter Exemple F90
D'après mes vieux souvenirs de F90, on peut aussi mettre les 2 premières colonnes dans des variables "bidon" :
read *, bidon1, bidon2, valeur_colonne_3
Une autre solution, si le colonnage est fixe, est d'utiliser le read formaté :
read 'T26,E13.7', valeur_colonne_3
Hors ligne
#3 Le 04/07/2012, à 14:46
- jbbaudouin
Re : fortran lire une colonne spécifique d'un fichier
désolé mais je débute en fortran.
le colonnage est effectivement fixe (sauf pour la première ligne).
Peux-tu si possible détailler un peu le prg lorsque on utilise le read formaté.
Je te remercie par avance,
jbbaudouin
Hors ligne
#4 Le 04/07/2012, à 15:03
- pingouinux
Re : fortran lire une colonne spécifique d'un fichier
Dans mon exemple en #2, je lis la valeur qui commence en colonne 26, ce qui correspond à ton fichier en #1.
N'hésite pas à consulter la documentation. Quand tu auras un bout de programme, si ça ne marche pas, montre-le ici.
Hors ligne
#5 Le 04/07/2012, à 15:09
- jbbaudouin
Re : fortran lire une colonne spécifique d'un fichier
voici mon bout de prg:
program lire
open(20,file='fichier_lire.e')
read ('T26,E13.7', valeur_colonne_3)
end program lire
lorsque je l'execute celui me sort le message suivant :
test_2.f90:5.18:
read ('T26,E13.7', valeur_colonne_3)
1
Error: FORMAT tag at (1) must be of type CHARACTER or INTEGER
je suppose que je dois déclarer valeur_colonne_3 comme une valeur 'double'?
en tout cas merci pour tes réponses
jbbaudouin
Hors ligne
#6 Le 04/07/2012, à 15:27
- pingouinux
Re : fortran lire une colonne spécifique d'un fichier
Mes souvenirs sont assez lointains.
Je ferais ceci :
read (20,'T26,E13.7') valeur_colonne_3
je suppose que je dois déclarer valeur_colonne_3 comme une valeur 'double'?
Oui
Il faut aussi lire à part la première ligne, qui contient les titres, et faire une boucle sur les suivantes.
Hors ligne
#7 Le 04/07/2012, à 15:55
- jbbaudouin
Re : fortran lire une colonne spécifique d'un fichier
je te remercie pour tes réponses, je vais voir ce que cela donne
jbbaudouin
Hors ligne