1

在我正在编写的程序中,我创建了一个已分配的最终产品数组 AFT(n,92)。在我的输出中,我想将每一行呈现为它自己的表格,5 列宽。

所以在这种情况下,它将是 n 个 19 行 X 5 列的单独表,最后一行只有 2 个值。我尝试将其作为一个 do 循环来执行,如下面的代码片段所示,但输出只是一个长列。我不知道从这里去哪里。

DO i=1,n
    WRITE(4,800) t(i), ' HHMM LDT'   !Writes the table header using an array which holds the corresponding time value
    800 FORMAT(14, A9)
    DO j=1,92
        WRITE(4,900) AFT(i,j)
        900 FORMAT(5ES23.14)
    END DO
END DO

我相信这种情况正在发生,因为由于使用循环,写入命令是针对每个 j 单独执行的,但是当我尝试提出另一种方法时,我对 FORTRAN 的缺乏经验导致我陷入空白。

4

1 回答 1

2

是的,每个 write 语句都会产生一行文本输出。如果您希望多个项目包含在同一输出记录中,则必须将它们包含在 write 语句中。如果要包含数组的某些部分,可以使用以下技术:

do i=1, N
   write (*, *) (array (i,j), j=1, 5)
end do

或者

do i=1, N
   write (*, *) array (i, 1:5)
end do

第一个是使用隐含的 do 循环,第二个是数组部分。

于 2013-03-07T21:15:41.893 回答