Я видел, как это просили для других языков, но только что узнал, насколько хорошо 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
, но они не кажутся правильным выбором.