模块 use 语句中的 Fortran 内部关键字

Fortran intrinsic keyword in module use statement

在模块的 use 语句中添加 intrinsic 关键字是什么意思,如下例所示?

  use, intrinsic :: iso_c_binding

(来自 7.1 Overview of Fortran interface, FFTW 3.3.6-pl1)

它是否指定应该使用编译器提供的同名模块,即使用户编写了另一个同名模块?

使用 use, intrinsic :: ... 确实选择了内部模块。

这个问题可能有点微妙,值得一提。关于"a module of that name provided with the compiler should be used",这个"should"不是偏好,而是强烈的要求。也就是说,如果没有这样的内部模块,那么编译就不会成功。这不应该是 iso_c_binding 的问题,但编译器通常会提供他们自己的非标准内部模块。

没办法说"use the intrinsic module if it's available, but the user-provided one if not"。