В следующем примере внутренняя функция transfer()
хорошо работает для 'b'.Разница в хранении данных между типом и классом
Но это не работает для полиморфного объекта a
(т. Е. Не может вернуть массив символов правильного размера).
Может ли кто-нибудь объяснить причину этого?
И может ли кто-нибудь представить какую-либо идею в сериализации/упаковке данных произвольного типа (для использования MPI)?
Спасибо.
module mm
type::typeA
integer dat(10)
end type
end module
program test
use mm
class(typeA),allocatable::a
type(typeA)::b
allocate(a)
write(*,*),size(transfer(a,['c']))
write(*,*),size(transfer(b,['c']))
end program