【问题标题】:Error: 'b' argument of 'sign' intrinsic at (1) must be the same type and kind as 'a'错误:(1)处固有的“sign”的“b”参数必须与“a”的类型和种类相同
【发布时间】:2019-01-14 21:02:20
【问题描述】:

我是 Fortran 新手。所以我需要帮助。 我在 SUSE 上使用 gfortran 编译我的代码并收到以下错误:

DELTAL = SIGN (.1,(GFIX-GAMFLT))

1

Error: 'b' argument of 'sign' intrinsic at (1) must be the same type and kind as 'a'

代码的主文件附在下面的链接中,其中 3509 行显示错误

https://files.engineering.com/getfile.aspx?folder=d55e28c0-10bf-4c50-b07f-c1de071c9567&file=sftol.f

如何解决这个问题?

【问题讨论】:

  • 欢迎提供详细信息。阅读How to AskMinimal, Complete, and Verifiable example
  • 最小例子?
  • 一个最小的例子包括program programname 语句、变量声明和代码(如果可以的话,去掉数千行,只包括导致错误的行)和end program 语句。这样我们就可以编译你拥有的东西,如果我们也有的话。
  • 作为猜测,如果 GFIX 和 GAMFLT 是双精度(实数 *8),那么 .1 需要相同。您可以使用0.1d0 执行此操作。
  • 是的,Dan Sp。我按照你说的做了编辑,效果很好。谢谢。

标签: linux fortran gfortran fortran90 fortran77


【解决方案1】:

这个问题最终解决如下:

DELTAL = SIGN (0.1D0,(GFIX-GAMFLT))

这似乎保留了原始代码的基本数据类型。它确实编译成功。

感谢大家的建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-10
    • 1970-01-01
    • 2016-04-26
    相关资源
    最近更新 更多