在FORTRAN77中使用子程序内的函数

时间:2011-07-12 19:36:13

标签: fortran fortran77

我正在更新遗留代码,我需要在子程序中使用简单的数学函数。我无法弄清楚如何做到这一点。当从测试程序调用时,我有一个工作的函数。对于子程序,我需要做些什么?

示例:

subroutine foo(i,j,k)

i = bar(j,k)

stuff = otherstuff

return 
end

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

谢谢!

1 个答案:

答案 0 :(得分:3)

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

如果您正在撰写新代码,始终会使用IMPLICIT NONE启动程序和程序。这会强制您显式包含所有变量和函数返回值的类型声明,从而大大减少错误。