Fortran中OPEN(...,SHARED)的含义

时间:2017-06-15 13:11:07

标签: fortran

我将旧版Fortran控制台应用程序移植到C#并遇到此声明:

    OPEN(UNIT=12,FILE = bufProgress,STATUS='UNKNOWN'
    1 ,SHARED,ERR = 9300)

(按原样缩进。)SHARED在此上下文中的含义是什么? (由于OPEN用于行继续,它是1语句的一部分,对吗?)

我发现的事情:

  • 整个程序中没有此名称的变量(包含一个+ 7k行文件)。
  • 这个程序曾几十年前曾用#34; Digital Visual Fortran 6.0 Professional"编译过。我相信英特尔的Fortran编译器在过去十年中已被使用,但我不确定。
  • 由缓冲区内容指定的文件(当程序作为其#34;父级"多平台系统的一部分运行时)由此控制台应用程序写入并由另一个进程读取。 / LI>
  • 在此语句上方有一个注释掉的语句,如下所示:

    c   OPEN(UNIT=12,FILE='progress.tmp',STATUS='UNKNOWN'
    c   1 ,SHARE='DENYRD',ERR = 9300)
    

    似乎SHARE='DENYRD'曾经有过类似的语义?

  • 我在SHARED的背景下找不到关于SHAREOPEN的在线信息。

1 个答案:

答案 0 :(得分:4)

最适合我的参考资料:

尝试使用此网站进行FORTRAN参考:https://software.intel.com/en-us/intel-fortran-compiler-17.0-user-and-reference-guide

SHARED: https://software.intel.com/en-us/node/678862

  

SHARED说明符指示文件已连接以进行共享   由同时执行的多个程序访问。

似乎可以防止记录锁定性能,并且可能不会在当前版本的FORTRAN中使用。

对于SHARE = [type] https://software.intel.com/en-us/node/678861

  

'DENYRD'表示拒绝读取模式。没有进程可以打开文件   读访问。

其他FORTRAN备注可在英特尔网站上找到。