fortran - 如何在 Fortran 中释放所有分配的内存?
问题描述
不确定这是否可能,但尽管如此。
我有一个大型 Fortran90 代码(不是我编写的),我希望使用 python 和 mpi4py 运行。而不是生成 Fortran 可执行文件的多个实例,我想生成一次,并多次循环该程序。这是我以前做过的事情,效果很好。然而,这个 Fortran 代码相当庞大,与我用这种方法处理过的以前的代码相比相当复杂。
我的问题是 - 是否有一种简单的方法可以在每个循环结束时从程序内部拆除和释放所有已分配的数组(我不必检查整个代码并确保所有内容都已手动释放)。目前,如果我遍历代码的主体,它会在第二次通过循环时出错,因为它试图分配一个已经分配的数组。
解决方案
不,没有 deallocate all 命令可以解除程序中所有可分配实体的分配。您必须自己维护任何此类列表并自行解除分配。
您可以使用 Fortran 中的自动解除分配功能,但这仅适用于局部变量。不适用于模块或主程序中的实体。
推荐阅读
- ruby-on-rails - 按空值降序排列
- android - 如何在电池上推送图像?
- dart - Dart 2 与 TypeScript 的 typeof 等价物是什么?
- javascript - 何使用 javascript 在网站中实现 razorpay 支付方式
- wordpress - WooCommerce 插件无法激活
- selenium-webdriver - Selenium - WebDriver 和 Chrome 驱动程序
- flutter - 当应用程序在前台时,云消息传递 onMessage 回调永远不会被调用,但 onResume 和 onLaunch 确实会被调用?
- python - 使用 Beautifulsoup 抓取 Web 数据 - 在获取我需要的内容时遇到问题
- laravel - 使用 Laravel 7 验证数组输入字段时未显示错误消息
- python - 免费日出 - 需要日出 API