1. 主程序中的动态数组,分配之后传递给子程序。无需额外操作,不会造成堆栈溢出。
2. 如果不需要在子程序中完成分配,释放。对子程序来说,虚参就是普通数组(实际是对应的实参可以是动态数组,也可以是普通数组)。
3. 如果要在子程序中完成分配,释放。则需要把虚参定义为可分配数组。
并且该子程序需要书写 interface 才能在主程序使用。(也可把子程序包含在module中,避免手动书写interface)
例如
[Fortran] 纯文本查看 复制代码 subroutine assembly(a)
real(8),allocatable::a(:,:)
end subroutine assembly
call assembly(a)
|