首先,我想说我对Fortran 77的经验很少.
我发现此代码存在精度问题.它使用子例程implicit double precision (a-h,o-z)内所有变量的定义igrf12syn.
但是,在尝试调试此代码时,我注意到大多数值在某些时候会丢失精度,并且在静态定义结束时使用终结符D0可以解决此问题.
但是,如何定义维度变量gh上的值是否显式加倍?我试图在数据声明中的静态值的末尾添加D0,但是我遇到了编译器错误.
编辑:
将"d0"添加到值的末尾后编译器错误.
请注意,将"d0"添加到数组外部的代码中的其他值时不会发生此错误.
igrf.f:527.10:
data g0/ -31543.d0,-2298., 5922., -677., 2905.,-1061., 924., 1121
1
Error: DATA statement at (1) has more variables than values
Run Code Online (Sandbox Code Playgroud)
TL/DR; Fortran代码存在精度问题,我需要将D0添加到代码中静态定义值的末尾.但是,当将D0添加到数组内的值时,我遇到了编译器错误.