【发布时间】:2013-09-18 20:34:40
【问题描述】:
有没有办法用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 点左右发生。但如果没有使用浮点数作为参考的计算,我无法确定...
【问题讨论】:
标签: fortran gfortran integer-overflow intel-fortran