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 :

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
Or vu la taille du tableau bin cela donne:
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
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
 
		do j=1,ny
			read(11) (bin(i,j),i=1,nx)
		enddo
je tombe sur ce type de message:
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)
Existe t'il une autre solution correcte pour lire ce fichier ?