Использования Fortran 95.Неформатированного чтение/записи из производных типов, содержащих указатели
мне нужно сериализовать сложный производный тип (содержащий другие производные типов) с использованием неформатированной записи (в дальнейшем использовать неформатированное чтение, чтобы перезагрузить его).
Самый простой просто
write(lun) myComplexType
Однако это не работает, потому что тип содержит указатель. Я не беспокоюсь о сохранении указателя (я могу отдельно сериализовать то, на что он указывает, и снова установить указатель на последующую перезагрузку).
Поскольку структура производного типа может меняться, я хочу избежать необходимости писать каждый элемент отдельно либо в основном коде, либо в определенной процедуре вывода.
Есть ли простой способ сделать неформатированную запись, которая игнорирует указатель, и это не требует, чтобы я отдельно обращался к десяткам других вложенных элементов данных - что могло бы дать мне проблему обслуживания?
Если нет простого способа удержать указатель в отдельной параллельной структуре данных, но я не доволен этим, поскольку мне нужно будет убедиться, что они не разделяются или не синхронизируются при передаче в качестве параметров (рассматриваемая структура содержит состояние сложного моделирования, и я действительно хочу сохранить все состояние в одной структуре).
Основная цель - просто сериализовать состояние моделирования в файл с интервалами, чтобы я мог снова запустить симуляцию из сериализованного дампа состояния позже.
Можно даже (и в ответ IanH в), определенные пользователем I/O, так что 'записи (100) sim1' работает точно так же, как и ожидалось (с процедурами, просто делает 'write (unit, ...) obj% simbase_t'. – francescalus
Спасибо за ответы. Я думаю, что разделение элементов указателя и не указателя внутри обертки, вероятно, будет таким, каким мне придется идти. – nakb