- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
将数组从 Fortran 传递到 C 函数时遇到问题:在 fortran 中,数组定义为
REAL(KIND=real_normal) , DIMENSION(:), ALLOCATABLE :: array
call cFunc(array)
如果将cFunc定义为
void cFunc(double *data){...}
数据只包含“垃圾”值。这个案例的问题出在哪里呢? (使用整数可以很好地解决这个问题)。
谢谢。编辑:我的平台:编译器:VS 2008,Intel编译器11版本操作系统:Win7编辑2:我这样定义 c 函数的接口(interface)(代码被简化为一个元素,这会产生问题,真正的函数有更多参数):
interface c_interface
subroutine cFunc(array) bind (C, name = "cFunc")
use iso_c_binding
REAL(c_double), DIMENSION(*)::array
end subroutine cFunc
fortran中的内存是用
分配的ALLOCATE (array(numberOfElements))
call cFunc(array)
目前我收到运行时错误“浮点溢出”。在某些情况下,数组的元素是正确的。
最佳答案
片段REAL(KIND=real_normal)
不是数据类型的完整和标准规范。在您拥有的源代码中,必须有变量real_normal
的声明。我猜测它的声明是 array
是 4 或 8 字节 float ,但这只是一个猜测。 array
并不是一个默认 float 数组(Fortran 称为 real
)。
正如其他回答者之一所建议的那样,研究 Fortran 2003 的与 C 功能的互操作性。如果您的编译器没有实现这些功能,请放弃它并获取可以实现这些功能的编译器。
关于c++ - Fortran 中 REAL(KIND=real_normal) 的 C 等效类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35699118/
将数组从 Fortran 传递到 C 函数时遇到问题:在 fortran 中,数组定义为 REAL(KIND=real_normal) , DIMENSION(:), ALLOCATABLE :: a
我在将数组从 Fortran 传递到 C 函数时遇到问题:在 fortran 中,数组定义为 REAL(KIND=real_normal) , DIMENSION(:), ALLOCATABLE ::
我是一名优秀的程序员,十分优秀!