检查FORTRAN中生成的巨大的未格式化文件

时间:2015-04-14 21:54:02

标签: fortran

我的fortran程序的输出是一个巨大的(300GB)无格式文件。 (事实上​​,这个文件包含许多粒子的xyz坐标的时间演变。所以,数据类型是真实的* 8,如果它很重要的话)

问题在于我不确定所有这些数据是否都是正确编写的,因为计算服务器中存在短暂问题。现在,我留下了这个巨大的文件,并寻找一种方法来检查它的所有内容是否健康!

有没有办法检查天气,所有的xyz都写得正确,而且没有损坏(比如NaN)?

1 个答案:

答案 0 :(得分:0)

除了dwwork检查NaN的方法外,您还可以检查无穷大。之后,读取文件并循环遍历每个值都是一件简单的事情。由于您编写了文件,我认为您可以阅读它。

  program testinfnan

  implicit none

  real*8 :: x, y, z

  logical :: xnan, ynan, znan, xinf, yinf, zinf

  z = 1.
  x = z / 0.
  y = x / x 

  print *, ''
  print *, 'x = ', x
  print *, 'y = ', y
  print *, 'z = ', z

  xnan = x /= x
  ynan = y /= y
  znan = z /= z

  print *, ''
  print *, 'xnan = ', xnan
  print *, 'ynan = ', ynan
  print *, 'znan = ', znan

  xinf = x == 1./0
  yinf = y == 1./0
  zinf = z == 1./0

  print *, ''
  print *, 'xinf = ', xinf
  print *, 'yinf = ', yinf
  print *, 'zinf = ', zinf

  end program testinfnan

输出:

x =                 Infinity
y =                      NaN 
z =    1.00000000000000    

xnan =  F
ynan =  T
znan =  F

xinf =  T
yinf =  F
zinf =  F