大约有 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。
这里可能是什么问题?