我的fortran程序的输出是一个巨大的(300GB)无格式文件。 (事实上,这个文件包含许多粒子的xyz坐标的时间演变。所以,数据类型是真实的* 8,如果它很重要的话)
问题在于我不确定所有这些数据是否都是正确编写的,因为计算服务器中存在短暂问题。现在,我留下了这个巨大的文件,并寻找一种方法来检查它的所有内容是否健康!
有没有办法检查天气,所有的xyz都写得正确,而且没有损坏(比如NaN)?
答案 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