dram.me

Fortran和C整合

补遗

  1. 由C分配的内存需要使用C的free接口清理,在Fortran中定义free的接口时,注意给入参添加VALUE属性,这样可以单层指针传入。—— 2018-04-06

Fortran标准中已经较好地支持了和C的整合。这里简单说明从C向Fortran传送数组型数据时的处理机制。

可以通过文本方式,Fortran端以字符串数组指针结合C_F_POINTER接收数据,之后通过READ读取。

但这样的方式因为需要类型转换,可能存在性能问题,如果对性能有较高要求,可以直接通过结构体传递,这样代码也相对更为整洁。