【发布时间】:2017-11-18 00:05:18
【问题描述】:
我正在将旧版 Fortran 控制台应用程序移植到 C# 并遇到以下语句:
OPEN(UNIT=12,FILE = bufProgress,STATUS='UNKNOWN'
1 ,SHARED,ERR = 9300)
(按原样缩进。)SHARED 在这种情况下是什么意思? (由于1 用于行继续,它是OPEN 语句的一部分,对吧?)
我发现的东西:
- 整个程序(包括一个 +7k 行文件)中没有同名的变量。
- 这个程序是在几十年前使用“Digital Visual Fortran 6.0 Professional”编译的。我相信英特尔的 Fortran 编译器在过去十年中一直在使用,但不确定。
- 由缓冲区的内容指定的文件(当程序作为其“父”多平台系统的一部分运行时)被此控制台应用程序写入并被另一个进程读取。
-
在该语句上方有一个注释掉的语句,如下所示:
c OPEN(UNIT=12,FILE='progress.tmp',STATUS='UNKNOWN' c 1 ,SHARE='DENYRD',ERR = 9300)似乎
SHARE='DENYRD'曾经在某一时刻有类似的语义? - 在
OPEN的上下文中,我没有在网上找到任何关于SHARED或SHARE的信息。
【问题讨论】:
-
你使用哪个编译器?
-
你在网上搜索时错过了h41379.www4.hpe.com/doc/82final/6443/…吗?
-
@VladimirF 不幸的是,没有。我已经通过 Code::Blocks 在此清单上尝试了 gfortran,但我无法访问该程序在过去几年编译时所依赖的 IMSL 库。 gfortran 发出大量语法错误。如果我将这些添加到问题中会有帮助吗?
-
@VladimirF 感谢您提供 hpe.com 链接,它看起来很有希望!我确实错过了。不过,直到今天晚些时候,我才能彻底审查它。我会尽快更新。
标签: fortran