【问题标题】:Fortran runtime error: Bad value during integer readFortran 运行时错误:整数读取期间的值错误
【发布时间】:2016-06-30 17:28:10
【问题描述】:

我正在使用 CHARMM 运行一些分子动力学模拟,但一直遇到同样的错误

At line 631 of file /cygdrive/c/CHARMM/source/io/psfres.src (unit = 90, file ='tdskr2v5_min_CHARMM.psf')
Fortran runtime error: Bad value during integer read

所以我不知道 Fortran,只是一个警告。但我得到了错误;它期待一个整数并得到其他东西。第 631 行是:

 #if KEY_LONEPAIR==1
    ! Read lone pair stuff
    numlp=0
    numlph=0
    read(u,fmt05,end=45) numlpx,numlphx

我的问题是我不知道我的文件的“Lone pair”部分在哪里。所以我无法确定在我的输入文件中读取的坏整数在哪里。我很好奇是否有人对测试等有一些建议,以试图找出我的错误在哪里。我试过用整数替换任何字符但没有解决它,所以它一定是一个间距错误,我只是不知道如何弄清楚间距错误在哪里!

编辑:我也一直在追溯那些 numplx 和 numphx 变量的来源,这对我没有帮助。非常感谢您提供一些测试以尝试查找错误的建议!

【问题讨论】:

  • fmt05 的值是多少?数据看起来如何?听起来您施加的格式与实际内容不匹配。
  • 数据是一个包含整数列的文本文件,所以我猜我的列可能会被空格隔开。我只是不知道如何查明错误在哪里
  • 因此,如果文件只包含您正在阅读的数字,请不要使用该格式。
  • #if 我认为是一个预编译器指令。这意味着 if 将仅在编译时评估,而不是运行时评估。它要么是用-DKEY_LONEPAIR=1 编译的,要么是整个块,直到#else#endif 永远不会被执行。

标签: testing error-handling fortran


【解决方案1】:

您需要提供更多信息来解决确切的问题。

根据提供的信息,您正在从输入“u”读取,在您打开该输入的代码中的某处,如果是输入文件,则可能正在读取没有两个变量的行:numlpx,numlphx

还有一个地方定义了格式输入“fmt05”,就是如何读取这两个变量的说明,格式可以说跳过3行,读一行,再读下一行。

也可以说是浮点数、字符串等

您遇到的错误是您正在读取一个整数变量,并按照格式说明找到了其他无法解释为整数的内容。

希望这可以帮助您检查输入值和位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多