gpt4 book ai didi

module - 在 Fortran 90 中使用通用 block 和模块在内存方面是否存在差异

转载 作者:行者123 更新时间:2023-12-04 23:21:45 25 4
gpt4 key购买 nike

我最近在没有任何指导的情况下学习 Fortran,并尝试了不同的版本。我从 this site 找到:

Is a MODULE better than a COMMON block?

Almost always yes. The only reasons to use COMMON blocks are if you expect to use your program on a computer with only a FORTRAN 77 compiler (they still exist), or if it is very important that you control the order in which your data is stored in memory.



好吧,使用模块在语法上肯定比使用通用 block 更甜。但是在这两种情况下,内存使用和分配有什么区别?它在性能和访问速度方面也有影响吗?这个问题有意义吗?

最佳答案

M.S.B.在他的回答中有它,但在我看来并没有足够强调它。 COMMON block 中的变量完全按照 block 定义中的顺序排列在内存中。从此限制,即没有动态内存对象(可分配的,指针)可以在 COMMON block 中,紧随其后。

“序列关联”意味着您可以依靠变量的放置方式,例如,使用两个以下数组作为一个大数组。

COMMON block 在现代代码中可能没有位置,尽管它们没有被宣布为过时。

在速度方面,如果变量相同,那么访问它应该没有任何区别,无论是在模块中还是在 COMMON block 中。

关于module - 在 Fortran 90 中使用通用 block 和模块在内存方面是否存在差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23771021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com