我有一个又大又旧的 FORTRAN 77 代码,它已经工作了很多很多年,没有任何问题。双精度已经不够了,所以要转换为四精度,我有:
REAL*8toREAL*16使用 gcc-4.6 编译器编译该程序,没有错误或警告
我的 LD_LIBRARY_PATH 变量设置为 64 位库文件夹:/gcc-4.6/lib64
该程序读取其中包含数字的输入文件。这些数字曾经采用 1.234D+02 的形式(对于代码的双精度版本,可以使用)。我已经更改了它们,所以现在数字是 1.234Q+02 ,但是我收到运行时错误:
列表输入的第 1 项中的实数错误
指示从输入文件读取数据的子例程(称为read.f)未找到输入文件中的第一个数字,以与其预期兼容。
奇怪的是,当输入文件包含像 1.234D+02 或 123.4 这样的数字时,代码的四精度版本不会抱怨(根据输出,这些数字似乎会自动转换为 1.234D+02 而不是 Q+02 的形式) ),它只是不喜欢 Q+02 ,所以看起来 gcc-4.6 不允许从输入文件中以科学记数法读入四精度数字!
有没有人能够使用 gcc 编译器从输入文件中读取 FORTRAN 中科学记数法的四精度数字(即,如 1234Q+02),如果是这样,你是如何让它工作的?(或者您是否需要不同的编译器/操作系统/硬件才能使其工作?)