Bon, je continue mon topic-blog .
Je n'ai plus d'erreur, sauf que ... les valeurs récupérées sont fausses. Et même carrément bizarres pour le temps.
Voilà d'abord la nouvelle version du programme :
PROGRAM conversion
C***************************************************************************
C Conversion d'un fichier slice binaire écrit par FDS en fichier formaté.
C
C Variables : dp : valeur de la variante double précision
C n : indice de boucle (numéro du pas de temps)
C J,K : indices des mailles suivant y et z
C err : indicateur de la manière dont s'est déroulée la lecture
C I1,I2,J1,J2,K1,K2 : mailles délimitant le domaine de
C sauvegarde de U
C T(n) : temps de la simulation
C U(n,J,K) : vitesse de l'écoulement
C CDATA, SDATA, UDATA : nom de la variable sauvegardée
C (ici : vitesse) et unité
C TCFORM : format d'écriture
C***************************************************************************
IMPLICIT NONE
integer,parameter:: dp=selected_real_kind(12)
integer::n,J,K,err,I1,I2,J1,J2,K1,K2
real(dp), dimension(18793)::T
real(dp), dimension(18793,30,30)::U
character(30)::CDATA,SDATA,UDATA
character(50)::TCFORM
open(8,file="tunnel_02.sf",form='unformatted',status='old')
open(9,file="tunnel_02.csv",form='formatted',status='new')
C Lecture et écriture de l'entête
read(8,iostat=err) CDATA
read(8,iostat=err) SDATA
read(8,iostat=err) UDATA
read(8,iostat=err) I1,I2,J1,J2,K1,K2
write(9,*) "Temps, ",CDATA
write(9,*) "s, ",UDATA
write(9,'(6i3)') I1,I2,J1,J2,K1,K2
C Définition du format d'écriture
write(TCFORM,'(A,I4.4,A)') "(",30,"(ES13.5,','),ES13.5)"
C Boucle de lecture/écriture
n=1
DO
read(8,iostat=err) T(n)
IF(err<0) EXIT ! sortie de la boucle à la fin du fichier
read(8,iostat=err) ((U(n,J,K),J=1,30),K=1,30)
IF(err<0) EXIT
write(9,TCFORM) T(n),(U(n,15,K),K=1,30) ! sélection d'une verticale
n=n+1 ! pour la vitesse
ENDDO
C Fermeture des fichiers
close(8)
close(9)
END PROGRAM conversion
Et un extrait du fichier de résultats :
Temps, U-VELOCITY
s, m/s
60 60 0 30 0 30
5.08545-315, 1.27964E-07, 1.17307E-07, ..., 0.00000E+00, 0.00000E+00
5.26400-315, 8.02294E-08, 1.22609E-07, ..., 0.00000E+00, 0.00000E+00
...
A noter, les valeurs nulles qui n'ont pas de raison d'être, l'écriture du temps en xxxx-315 (c'est quoi ce truc ?). Les autres valeurs de vitesse sont fausses aussi.
Si quelqu'un a une idée, je prends.
Message édité par Marnie le 09-03-2004 à 11:24:34
---------------
Prison d'été, prison d'hiver, prison d'automne et de printemps, bagne pour petits et grands - Prévert, Le Roi et l'Oiseau