0

.dat ファイル内の一連のポイントを読み取り、.f ファイル内のアルゴリズムを介してポイントを実行しようとしています。私はOPENステートメントを使用してきました:

OPEN(UNIT=1,FILE='POINTS.DAT',FORM='UNFORMATTED')

まず、.dat の値を出力しようとしましたが、機能しません。

PRINT *, 1

PRINT *, POINTS.DAT

PRINT *, 'POINTS.DAT'

値を印刷しようとするのをやめるべきですか? .dat の値にどのようにインデックスを付ける必要がありますか? DO ループを実行して、ファイル内のデータ ポイントの数を n 回ループさせる必要がありますか? これらの値をどのように呼び出すのですか?

4

1 に答える 1

7

開いた後、ファイルから値を読み取る必要があります。print ステートメントでファイル名を使用してそれらを印刷することはできません。バイナリ/フォーマットされていないファイルであることが正しい場合は、フォーマットなしで読み取りを使用します: read (1) item. do ループを使用して一度に 1 つの項目を読み取るか、すべての項目を配列に読み取ることができます。ファイルが別の Fortran プログラムで書き込まれた場合、ファイルはレコード ベースになるため、書き込みに使用したのと同じ方法 (単一項目または配列) を使用する必要があります。ファイルが別の言語で書かれている場合は、open ステートメントにaccess='stream'を追加して、Fortran が通常使用するレコード構造がないことを Fortran に通知します。

基本構造 1:

real :: item  ! or whatever type
open (unit=1, ...
ReadLoop: do
  read (1, end=99) item
  process item...
end do ReadLoop
99 continue

基本構造 2:

real, dimension (NUMBER) :: array
open (unit=1,..
read (1) array
process array...

これは基本的な Fortran です。学ぶべき本を見つければ、おそらくより速く上達するでしょう。Metcalf と Reid によるFortran 90/95 Explainedが好きです。

于 2012-02-04T06:36:51.320 に答える