【发布时间】:2019-07-09 23:23:30
【问题描述】:
我正在尝试为 vtk 文件格式数据编写如下所示的 ASCII 和二进制数据的混合。
我了解二进制或 ASCII 区别必须在文件打开语句中进行(在 FORM='BINARY' 中,最好是: ACCESS='STREAM' )。我不明白如何为我需要的格式编写文件。
我要输出的内容:
ascii keyword
ascii keyword
ascii keyword
ascii keyword
ascii keywords "variable value in ascii" ascii keywords
.....SOME BINARY DATA ....
.....................
我正在使用什么:
write(fl) "# vtk DataFile Version 3.0"//CHAR(13)//CHAR(10)
write(fl)"Flow Field"//CHAR(13)//CHAR(10)
write(fl)"BINARY"//CHAR(13)//CHAR(10)
write(fl)"DATASET UNSTRUCTURED_GRID"//CHAR(13)//CHAR(10)
write(fl)"POINTS",npoints,"float" -------------> gives value of npoints(example:8) in binary format
输出应该是什么:
# vtk DataFile Version 3.0
Flow Field
BINARY
DATASET UNSTRUCTURED_GRID
POINTS 8 Float
.....SOME BINARY DATA ....
.....................
输出是什么:
# vtk DataFile Version 3.0
Flow Field
BINARY
DATASET UNSTRUCTURED_GRID
POINTSÒ^O^@^@float
.....SOME BINARY DATA ....
...................
【问题讨论】:
-
Form="Binary" 不是 Fortran。您能否更详细地描述您要实现的目标(而不是您尝试解决它的方式),然后也许我们可以提出解决方案。
-
@Ian Form='BINARY' 也是fortran格式。它与 FORM='UNFORMATTED' 的效果大致相同,只是文件中没有嵌入记录长度。我将编辑关于我正在尝试做什么的问题。
-
Form="Binary" 是非标准的,因此并非所有编译器都支持。您可能想要 Access="stream"。请看software.intel.com/en-us/forums/…
-
感谢您的指出!我将使用 access='stream'。我已经更新了我正在尝试做的事情。
标签: fortran ascii binaryfiles vtk