2009-12-08

セグメンテーション違反 → 配列を疑え

たとえば、
・うっかり配列の allocation を忘れてた
・うっかり配列の上限(下限)を超えるアクセスをしちゃってた
とか。


2011-12-08 追記:
なぜかyahooで「セグメンテーション違反 fortran」で検索するとこの中身ないエントリが二番目に出る。

まだ
http://naturesflyers.blogspot.com/2009/12/segmentation-fault-ifort.html
http://naturesflyers.blogspot.com/2009/06/lbound-ubound.html
の方が内容ある。

まぁ要するに segmentation fault が出る場合はたいてい配列関係のエラーなので、

$ g95 SOURCE.f90 -Wall -Wextra

でエラーを潰してから、

$ g95 SOURCE.f90 -ftrace=full -fbounds-check

あたりでコンパイルして実行すればいい(計算が遅すぎるなら -O3 も追加)。

No comments: