Bonjour à tous et toutes,
voici mon problème : Je souhaite lire une partie d'un Fichier.dat contenant texte et données de la forme. Voici un extrait:
Mon objectif : construire un tableau après lecture des données contenues dans le header # concentration salt ci-dessus. J'ai choisi correctement les indices de début et de fin de lecture. Je pense que mon problème survient au niveau du format. En effet, mon .exe plante à ce niveau là.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 TITLE = "... " TITLE = "... " TITLE = "... " VARIABLES = "X", "Y", "Z", "Zone","Head","Vx","Vy","Vz","Qx","Qy","Qz","salt" ZONE T=" 1.0000000000E+00", DATAPACKING=BLOCK, N= 16284, E= 7920, ZONETYPE=FEBRICK, VARLOCATION=([ 4, 6, 7, 8, 9, 10, 11]=CELLCENTERED) # x 0.0000000000000000 25.000000000000000 50.000000000000000 75.000000000000000 100.00000000000000 125.00000000000000 150.00000000000000 175.00000000000000 200.00000000000000 225.00000000000000 250.00000000000000 275.00000000000000 300.00000000000000 325.00000000000000 350.00000000000000 ... ... # concentration salt 0.0000000000000000 0.64720330011049226E-025 0.17833386042487199E-024 0.37802284411445552E-024 0.72932897799838601E-024 0.13478306362085956E-023 0.24373618438863777E-023 0.43573154689106475E-023 0.77410535444477779E-023 0.13704135817649153E-022 0.24210465387402711E-022 0.42716322963177314E-022 0.75304094444452978E-022 0.13267992530729645E-021 0.23369553087384882E-021 0.41155676324062088E-021 0.72476631090388178E-021 0.12764107173106682E-020 0.22481606524337324E-020 0.39602163975608679E-020
Voici un extrait de mon code
je pense donc que l'erreur provient du
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 rewind(unit=numfichCONC, iostat=err) ! mon fichier .dat ! CONSTRUCTION D'UN VECTEUR CONTENANT LES Ci POUR LES TL open(unit=numfichconc_TL1,file='conc_TL1.dat', access='sequential', form='formatted', action = 'write', iostat=err) ! nouveau fichier qui va contenir les valeurs de mon nouveau tableau k = 1 if (mod(nds,5) .EQ. 0) then do i = nb_l_TL1_conc + 1,nb_l_TL1_conc + 1 + (nds/5) - 1 ! read(unit=numfichCONC,fmt='(2x,(f24.0),2x,(f24.0),2x,(f24.0),2x,(f24.0),2x,(f24.0))',iostat=err) (conc_TL1(k,j),j=1,5) k = k +1 end do else do i = nb_l_TL1_conc + 1,nb_l_TL1_conc + (nds/5) read(unit=numfichCONC,fmt='(2x,(f24.0),2x,(f24.0),2x,(f24.0),2x,(f24.0),2x,(f24.0))',iostat=err) (conc_TL1(k,j),j=1,5) k = k +1 end do end if
J'ai choisi 24 pour le nombre de chiffre représenté et 17 pour le nombre de décimale comme indiqué pour les valeurs de # concentration salt
Code : Sélectionner tout - Visualiser dans une fenêtre à part read(unit=numfichCONC,fmt='(2x,(f24.17),2x,(f24.17),2x,(f24.17),2x,(f24.17),2x,(f24.17))',iostat=err) (conc_TL1(k,j),j=1,5)
Auriez-vous un idée du format adapté?
Je vous remercie d'avance
S.
Partager