登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 小鑫 于 2017-1-5 20:22 编辑
向各位大神求助:
本人使用Microsoft Visual Studio 2010编译器编写fortran程序,现在需要将FLUENT软件的二进制结果文件导入到程序中去。发现flunt的dat文件中是说明性的字符串数据和压力、速度等实数组型的数据一个挨一个顺序保存的的。但在VS编译器下,fortran程序采用unformat顺序读取二进制文件的时候,在对应的数据前后都多出至少4个字节的数据,导致无法顺利读入fluent软件生成的二进制结果文件。
我采用简单的程序进行测试:
!******************************************************************************
PROGRAM test
! GTEA Solver
!******************************************************************************
IMPLICIT none
CHARACTER(len=3) :: main_version, sub_version
CHARACTER(len=7) :: version
OPEN(11,form='unformatted',status='unknown',file='1.dat')
main_version='dbx'
sub_version='jll'
version='gtea202'
WRITE(11) main_version,sub_version,version
CLOSE(11)
OPEN(11,form='unformatted',status='unknown',file=''1.dat')
READ(11) main_version,sub_version,version
CLOSE(11)
END PROGRAM test
发现采用fortran编程写和读二进制文件,此时可以顺利读取
但结果文件中在'dbxjllgtea202'字符串的前后都多出了4个字符的数据0D 00 00 00 与我字符串所占长度13相同。也发现这正是我无法正确读取fluent结果文件的原因
fluent的结果文件,其数据是一个接一个连续存储,数据之间没有什么多余文件
fluent结果文件中的字符串型说明性数据和其他数据(实数组)是依次顺序排列的,两者之间没有什么其他字符
如何才能使用fortran程序直接读取这些文件而不需要什么0D 00 00 00 的字符?
求大神指点!
|