更新经过一番挖掘,我发现这是一些解决方法的一部分,该解决方法使用OPENPIPE
. OPENPIPE
简单地返回一个外部声明的文件句柄,对管道完全不做任何事情。OPENHOLDFILENAME
实际上创建了一个文件,但我仍然对DFWIN
与此有关的内容感到困惑。是否需要提供函数声明OPENPIPE
?如果是这样,他们为什么还要EXTERNAL
在 Fortran 代码中声明它?
我的任务是在 GCC 工具链上编译旧版 Fortran。我已经成功编译了一些源文件,但是在DFWIN
链接到一些 Win32 API 函数的模块方面遇到了障碍。它显然使用了一些 Win32 管道函数,我需要将其替换为适用于 gfortran 的现代等效函数(旧编译器是 Compaq Visual Fortran)。
首先,我看到了DFWIN
包含的模块,以及一些外部函数:
USE DFWIN
EXTERNAL OPENPIPE
EXTERNAL OPENHOLDFILENAME
以下是如何OPENPIPE
使用的示例:
OPEN(UNIT=INN,FILE=
1 '\\.\pipe\input.txt',
1 FORM='FORMATTED',STATUS='old',readonly,
1 USEROPEN=OPENPIPE)
在使用 gcc/gfortran 的现代 Windows/Linux 系统上,我可以使用什么模块来替换这些调用?
编辑:我们的首要任务是让它在 Windows 上运行,但将来我们也希望在 Linux 上部署。