g95_source.tgz

g95 の以前のバージョンの問題
g95 0.92 は、2014 年 5 月頃に octopus 開発バージョンのいくつかのファイルをコンパイルする際に、内部エラーとセグメンテーション フォールトでクラッシュしました。別のモジュールから、およびグローバル ポインターを使用して) がサブルーチンに渡されました。問題、またはこのメッセージの実際の説明は見つかりませんでした。

入力ファイルの使用: ../../testsuite/components/04-hartree_3d_cg.01-cg_corrected.inp

テスト実行を開始しています…
実行中: cd /tmp/octopus._PuX8M; /home/pulpo/buildbot/lascar_x86_64_g95/build/_build/testsuite/../src/main/oct-test > out
ファイル solvers_oct.f90 の 2003 行
トレースバック: (最も内側から)
ファイル poisson_cg_oct.f90 の 353 行目から呼び出されます
ファイル poisson_oct.f90 の 990 行目から呼び出されます
ファイル poisson_oct.f90 の 1274 行目から呼び出されます
ファイル test_oct.f90 の 224 行目から呼び出されます。
ファイル test_oct.f90 の 191 行目から呼び出されます。
Fortran ランタイム エラー: 実際の想定形状配列引数が準拠していません
経過時間:29.8秒
ただし、Ubuntu で gcc 4.2.4 を使用する g95 0.94 は機能しました。MacOS 上の gcc 4.2.4 (MacPorts から) の 0.93 もそうでした。このバージョンの gcc でコンパイルするには少し手間がかかるので、以下に手順を示します。

Ubuntu で gcc 4.2.4 を使用して g95 0.94 をコンパイルする手順
$HOME/g95- install の代わりに、g95 および libf95 の構成ステップで以下のプレフィックスとして使用する、結果の g95 実行可能ファイルを配置するインストール ディレクトリを選択します。マルチスレッドのmake -j はgcc では機能するはずですが、おそらく g95 では機能しません。

wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.2.4/gcc-core-4.2.4.tar.gz
CD gcc-4.2.4
sed -i ‘s/prune_options (&argc, &argv);//’ gcc/gcc.c
mkdir g95
CD g95
../configure –enable-languages=c
作る
CD ../..
wget https://ftp.g95.org/g95_source.tgz
タール xzf g95_source.tgz
cd g95-0.94
./configure –prefix=$HOME/g95-install –with-gcc-dir=$PWD/../gcc-4.2.4
sed -i “s|g95_LDADD = |g95_LDADD = $PWD/../gcc-4.2.4/g95/gcc/driver-i386.o |” メイクファイル
sed -i “s|f951_LDADD = |f951_LDADD = $PWD/../gcc-4.2.4/g95/libdecnumber/*.o |” メイクファイル
sed -i ‘s/named_section/get_named_section/’ trans-decl.c
echo -e “\n\nfopenmp\nF95 Var(flag_openmp)\nOpenMP を有効にする\n” >> lang.opt
インストールする
tar xzf libf95.a-0.94.tar.gz
CD libf95.a-0.94
./configure –prefix=$HOME/g95-install
インストールする
CD ../..
最後に、結果の実行可能ファイルからシンボリック リンクを作成できます。

ln -s x86_64-unknown-linux-gnu-g95 g95-install/bin/g95

タイトルとURLをコピーしました