Фортран для всех ограничений

Я пытался использовать forall для размещения динамических массивов, но gfortran это не понравилось. Я также обнаружил, что операторы записи запрещены в блоке forall , и я подозреваю, что операторы read тоже.

Какие другие функции / операции не разрешены в блоке forall ?

Для чего предназначена эта конструкция, кроме иногда замены циклов do , когда порядок не имеет значения? Я думал, что это сделает кодирование более разборчивым и элегантным, особенно, когда порядок операций не важен, но кажется весьма ограничивающим в отношении того, какие операции могут выполняться внутри всего .

Каковы причины этих ограничений, т.е. что они защищают / предотвращают от ошибок пользователя? Это хорошая идея использовать для всех ? Если да, то для каких целей?

Прямо сейчас в коде, над которым я работаю, есть только один блок forall , и если я переведу все это в циклы do , это даст четыре вложенных цикла. Какой способ лучше?

8
задан Samuel Tan 22 December 2011 в 10:33
поделиться