Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在更新旧代码,我需要在子例程中使用一个简单的数学函数。我无法弄清楚如何做到这一点。我有一个从测试程序调用时可以工作的函数。我需要为子例程做些什么不同的事情?
例子:
subroutine foo(i,j,k) i = bar(j,k) stuff = otherstuff return end
其他信息: bar 是 erf 近似值。我正在使用 PGF90 编译器。我是来自 C 的 FORTRAN 新手。
谢谢!
基本上,从程序或子程序调用应该没有区别。代码真的看起来像这样,没有任何声明吗?这意味着所有变量都将具有隐式类型:名称以 in 字母开头的变量将是整数,所有其他变量都是实数;这也适用于函数返回值。您显示的代码尝试将实数 ( bar()) 分配给整数 ( i)。
bar()
i
如果您正在编写新代码,请始终以IMPLICIT NONE. 这迫使您显式地包含所有变量和函数返回值的类型声明,从而大大减少错误。
IMPLICIT NONE