#author("2018-07-26T00:25:28+09:00","default:Miyashita","Miyashita")
#author("2022-04-04T13:56:37+09:00","default:Miyashita","Miyashita")
*NaNの有無を確認 [#xe1a926e]
**isnan [#f94a1627]
isnanを使ってNaNがあるかどうかを確認できる.~
NaNが発生した時点で計算を中止したい場合などに.
#codeprettify(lang-fortran){{
do I = 1,NY
 do J = 1,NX
  if(isnan(VEL(I,J))) then
    write(*,*)'NaN発生'
    stop
  end if
 end do
end do
}}
上記の方法だとループの途中で終わるので,NaNが複数ある場合にも最初にあるI,Jしかわからない.~
配列すべてを確認したい場合はlogical変数を使用し,ループを抜け出した後にもう一度配列にNaNがあったかどうか確かめる.
上記の方法だとループの途中で終わるので,NaN が複数ある場合にも最初にある I,J しかわからない.~
配列すべてを確認したい場合は logical 変数を使用し,ループを抜け出した後にもう一度配列に NaN があったかどうか確かめる.
#codeprettify(lang-fortran){{
hoge = .false.
do I = 1,NY
 do J = 1,NX
  if(isnan(VEL(I,J))) then
    hoge = .true.
  end if
 end do
end do
if(hoge)then
 write(*,*) 'VEL(I,J)をファイルに出力して確認したりできる'
 stop
end if
}}

**その他 [#i2ebe228]
aがNaNの場合,a==aが常に偽になるので,isnan(Intelのifortだけ対応?)が使えなければ.
a が NaN の場合, a==a が常に偽になるので, isnan (Intel の ifort だけ対応?)が使えなければ.

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes