以前のリビジョンの文書です
http://accc.riken.jp/HPC/training/text.html
http://www.k.mei.titech.ac.jp/~stamura/NumericalComputation-Tips.html これくらいオプションをつけて実行すれば,だいたいエラーは検出されそう.
ifort -check all -warn declarations -CB -fpe0 -traceback
コンパイラオプションも参照のこと
デフォルトのスタックサイズが小さすぎて、-openmpをやるときはスタックサイズを増やしてあげないと、頻繁にセグ落ちする。
!$OMP parallel write(*,*) KMP_GET_STACKSIZE_S() !$OMP end parallel
とやると、各スレッドのスタックサイズを返す。これを増やす場合は、最初の!$OMPの前に、
CALL KMP_SET_STACKSIZE_S(size)
とやれば良い。sizeは整数型の変数。所望のスタックサイズ(byte)を書けばよい。
ifortでは出力時に勝手に改行する仕様になっている。 改行を抑制するためには、Format文を使用すればよい。
適当なやり方。
write(*,'(100f)') a(:)
きちんとしたやり方。以下2chより引用。
http://pc12.2ch.net/test/read.cgi/tech/1163319215/532
532 名前:デフォルトの名無しさん [sage]: 2009/03/27(金) 05:59:41 亀だけど、Ifortなら<>がお勧め。 多次元配列の最初の数を入れることが多いです 例 program main implicit none integer,parameter :: num = 9 integer :: ii,jj real :: arry(num,num) do ii=1,num do jj = 1,num arry(ii,jj) = ii*jj enddo enddo write(6,'(<num>F)') arry end program