2017-09-03 7 views
1

によって作成されたTXTファイルを読み込むことができません:それは読み取り文に到着したときFortranは、私は次のコード例でtxtファイルを読み込むしようとすると、別のプログラム

double precision inp(100) 
open(1,file='whatever.txt') 
do i=1,100 
read(1,*) inp(i) 
enddo 
close(1) 

プログラムがちょうど終了します。私は、ループを書く別の方法を試しました。

do 
read(1,*) inp 
enddo 

しかし、それは同じです。面白いのは、私がfortranや手でtxtを書いて、それを読もうとすると、うまくいくということです!

私は絶望的です、助けてください。ここで

+0

あなたが10を超えるユニットを使用してみましたか?あなたは1を使用していますが、これはすでに標準のようなものかそれに類するものによってすでに取り込まれている可能性があります。 – chw21

+1

問題が解決され、コードとは明らかに関連していないため、これを閉じる必要があります。 – agentp

答えて

0

はいくつかのアイデアです:

  1. 10以上のユニット番号を取り、1はなぜ読み取りを見つけるために/ O
  2. 使用iostatiomsg Iデフォルトのようなもので取られるかもしれません失敗:

    integer :: iostat 
    character(len=100) :: iomsg 
    
    read(unit=u, fmt=*, iostat=iostat, iomsg=iomsg) inp(i) 
    if (iostat /= 0) then 
        print *, "Error reading inp" 
        print *, "i was ", i 
        print *, "Error was: ", trim(iomsg) 
    end if 
    
+0

最後に私はファイルの1つのプロパティを変更して動作しますが、ありがとうございます。 –

+0

私は、基本的にシステムがあなたに与えるエラーメッセージのよりきれいなバージョンを与えるために、その余分な 'iostat'処理コードをすべて追加することを本当に唱えていません。 – agentp

+0

通常の操作中に追加された 'iostat'の処理について気にしなくても、デバッグには非常に便利だと思います。例えば、その処理がなければ、クラッシュ時に 'i'の値を得ることはできません。 – chw21

関連する問題