1

大约有 10 个 COBOL 模块链接到 4 个 fortran 模块。我将 fortran 代码转换为 C 程序。并将 10 个 cobol 模块链接到替换的 4 个 C 模块。

在这 10 个 COBOL 模块中,现在应该有“ENTER C”语句替换 ENTER FORTRAN 语句。之后在编译时,我发现其中两个 COBOL 模块 - 编译时抛出错误。其他的不要。

我得到的错误是:“算术表达式太复杂:使用了浮点数!” - 它指向这些 COBOL 模块中的类似行。(我使用 COBOL85 编译)

指出错误的行看起来有点像这样: COMPUTE D = L OF E / (( L + (A/100)) ** ( Z OF J(S-1)/365)) 这里,L ,E,A,Z & J 可能来自 C 程序。

还指出了其他行,看起来有些相似。这些行中最常见的是**(指数运算符)。

注意:这 10 个 COBOL 模块在与那些 fortran 模块链接时编译得很好,所以我相信问题出在编写的等效 C 程序上。从 FORTRAN 转换时,我还在 C 模块中使用了以下更改。

INTEGER*8 到 C 中的 long int。DOUBLE PRECISION 到 C 中的 DOUBLE。INTEGER 到 C 中的 int。

这里可能是什么问题?

4

1 回答 1

1

回答我自己的问题有点太不正统了,但我刚刚找到了“警告”的原因,并且我已经清除了它们。因此,对于其他带着类似警告来到这里的人来说,这就是答案。

这条计算线对于 COBOL85 编译器来说太复杂了,无法处理。我把方程分成小块,然后把它们放在一起,它们就像一个魅力!

就这样吧!实际上没有数据类型问题,或者根本没有任何问题!感谢所有试图提供帮助的人,顺便说一句。非常感激!:)

于 2014-03-05T18:31:56.810 回答