Fortran - найти метод loc - неявный тип - PullRequest
0 голосов
/ 01 февраля 2019

Я изучаю фортран и мне нужна моя программа, чтобы найти конкретные значения в массиве.Простая программа, подобная приведенной ниже:

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

Я компилирую ее с помощью gfortran на macbook.Буду очень признателен, если я смогу получить помощь относительно findloc

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

У вас есть две ошибки.Небольшое изменение вашего кода заставляет его работать:

program hello

  implicit none
  intrinsic :: findloc
  integer :: x(1)

  x = findloc([4,9,0,2,-9,9,1], value = 9)


end program hello
0 голосов
/ 01 февраля 2019

Стандартное внутреннее findloc было введено в Fortran в редакции 2008 года.Поддержка этой функции впервые появилась в gfortran release 9.0 .

Сообщение об ошибке, которое вы видите, указывает на то, что встроенная функция не поддерживается в используемой версии.

Вы можете попытаться использовать требуемую версию, но на данный момент она все еще находится в разработке.

К счастью, достаточно просто зациклить элементы вашего массива, эффективно создав собственную версию findloc.

...