我正在更新遗留代码,我需要在子程序中使用简单的数学函数。我无法弄清楚如何做到这一点。当从测试程序调用时,我有一个工作的函数。对于子程序,我需要做些什么?
示例:
subroutine foo(i,j,k)
i = bar(j,k)
stuff = otherstuff
return
end
其他信息: bar是一个erf近似值。 我正在使用PGF90编译器。 我是C.来自FORTRAN的新手。
谢谢!
答案 0 :(得分:3)
基本上,从程序或子程序调用不应该有所不同。代码是否真的像这样,没有任何声明?这意味着所有变量都将具有隐式类型:名称以字母i-n开头的变量将是整数,其他变量都是实数;这也适用于函数返回值。您显示的代码尝试将实数(bar()
)分配给整数(i
)。
如果您正在撰写新代码,始终会使用IMPLICIT NONE
启动程序和程序。这会强制您显式包含所有变量和函数返回值的类型声明,从而大大减少错误。