-1

我正在更新旧代码,我需要在子例程中使用一个简单的数学函数。我无法弄清楚如何做到这一点。我有一个从测试程序调用时可以工作的函数。我需要为子例程做些什么不同的事情?

例子:

subroutine foo(i,j,k)

i = bar(j,k)

stuff = otherstuff

return 
end

其他信息: bar 是 erf 近似值。我正在使用 PGF90 编译器。我是来自 C 的 FORTRAN 新手。

谢谢!

4

1 回答 1

3

基本上,从程序或子程序调用应该没有区别。代码真的看起来像这样,没有任何声明吗?这意味着所有变量都将具有隐式类型:名称以 in 字母开头的变量将是整数,所有其他变量都是实数;这也适用于函数返回值。您显示的代码尝试将实数 ( bar()) 分配给整数 ( i)。

如果您正在编写新代码,请始终IMPLICIT NONE. 这迫使您显式地包含所有变量和函数返回值的类型声明,从而大大减少错误。

于 2011-07-13T11:07:30.060 回答