#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 だけ対応?)が使えなければ.