나는 이것에 대해 매우 혼란스러워합니다. 크기가 16000 * 4 * 2 인 3D 배열을 덤프합니다. 모든 요소는 DOUBLE PRECISION이며 16000 * 4 * 2 * 8 바이트/dp = 1,024,000 바이트 크기의 파일을 가져야한다고 생각했습니다. 하지만 2,048,000 바이트가 계속 유지됩니다.바이너리 파일의 크기를 추정하십시오.
와 나는 간단한 테스트 프로그램 테스트 :
PROGRAM testprog
IMPLICIT NONE
DOUBLE PRECISION :: x=0.0D0
INTEGER :: i
OPEN(UNIT=128,FILE='try.out',FORM='UNFORMATTED',ACCESS='SEQUENTIAL')
DO i=1,16000*4*2
WRITE(128) x
ENDDO
CLOSE(128)
ENDPROGRAM testprog
그리고이 명령을 실행 :
gfortran f.f90 -o a
./a
ls -als try.out
을하고 내가 얻을 것은
2000 -rw-r--r-- 1 jipuwang umstudents 2048000 Dec 17 20:16 try.out
나는 이해가되지 수있다 그것의. 하나의 배정 밀도는 2 바이트를 올바르게 사용합니까?
PROGRAM testprog
IMPLICIT NONE
DOUBLE PRECISION :: x=0.0D0
INTEGER :: i
OPEN(UNIT=128,FILE='try.out')
DO i=1,2
WRITE(128,*) x
ENDDO
CLOSE(128)
ENDPROGRAM testprog
그것은 나에게 크기를 54 바이트의 파일을 제공합니다 : 사람이 또한 나를이 이해하는 데 도움 수 있다면
나는, 다른 뭔가를했다.
포트란 태그가 추가 된 이유는 포트란 저장소가 포맷되지 않은 파일로 기록하는 방법 때문일 수도 있습니다. –
또한 CPU 아키텍처는 무엇입니까? –