2016-07-20 6 views
0

免責事項:私はFORTRANで書かれたプログラムを使用しています。私は全くFORTRANに堪能ではない。これがダミーの質問であれば、私は進んで謝罪します。Fortran実行時エラー:ファイルを開くことができません(このようなファイルまたはディレクトリはありません)

私は次のエラーを取得しています:

At line 1494 of file phot_star_fit18.f90 (unit = 45) 
    Fortran runtime error: Cannot open file '/Users/.../SSPFITTING/GASFIT/ssp/ssplist.d': No such file or directory 

Error termination. Backtrace: 
#0 0x10a0a9729 
#1 0x10a0aa3f5 
#2 0x10a0aab59 
#3 0x10a16f70a 
#4 0x10a16f950 
#5 0x10a09815c 
#6 0x10a09ee5e 

ライン1494は、次のとおりです。/Users/.../SSPFITTING/GASFIT/ssp/ディレクトリで

open(unit=45,file=splist,status='old',action='read') 

私はssplistに関連する以下のファイルを持っています。何か:

ssplist.dat2 
ssplist.dat04 
ssplist.dat5 
ssplist.dat08 

誰もが、これは失敗していると、なぜコードがssplist.dファイルを期待している理由についていくつかの光を当てますか?

+0

'...'は奇妙です。おそらく '..'ですか? –

+1

よく 'ssplist.d'を探すのは' .dat'ではありません。または他のもの – agentp

+1

'splist'の宣言と代入/初期化を、あなたが期待していないように見せてください。 – francescalus

答えて

1

これは本当に問題ですが、私は強い疑いを持っているかどうかを確認するために、問題の十分なデータがありません:

それは存在しません/Users/.../SSPFITTING/GASFIT/ssp/ssplist.dというファイルを開こうとは。現在、ssplist.dで始まるファイルがいくつかありますが、完全な名前はありません。

あなたは、固定長文字変数に文字列を代入しようとした場合、最後の文字が削除されています

program string1 
    implicit none 
    character(len=8) :: h 
    h = "Hello World" 
    print *, h 
end program string1 

プリント:私の提案は、あなたの宣言を検索するために

Hello Wo 

です文字の変数splistのように見えます。

character(len=xx) :: splist 

も古いかもしれません:

character*xx splist 

またはxxが多数ある場合、このようなもの。このxxは、少なくとも/Users/.../SSPFITTING/GASFIT/ssp/ssplist.dat08の文字数にする必要があります(サブディレクトリの長いリストを...に置き換えていると思われます)ので、いくつの文字があるのか​​は分かりません。短いです。

+0

私はこれを、あまりにも漠然とした質問に答えて、最高の推測の答えとして受け入れるつもりです。私は、この答えから、スプライスの文字の長さが実際には大丈夫だったことを認識しました、len = 64に設定されました...それは私の文字列がこれを超えたことでした!このファイルへのディレクトリの短縮は、この問題を解決するのに十分でした。 – user3125347

-1

スラッシュが正しく傾いていますか? あなたは書き込み文が表示されていることの主なものは存在しなかったされているものである

...

LOGICAL :: Existent = .FALSE. 
... 
INQUIRE(FILE='somefile', EXIST=Existent) 
IF(Existent) THEN 
    OPEN(... 
    READ(... 
    CLOSE(... 
ELSE 
    WRITE(*,10) SomeFile(1:??) 
10 FORMAT(" Cannot find file="',A,'"') 
ENDIF 
を照会できます。 ファイル名を保持している文字列が80文字に制限されていて、 'at1'を切り捨てていると、洞察が得られます。

chw21が何を言っているのかが長らく語られています。

+0

しかし、彼はFALSEを得て、同じ問題を抱えています...これが答えだったら、重複として閉じてしまったかもしれませんが、これは既にここ数回ありました。 –

関連する問題

 関連する問題