在另一个子例程中调用子例程

时间:2017-02-27 01:29:52

标签: fortran fortran90 gfortran fortran95

我遇到一些调用子程序的问题。首先,我是否可以在IF声明中调用子程序?

Decimal

第二个问题。 Sub1在其中调用sub2。然后sub2有一个来自主程序的输入,比方说x。

IF (...) THEN
  ...
ELSE
  CALL sub1(...)
END IF

注意:变量之间的加法不是发生的确切数学运算

基本上每个变量都相互依赖,但x = y是初始条件,我认为这是唯一可行的方法。似乎sub2不会在初始x = y上拾取,然后在从sub1调用时将其值赋给sub1。所以也许我不明白变量是如何被传递的。我得到的错误不是编译而是运行时错误导致我在sub1中调用sub2的行。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

请在所有程序和模块的开头使用implicit none(只有USE语句在它之前),然后明确声明所有变量。

虽然按照你的方式调用子程序是完全正确的,但你必须考虑变量的范围。

在您的示例中,sub1无法访问主程序xy,因为它们是主程序的本地程序。