主题:为什么我子程序调子程序时出现虚实参数数据类型不符的问题
如下所示,我在子程序A里调子程序B,并传参数 A,B,C。
传参时,我直接原样拷了A,B,C。 A,B,C可能是整型,实数,数组。 但运行时老是报错说参数类型不对。还说实参和虚参个数要一致。
我是在正确程序上修改的,我只不过在参数列里添了几个,而且实参虚参都对应好了,应该不会出问题。实际上,我把程序重新建个project,再编译就不报错了。但用一会又会出问题。同一个编译器,怎么能出2个不同的结果呢。。。被这个郁闷几天了。我用的是IVF10,带界面的。
我把程序简化后贴在下面了,方便大家查看:
MAIN program
call subroutine_A(A,B,C)
END
SUBROUTINE subroutine_A (A,B,C)
CALL subroutine_B (A,B,C)
END
SUBROUTINE subroutine_B (A,B,C)
END
还有,程序老警告我说参数没定义,但我以经通过Implicit 说明过了。调函数时用到的参数也都是参数列表里的,如果是数组也通过dimension开辟空间了。为什么还有什么问题
===========================
子程序A:
...
CALL ITERATION_NEW (N,NPT,X,RHOEND,IPRINT,XOPT,XNEW,XPT)
...
END
子程序B:
SUBROUTINE ITERATION_NEW (N,NPT,X,RHOEND,IPRINT,XOPT,XNEW,XPT)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION X(*),XOPT(*),XNEW(*),XPT(NPT,*)
...
传参时,我直接原样拷了A,B,C。 A,B,C可能是整型,实数,数组。 但运行时老是报错说参数类型不对。还说实参和虚参个数要一致。
我是在正确程序上修改的,我只不过在参数列里添了几个,而且实参虚参都对应好了,应该不会出问题。实际上,我把程序重新建个project,再编译就不报错了。但用一会又会出问题。同一个编译器,怎么能出2个不同的结果呢。。。被这个郁闷几天了。我用的是IVF10,带界面的。
我把程序简化后贴在下面了,方便大家查看:
MAIN program
call subroutine_A(A,B,C)
END
SUBROUTINE subroutine_A (A,B,C)
CALL subroutine_B (A,B,C)
END
SUBROUTINE subroutine_B (A,B,C)
END
还有,程序老警告我说参数没定义,但我以经通过Implicit 说明过了。调函数时用到的参数也都是参数列表里的,如果是数组也通过dimension开辟空间了。为什么还有什么问题
===========================
子程序A:
...
CALL ITERATION_NEW (N,NPT,X,RHOEND,IPRINT,XOPT,XNEW,XPT)
...
END
子程序B:
SUBROUTINE ITERATION_NEW (N,NPT,X,RHOEND,IPRINT,XOPT,XNEW,XPT)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION X(*),XOPT(*),XNEW(*),XPT(NPT,*)
...