用户定义派生类型 IO 文件在 gfortran 上编译

User defined derived type IO file compile on gfortran

我正在尝试使用 GNU Fortran 编译 this link 示例 1 中提供的示例代码。我已将源代码放在名为 "Test" 的 .f95 文件中,并尝试使用

cmd 中编译它

gfortran test.95

这会引发很多错误,如下所示:

      GENERIC :: READ (FORMATTED) => UDIO_READ_ARRAY
                    1
Error: Expected '=>' at (1)
test.f95:12:17:

   INTERFACE WRITE(FORMATTED)
                 1
Error: Syntax error: Trailing garbage in INTERFACE statement at (1)
test.f95:13:21:

      MODULE PROCEDURE UDIO_WRITE_ARRAY
                     1
Error: MODULE PROCEDURE at (1) must be in a generic module interface
test.f95:14:5:

   END INTERFACE
     1
Error: Expecting END MODULE statement at (1)
test.f95:51:6:

   USE TYPES
      1
Fatal Error: Can't open module file 'types.mod' for reading at (1): No such file
 or directory
compilation terminated.

为什么会这样?我该如何解决?

为什么会这样?

因为 gfortran 5.1.0 不支持派生类型 input/output (DTIO)。

我该如何解决?

下载MinGW-w64版本>=7.1.0 https://sourceforge.net/projects/mingw-w64/files.