我有很长的fortran代码必须从python变得可用。我决定做Fortran-> C-> Python界面。c-fortran互操作性派生类型与指针
我有一个问题:我已包含
double precision, allocatable
类型作为成员的Fortran模块内派生类型。
当试图用ifort我得到编译(类似gfortran东西):
Each component of a derived type with the BIND attribute shall be a nonpointer,
nonallocatable data component with interoperable type and type parameters
这实际上是与英特尔编译器文档和Fortran 2003标准协议:15.2.5点。
有没有什么办法可以通过allocatable或指针访问Fortran“type”?
对于其类型为我的派生类型的每个对象实例,我知道包含的数组的实际大小。每种情况下它们可能都不相同。我可以处理解除引用。也许我不会解决这个问题。对于我来说,指针只是内存中的一个地址,并且类似于 struct int * a int * b int * c }; 是3 * sizeof(int *)个字节的大字节,通常计算结果为24个字节(该值可能仅等于12个字节,但可以为每台计算机一劳永逸地确定)。 Fortran有什么不同? Fortran中的指针与C中的指针大不相同? – Lacek
Fortran中的指针和更多可分配组件更多,然后就是地址。例如,它们可以指向不连续的数组。 –