Windowsでは(exeとして)動作するがOS Xでは動作しない新しいJavaコードで古いFORTRANコードを使用しようとしています.Eclipseでビルドしようとすると、
make: *** [all] Segmentation fault: 11
だから私は端末に行き、そのようにします。異なるコンパイラでも同じ結果になります:
標準の -c および -o コマンドで作成された OS X 10.7.5 および gfortran-4.2 の実行
Program foo
open(unit = 1, file = 'variables.txt',IOSTAT= iost)
write(*,*)iost
read(1,*) P
write(*,*)P
...
end program foo
プログラムは手動でビルドされますが、出力は次のとおりです。
0
At line 13 of file Cubic42.f
Fortran runtime error: End of file
このエラーも見ました:
list in: end of file
apparent state: unit 88 named variables
last format: list io
lately reading sequential formatted external IO
Abort
IOSTAT が 0 を返すことを示しています。これは、ファイルが正常であることを意味します。しかし、unit# を 88.. に変更しても、CR を mac、windows、または unix に変更しても、ファイルは読み取られません。
たとえば、プログラムが機能するように変数をハードコードすると、入出力の問題だけのようです。
これを修正する方法についてのアイデアはありますか? 前もって感謝します。
Edit1 ここに variables.txt ファイルがあります
-9999
15.6
500
150.9
48.98
0.000
最後にキャリッジ リターンがあり、-9999 をプラスに変更しても問題ありません
編集2
ディレクトリからテキスト ファイルを削除し、.f を次のように作り直しました。
program foo
implicit none
real a, b, c, d
open(unit = 1, file = 'variables.2txt', action='write')
write(1, *) -6666
write(1, *) 6.15
write(1, *) -321
write(1, *) 5.16
close(1)
open(unit = 2, file = 'variables.2txt', action='read',form='FORMATTED')
read(2, *) a
write(*,*) a
read(2, *) b
write(*,*) b
read(2, *) c
write(*,*) c
read(2, *) d
write(*,*) d
close(2)
end program foo
それから私はそれをコンパイルしました。
出力は次のとおりです。
-6666.000
6.150000
-321.0000
5.160000
予想通りですが、variables.2txt はどこにも見つかりません! 私は非常に混乱しています、助けてください。
Edit3 ファントムファイルを見つけました。/users/me/phantom.txt にあります。問題は、ファイルを実行可能ファイルと同じディレクトリに保存するにはどうすればよいかということです。