В чем явная разница между намерениями Фортрана (in, out, inout)?
После некоторого поиска в книгах, здесь, в stackoverflow и в общей сети, я обнаружил, что трудно найти прямое объяснение реальных различий между намерениями аргумента fortran. Я понял это так:
intent(in)
-- The actual argument is copied to the dummy argument at entry.
intent(out)
-- The dummy argument points to the actual argument (they both point to the same place in memory).
intent(inout)
-- the dummy argument is created locally, and then copied to the actual argument when the procedure is finished.
Если мое понимание верно, то я также хочу знать, почему кто-то хочет использоватьintent(out)
, так какintent(inout)
требует меньше работы (без копирования данных).