Fortran read() 是否在没有 I/O 列表的情况下分配内存?

问题描述 投票:0回答:1

我正在读取一个使用 Intel Fortran 打开的 ascii 文件:

open(10, file=trim(file_name), status='old', action='read', iostat=ierr, iomsg=msg)

要跳过一些我不想存储的文件行,我使用不带 I/O 列表的 read() :

read(10, *)

VTune 报告在 read() 处分配了 53 GB,但没有 I/O 列表:

该内存是否真的分配了,还是 VTune 错误地识别了内存分配?是什么导致了这种行为?

fortran intel-fortran intel-vtune
1个回答
2
投票

不,此时没有分配 53+GB 的虚拟内存。没有 I/O 列表的读取可能根本不分配内存。(我是前 Intel Fortran 编译器开发人员。)

© www.soinside.com 2019 - 2024. All rights reserved.