小编haw*_*aii的帖子

具有显式双精度的Fortran数组

首先,我想说我对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添加到数组内的值时,我遇到了编译器错误.

arrays precision double fortran dimension

3
推荐指数
1
解决办法
179
查看次数

标签 统计

arrays ×1

dimension ×1

double ×1

fortran ×1

precision ×1