首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vms fortran读写单元设计

vms fortran读写单元设计
EN

Stack Overflow用户
提问于 2016-05-23 17:34:02
回答 1查看 136关注 0票数 3

我的任务是将一些旧的(大约1986年)代码移植到c++,并遇到了一些绊脚石。以下两行代码是计算goto的一部分。

代码语言:javascript
复制
WRITE(2'N) (Y (I), I = 1, 5)
READ(2'N, ERR = 48) (Y (I), I = 1, 5)

我的问题是单位代号"2'N“,如果这是真的。"N“是传入子例程的整数变量。我已经做了相当多的谷歌这个模式和阅读什么VMS文档,我可以找到,但一直无法找到与此模式的任何信息与撇号。我理解写和读语句后面隐含的do循环,但我不明白这是从哪里写到和读的。浏览FORTRAN代码的其余部分不会显示可能与此调用相关联的unit=2 open语句,因此似乎它不是磁盘文件,但我不确定。我希望这里的人能回到他们的记忆里帮助我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-23 18:14:59

如果我正确地读取了VMS VAX FORTRAN手册'N将在单元2中指定N-th记录。从Cl。7.1.1.6“记录指定者”:

记录说明符标识要在具有相对组织的文件中访问的记录的数量。它采取下列任何一种形式: 参考值r 'r r 是一个数值表达式,其值表示要访问的记录的直接访问文件中的位置。..。

请注意,这是不符合标准的Fortran!大多数编译器不会接受这种语法。相反,使用REC=...

代码语言:javascript
复制
WRITE(2, REC=N) (Y (I), I = 1, 5)
READ(2, REC=N, ERR = 48) (Y (I), I = 1, 5)

单元2中的文件不需要显式打开。这是在同一文档Cl中指定的。7.1.1.2“逻辑单元说明”:

逻辑单元号通过以下两种方式之一分配给文件或设备:

  • 公开声明..。
  • 通过系统暗示..。

在后一种情况下,使用的文件名在Cl。4.2.2.1 VAX Fortran用户手册的"FORTRAN逻辑名称“中定义:

VAX以下列形式提供预定义的逻辑名称: FOR0nn.DAT 例如: 写(17,200) 如果输入前面的语句而不包括显式文件规范,则将数据写入默认目录下默认磁盘上名为FOR017.DAT的文件中。

在这种情况下,大多数现代编译器都会创建一个文件fort.nn

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37397173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档