Fortran数据偏差

定位思路

程序正常运行,但输出结果与预期存在偏差。定位思路如图1所示。

图1 Fortran数据偏差问题定位思路
  1. 根据输出结果确认是数据偏差问题。
  2. 梳理数据偏差点的计算流程。
  3. 分析可能存在的怀疑点,增加打印,分析打印结果。
  4. 确认问题原因,修改代码,测试验证。
  5. 若问题未解决,排查其他怀疑点。

案例:未做初始化数组引起数据偏差

问题现象:

某软件运行结果部分数据存在偏差。

定位过程:

  1. 确认现象,是rad_clr7.3表格计算结果出现偏差。
  2. 确认出错数据范围在[855,856;1190,1191]之间,在相关怀疑点打印关键变量,如下图所示。

  3. 关键变量值与输出结果对齐,如下图所示。

  4. 排查相关计算过程,分析tau数组值存在异常,为大量异常数据,怀疑是脏数据,如下图所示。

  5. 排查tau数组调用位置,发现数组并未做初始化,添加tau数组初始化操作,如下图所示。

  6. 修改代码,验证,数据偏差问题解决。