1

私が書いているプログラムでは、割り当てられた最終積配列 AFT(n,92) を作成しました。私の出力では、各行を 5 列幅の独自のテーブルとして表示したいと思います。

したがって、この場合、最終行に 2 つの値しかない 19 行 X 5 列の n 個の個々のテーブルになります。以下のコード スニップに示すように、これを do ループとして実行しようとしましたが、出力は 1 つの長い列として出力されます。ここからどこへ行けばいいのかわからない。

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 ステートメントは 1 行のテキスト出力を生成します。複数のアイテムを同じ出力レコードに含める場合は、それらを 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

1 つ目は暗黙の do ループ、2 つ目の配列セクションを使用しています。

于 2013-03-07T21:15:41.893 に答える