大規模なプログラムの一部として、非常に単純な ODE を Fortran で解く必要があります。ソルバーを自分で実装する必要がないようにするために (そして、正しく理解する前にいくつかのバグを確実に導入する必要があります)、ライブラリがあればそれを使用すると考えましたが、機能するものが見つかりません。
私はODEPACKを見て、それを再パッケージ化した人を見つけましたが、元のディストリビューションは非常に毛深いソース コードとして配布されておりINTEGER(8)
、再パックは私のラップトップではビルドされません。そして止まる前にREAL(8)
INTEGER(4)
REAL(4)
gfortran -shared -o libodepack.so opkda1.o opkda2.o opkdmain.o
/usr/bin/ld: opkda1.o: relocation R_X86_64_32 against `dls001_' can not be used when making a shared object; recompile with -fPIC
opkda1.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [odepack.so] Error 1
したがって、32/64 ビットの非互換性の問題だと思います (私は 64 ビット プロセッサを使用しています)。エラーメッセージが示唆するようにフラグを追加して-fPIC
も役に立ちませんでした-とにかく同じメッセージが表示されました。
ODEPACK、または同様のものは、最新の Ubuntu ディストリビューションで、より簡単にインストールできる形式で利用できますか?