Я пытался использовать forall
для выделения динамических массивов, но gfortran это не понравилось.Я также узнал, что операторы write
запрещены в блоке forall
, и я подозреваю, что операторы read
тоже.
Какие другие функции / операции недопустимы в блоке forall
?
Для чего конкретно эта конструкция, кроме иногда замены циклов do
, когда порядок не имеет значения?Я подумал, что это сделает кодирование более разборчивым и элегантным, особенно показывая, когда порядок операций не важен, но кажется довольно ограничительным, какие операции можно выполнять внутри forall
.
Каковы причиныэти ограничения, то есть что они защищают / мешают пользователю испортить?Это хорошая идея использовать forall
?Если да, то для каких целей?
Прямо сейчас в коде, над которым я работаю, есть только один блок forall
, и если бы я перевел все это в циклы do
, это дало бы четыре вложенных цикла.Какой способ лучше?