Fortran 中带通配符的未格式化输出
unformatted output with wild card in Fortran
找了很久才问:我需要输出很多Fortran格式的未格式化文件到Ensight。我想用 geo.000000、geo.000001 ... geo.0001000 来命名它们。以下是我处理通配符的方式:
character(54) :: filename, temp
character(80) :: buffer
write(temp,'(i6.6)') step
filename = '/Users/jiecheng/Documents/SolidResults/solid.geo'//trim(temp)
open(10,file=filename,form='UNFORMATTED')
open(10,file=filename,form='UNFORMATTED')
buffer = 'Fortran Binary'
write(10) buffer
buffer = 'Ensight Model Geometry File'
write(10) buffer
write(10,'(i10)') nn
write(10,'(i10)') node_id
do i=1,3
write(10,'(E12.5)') sngl(coords1(i,:))
end do
那我有
Fortran runtime error: Format present for UNFORMATTED data transfer
谁能告诉我如何解决这个问题?
对于连接到未格式化文件的单元I/O,像在
中那样指定格式是非法的
write(10,'(i10)') nn
将值写入未格式化的文件是在机器内存(二进制)表示中完成的(可能会发生一些转换),而不是作为人类可读的文本。因此,格式规范没有任何意义。
找了很久才问:我需要输出很多Fortran格式的未格式化文件到Ensight。我想用 geo.000000、geo.000001 ... geo.0001000 来命名它们。以下是我处理通配符的方式:
character(54) :: filename, temp
character(80) :: buffer
write(temp,'(i6.6)') step
filename = '/Users/jiecheng/Documents/SolidResults/solid.geo'//trim(temp)
open(10,file=filename,form='UNFORMATTED')
open(10,file=filename,form='UNFORMATTED')
buffer = 'Fortran Binary'
write(10) buffer
buffer = 'Ensight Model Geometry File'
write(10) buffer
write(10,'(i10)') nn
write(10,'(i10)') node_id
do i=1,3
write(10,'(E12.5)') sngl(coords1(i,:))
end do
那我有
Fortran runtime error: Format present for UNFORMATTED data transfer
谁能告诉我如何解决这个问题?
对于连接到未格式化文件的单元I/O,像在
中那样指定格式是非法的write(10,'(i10)') nn
将值写入未格式化的文件是在机器内存(二进制)表示中完成的(可能会发生一些转换),而不是作为人类可读的文本。因此,格式规范没有任何意义。