Скажем, у меня есть очень большой массив verybigvariable
И я определил функцию, которая выполняет некоторые операции, подобные этой.
function myfunc(var) result(res)
real:: var(:,:,:),res
...
...
...
end function myfunc
Мой вопрос в том, что когда я вызываю эту функцию вот так
myvar=myfunc(verybigvariable)
что случается? дублирует ли он мою переменную, чтобы во время выполнения функции она занимала 2-кратное пространство в оперативной памяти? Если да, то как я могу предотвратить это? (Я знаю, что в простой программе я могу определить функцию без каких-либо параметров и заставить ее использовать существующие переменные, но если я программирую модуль, кажется, мне нужно включить параметр в определение)