Fortran Coder

标题: IVF 虚参和实参不一致,如何设置取消接口检查? [打印本页]

作者: cjl0356    时间: 2015-1-30 17:27
标题: IVF 虚参和实参不一致,如何设置取消接口检查?
最近学习求解常微分方程的程序,从网上下了一个,但是程序里有一些用法是 实参和虚参不一致,
这种用法在Powerstation4.0中可以正常运行,但是到了IVF中提示错误。

因为程序是老程序,模式比较固定,我目前是初学,修改起来比较费劲,所以我想求教一下:
有没有不修改程序,通过设置编译器的一些选项来是其在IVF里运行通过的。

谢谢了

补充一下程序段:
      CALL SSTODE (NEQ, Y, RWORK(LYH), NYH, RWORK(LYH), RWORK(LEWT),
     1   RWORK(LSAVF), RWORK(LACOR), RWORK(LWM), RWORK(LWM),
     2   F, JAC, SPRJS, SSOLSS)

错误提示:
错误        1         error #6633: The type of the actual argument differs from the type of the dummy argument.   [RWORK]        F:\fortran\LSODE example\OPKSMAIN.for        3443        



作者: vvt    时间: 2015-1-30 18:41
工程属性,Fortran,Diagnostics,选择 Check Routine Interfaces 为 NO
作者: cjl0356    时间: 2015-1-30 19:16
vvt 发表于 2015-1-30 18:41
工程属性,Fortran,Diagnostics,选择 Check Routine Interfaces 为 NO

解决了,非常感谢!
作者: dengm155    时间: 2016-4-8 07:36
vvt 发表于 2015-1-30 18:41
工程属性,Fortran,Diagnostics,选择 Check Routine Interfaces 为 NO

请问造成这个问题的原因是什么,老程序为什么会产生这样的结果
作者: fcode    时间: 2016-4-8 08:55
因为老代码书写不严谨。老编译器没有做必要的接口检查。没有检测实参虚参是否一致。

而新编译器引入了这样的检查,以确保程序的稳健。
作者: 深流水静水流深    时间: 2016-4-9 08:53
我也碰到过该问题,设置“不检查接口”的编译选项,是通过比较两个项目的项目属性设置,发现的
呵呵呵




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2