【发布时间】:2010-08-24 18:47:40
【问题描述】:
我正在使用 mex 从 matlab 链接一些 fortran 代码 (f90),我偶尔会遇到 matlab 冻结。
过去,由于数据类型(比如整数*4 与整数*8)不匹配,我会发生冻结。
我正在链接的代码有很多隐式定义的变量,所以我想知道是否存在仅偶尔发生的隐藏数据类型冲突。
为了排除数据类型不匹配是导致冻结的原因,我希望编译器要求所有变量都被显式声明。
问题:
如何让 gfortran 要求在编译时显式声明所有变量?如果做不到这一点,有没有办法至少得到警告?
gfortran 是否将“真实”数据类型解释为所有体系结构中的特定类型?如果有,是哪一个(real*4, real*8, ...)?
是否强制 gfortran 将“真实”数据类型解释为特定类型,例如“真实*4”?
关于从 matlab 中的 mex 编译例程调用时导致 fortran 代码冻结的原因有什么想法(数据类型不匹配除外)?
感谢您的帮助。
在我弄清楚这一点之前,我将通过许多行代码尝试列出所有隐式定义的变量。 不用说,我将非常感谢任何让我从如此无聊的任务中解脱出来的人......
最好的,
G.
【问题讨论】:
标签: types fortran mex gfortran fortran90