整数の例外をキャッチする方法はありますgfortran
かifort
?浮動小数点の例外をキャッチする方法はありますか?
階乗を計算する次の簡単なプログラムを検討してください。
program factorial
use, intrinsic :: iso_fortran_env
implicit none
integer(8) :: fac
real(REAL64) :: facR
integer,parameter :: maxOrder = 30
integer :: i
fac = 1 ; facR = 1.e0_REAL64
do i=2,maxOrder
fac=fac*i ; facR=facR*real(i,REAL64)
write(*,*) i, fac, facR
enddo ! i
end program
ある時点でオーバーフローが発生します -integer(8)
ここに示されているように、それは約 21 で発生します。