Я видел, что это спрашивало о других языках, но, только что узнав, как красиво fortran может обрабатывать массивы, я думал, что может быть простой способ сделать это без циклов.
В настоящее время я просматриваю трехмерный массив, смотрящий на "ближайших соседей", чтобы увидеть, содержат ли они букву "n", и всякий раз, когда он находит это значение, я хочу, чтобы он выполнял какое-то назначение clusterLabel (что не имеет значения для этого вопроса)
Я хотел использовать if(lastNeighArray.eq."n") then...<rest of code>
но по очевидным причинам он не любит проверять массив на значение. Мне также нравится использовать lastNeighArray(:)
, хотя я бы хотел, чтобы он проверял каждый из элементов по одному. where(lastNeighArray.eq."n")
не работает, поскольку у меня есть оператор case внутри цикла where, и я получаю ошибку WHERE statements and constructs must not be nested.
Итак, я немного застрял. Я действительно хочу что-то вроде when(lastNeighArray.eq."n")
, но этого не существует.
Я также посмотрел на any
и forall
, но они не кажутся правильным выбором.
Справка