【发布时间】:2017-01-23 18:16:24
【问题描述】:
使用 Fortran 95。
我需要使用未格式化的写入序列化复杂的派生类型(包含其他派生类型)(随后使用未格式化的读取重新加载它)。
最简单的就是
write(lun) myComplexType
但是这不起作用,因为该类型包含一个指针。我不担心保留指针(我可以单独序列化它指向的内容并在以后重新加载时重新建立指针)。
因为派生类型的结构容易改变,我想避免在主代码或定义的输出过程中分别编写每个元素。
是否有一种简单的方法来进行无格式写入,忽略指针并且不需要我单独处理数十个其他嵌套数据元素 - 这会给我带来维护问题?
如果没有简单的方法,我可能不得不将指针保存在单独的并行数据结构中,但我对此并不满意,因为我需要确保它们不会在以下情况下分离或不同步作为参数传递(有问题的结构保持复杂模拟的状态,我真的想将整个状态保持在一个结构中)。
基本目的只是将模拟状态序列化到文件中,以便稍后我可以从状态的序列化转储中重新启动模拟。
【问题讨论】:
标签: pointers serialization fortran