自适应辛普森积分
Module Simpson_mod Implicit none Real(kind=8) :: a = 0.d0, b = 1.d0 !// 积分区间 Real(kind=8) :: pi = acos(-1.d0), eps = 1.d-8, s0 Real(kind=8) :: calPi = 0.d0 !// 数值积分解 Contains Real(kind=8) function func ( x ) Implicit none Real(kind=8) :: x func = 4.d0 / ( 1.d0 + x * x ) !// 此函数的积分值为pi End function func Recursive Real(kind=8) function simpson ( atmp, btmp, eps, s ) result( calPi ) Implicit none Real(kind=8), intent(in) :: atmp, btmp, eps, s Real(kind=8) :: h, s1, s2 h = ( btmp - atmp ) / 2.d0 s1 = h / 6.d0 * ( func(atmp) + func(atmp+h/2.d0) + 4.d0*func(atmp+h/2.d0) ) s2 = h / 6.d0 * ( func(atmp