【问题标题】:What do exclamation marks instead of number output in fortran mean?感叹号而不是fortran中的数字输出是什么意思?
【发布时间】:2015-11-05 06:32:11
【问题描述】:

我有旧版 fortran 代码,我在其中将一些数字打印到文件中,但没有格式声明。现在一些输出看起来像这样:

 ah !!!!!!!!!!!!!!!!!!!!!!!!!! afn !!!!!!!!!!!!!!!!!!!!!!!!!!
 ah !!!!!!!!!!!!!!!!!!!!!!!!!! afn +*************************
 ah !!!!!!!!!!!!!!!!!!!!!!!!!! afn +*************************
 ah !!!!!!!!!!!!!!!!!!!!!!!!!! afn !!!!!!!!!!!!!!!!!!!!!!!!!!
 ah !!!!!!!!!!!!!!!!!!!!!!!!!! afn   6.31304569736211807     

对应的代码是:

write(6,*) 'ah', ah(nzaehl),'afn',afn(nzaehl) 

ahafn 只是应该包含实数的数组。此输出用于调试目的,以了解这些数组的真实外观。事实上,只要我不知道感叹号是什么意思,我真的不知道哪里出错了。

如果我理解正确,包含星号的行是太大的数字,但是感叹号是什么意思?由于某种原因,我在谷歌上找不到任何东西,所以我非常感谢您的解释。

使用的编译器是f90。至少在makefile中是这样调用的。

【问题讨论】:

  • 了解您要打印的数字以及您使用的编译器会很有帮助。
  • 可能是调试行意外遗留,可能是由首字母为 afn 或 ah 的人造成的
  • @IanBush 是的,调试行是正确的,但它们在那里是因为我正在尝试调试,所以不是偶然的。
  • @HighPerformanceMark 不,这就是 makefile 中的全部内容。很可能编译器在某种程度上特定于它正在运行的机器,或者这是一个 shell 快捷方式,我只是不知道如何找到。
  • @HighPerformanceMark f90 有一个man 条目,上面写着“f90 调用优化 FORTRAN90 编译器 OFORT90。”。我不知道这是否有帮助。

标签: fortran output


【解决方案1】:

我终于找到了罪魁祸首,这些奇怪的感叹号显然是0除以0的结果,即NaN。为什么它不只是说“NaN”对我来说是个谜。

我真的不知道有多少人在使用同一个编译器,从 cmets 来看并不多,但我想我会把这些信息放在那里以供将来参考。

【讨论】:

    猜你喜欢
    • 2011-01-11
    • 1970-01-01
    • 2021-09-18
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 2014-07-23
    • 1970-01-01
    相关资源
    最近更新 更多