dynamicsoar's log

主に研究関係のメモ

NaNを検出してstop

NaN detect fortranググるといろいろでてくる。

http://www.nag-j.co.jp/fortran/FI_7.html#AUTOTOC_7
http://ftp.g95.org/G95Manual.jp.pdf
http://ftp.aset.psu.edu/pub/ger/fortran/hdk/nan.f90

g95, ifort では isnan という intrinsic function があったので、

  if( isnan( x ) .eqv. .true. ) then
    stop   'Diverged!'
  endif

でいけた。LOGICAL 使うのが初めてなのでよくわからないんだけど、 == (.eq.) では怒られて、.eqv. でないとだめっぽい。
gfortran は isnan がないらしいので下記でできるのかも。
http://sgws.blog.shinobi.jp/Entry/1/