Bonjour, je me permets de faire remonter une discussion laisser sans réponse, veuillez m'en excuser.
Petit topo, le fichier binaire est écrit de la façon suivante:
boucle k
boucle y
boucle x
Chaque valeur est stockée en simple précision (float).
La façon la plus évidente de lire ce fichier en fortran est de faire :
Or vu la taille du tableau bin cela donne:
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 IMPLICIT NONE integer :: i,j,k,ios integer, parameter :: nx = 9276 integer, parameter :: ny = 8350 integer, parameter :: nc = 24 real, dimension(nx,ny,nc) :: bin character*300 fin,fout open(11,file=fin,form='unformatted',access='sequential',iostat=ios) if ( ios /= 0 ) then print*, 'Probleme a l"ouverture' else print*, 'Ouverture Reussi' do k=1,nc do j=1,ny read(11) (bin(i,j,k),i=1,nx) enddo enddo endif
Si j'essaye de le lire ne serait qu'une partie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Traceback: not available, compile with -ftrace=frame or -ftrace=full Operating system error: Cannot allocate memory Memory allocation failed
je tombe sur ce type de message:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 do j=1,ny read(11) (bin(i,j),i=1,nx) enddo
Existe t'il une autre solution correcte pour lire ce fichier ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Traceback: not available, compile with -ftrace=frame or -ftrace=full Fortran runtime error: Reading more data than the record size (RECL)
Partager