FORTRAN 写()

发布于 2024-07-28 22:15:12 字数 889 浏览 3 评论 0原文

在开始之前,我必须先声明一下,我是 FORTRAN 的新手。 我正在维护 1978 年的一段遗留代码。它的目的是从文件中读取一些数据值,处理这些值,然后将处理后的值输出到另一个文本文件。

给出以下 FORTRAN 代码:

      INTEGER NM,STUBS,I,J,K
      PARAMETER (NM=67,STUBS=43)
      INTEGER*4 MDS(STUBS,NM)

      CALL OPEN$A(A$RDWR,'/home/test/data.txt', MAXPATHLEN,1)
      CALL OPEN$A(A$WRIT,'out',11,2)

      DO 90 I=1,2
          READ(1,82) STUB     
          !-- data processing --!     
          WRITE(2,80) STUB,(MDS(I,J),J=1,24)
90    CONTINUE

80    FORMAT(/1X,A24,25I5)
82    FORMAT(1X,A24,25F5,1)

我的问题是关于 WRITE() 语句。

我理解 (2,80) 指的是打开的文件输出流并指向文件 'out' 并由数字 2 引用。我理解 80 指的是标签 80 引用的格式语句。

STUB 用于存储从文件输入 1 读取的值。这些值经过处理,并保存到 MDS(I,J) > 在我省略的 !-- 数据处理 --! 部分中。

我假设 (MDS(I,J),J=1,24) 会将 24 个整数值写入输出文件是否正确? 换句话说,从1循环到24?

Before I begin, I must preface by stating that I am a novice when it comes to FORTRAN. I am maintaining a legacy piece of code from 1978. It's purpose is to read in some data values from a file, process the values, and then output the processed values to another text file.

Given the following FORTRAN code:

      INTEGER NM,STUBS,I,J,K
      PARAMETER (NM=67,STUBS=43)
      INTEGER*4 MDS(STUBS,NM)

      CALL OPEN$A(A$RDWR,'/home/test/data.txt', MAXPATHLEN,1)
      CALL OPEN$A(A$WRIT,'out',11,2)

      DO 90 I=1,2
          READ(1,82) STUB     
          !-- data processing --!     
          WRITE(2,80) STUB,(MDS(I,J),J=1,24)
90    CONTINUE

80    FORMAT(/1X,A24,25I5)
82    FORMAT(1X,A24,25F5,1)

My question is in regards to the WRITE() statement.

I understand that (2,80) refers to the file output stream opened and pointing to the file 'out' and referenced by the numeral 2. I understand that 80 refers to the format statement referenced by label 80.

STUB is used to store the values read from file input 1. These values are what is processed, and saved into MDS(I,J) in the !-- data processing --! section that I have omitted.

Am I correct in assuming that (MDS(I,J),J=1,24) will write 24 integer values to the output file? In other words, looping from 1 to 24?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦里泪两行 2024-08-04 22:15:12

是的,你是对的。 语法 (MDS(I,J), J=1,24) 是一个“隐含 DO-loop" 通常用于此类情况。

Yes, you are correct. The syntax (MDS(I,J), J=1,24) is an "implied DO-loop" and is commonly used in situations like this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文