【问题标题】:Fortran - find loc method - implicit typeFortran - 查找 loc 方法 - 隐式类型
【发布时间】:2019-02-04 00:17:22
【问题描述】:

我正在学习 fortran,需要我的程序在数组中查找特定值。一个简单的程序如下:

program hello

implicit none
integer :: x
x = findloc([4,9,0,2,-9,9,1],9)

end program hello 

给我以下错误:

Error: Function 'findloc' at (1) has no IMPLICIT type

我在 macbook 上使用 gfortran 编译它。如果我能获得有关 findloc 的帮助,我将不胜感激

【问题讨论】:

    标签: fortran gfortran


    【解决方案1】:

    标准内在 findloc 在 2008 年修订版中被引入 Fortran。对该功能的支持最早出现在gfortranrelease 9.0

    您看到的错误消息表明您使用的版本不支持该内在函数。

    您可以尝试使用所需的版本,但目前仍在开发中。

    幸运的是,循环遍历数组元素非常简单,从而有效地创建了您自己的findloc 版本。

    【讨论】:

      【解决方案2】:

      你有两个错误。稍微修改一下代码就可以了:

      program hello
      
        implicit none
        intrinsic :: findloc
        integer :: x(1)
      
        x = findloc([4,9,0,2,-9,9,1], value = 9)
      
      
      end program hello
      

      【讨论】:

      • 这仅在编译器确实提供内在函数时才有效。 intrinsic 语句通常不需要。但是,如果编译器不提供内在函数,这将无济于事。关键字参数value= 也不是必需的。
      • 需要 x 的数组性质是需要指出的有用的事情(这不是提问者面临的问题,但它仍然很重要),但我建议让它更清晰,和/或使用dim=,这可能更接近预期。
      猜你喜欢
      • 1970-01-01
      • 2016-12-23
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      • 1970-01-01
      • 2013-04-06
      • 2018-03-16
      相关资源
      最近更新 更多