FORTRAN读取未格式化二进制文件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FORTRAN

·

2003 4

C/C++ FORTRAN FORTRAN …… FORTRAN “a” 4

open(60,file=filename,status=’unknow’,form=’unformatted’)

write(60) nx,ny,nz

do k=1,nz

do j=1,ny

write(60) (a(i,j,k),i=1,nx)

enddo

enddo

close(60)

(4*nx)*ny*nz+12 nz*ny*(4*nx+8)+20

FORTRAN “ ” 4 4 4 4

write(60) nx,ny,nz

nx,ny,nz 4 2

0 12 nx ny nz 0 12

20(2+2+4+4+4+2+2)

write(60) (a(i,j,k),i=1,nx)

nx 1024

0 4096 a(1,j,k) a(2,j,k) ……a(1024,j,k) 0 4096

4104(2+2+4+4+……+4+2+2) C/C++

open(60,file=filename,status=’unknow’,form=’unformatted’)

write(60) nx,ny,nz

do k=1,nz

do j=1,ny

do i=1,nx

write(60)a(i,j,k)

enddo

enddo

enddo

close(60)

a

4 12 nx*ny*nz*12+20

FORTRAN FORTRAN “ ”

#define SWAP_2(x) ( (((x) & 0xff) << 8) | ((unsigned short) (x) >> 8) )

#define SWAP_4(x) ( ((x) << 24 | (((x) << 8) & 0x00ff0000 | (((x) >> 8) & 0x0000ff00) | ((x) >> 24) )

#define FIX_SHORT(x) (*(unsigned short *)&(x) = SWAP_2(*(unsigned short * )&(x))) #define FIX_LONG(x) (*(unsigned *)&(x) = SWAP_4(*(unsigned *)&(x)))

#define FIX_FLOAT(x) FIX_LONG(x)

4

/

ASCII

2008 1 64 2 4 2 FORTRAN access=’stream’

相关文档
最新文档