!**********************************************************************! ! ! File: gauss5.f90 (29-Mar-2001) ! (24-Mar-2006) ! (20-Mar-2008) ! ! Numerische Integration der Funktion ! ! f(x) = exp(x) ! ! mit der 5-Punkt Gauss-Legendre Formel ! ! a,b...Intervallgrenzen ! !**********************************************************************! module gauss5_m !**********************************************************************! implicit none private integer,parameter,public::n=5 real,dimension(n),parameter,public::w= & (/0.236927,0.478629,0.568889,0.478629,0.236927/) real,dimension(n),parameter,public::x= & (/-0.90618,-0.538469,0.0,0.538469,0.90618/) public::f contains !**********************************************************************! function f(x) result(y) !**********************************************************************! real,intent(in)::x real::y y=exp(x) end function f end module gauss5_m !**********************************************************************! program gauss5 !**********************************************************************! use gauss5_m implicit none integer::i real::a,b,s write(unit=*,fmt="(a)",advance="no") " a,b=" read(unit=*,fmt=*) a,b s=0.0 do i=1,n s=s+w(i)*f(0.5*(a+b+x(i)*(b-a))) end do s=0.5*(b-a)*s write(unit=*,fmt="(a,es14.7,a,es14.7,a)") " s=",s, & " (",exp(b)-exp(a),")" end program gauss5 !**********************************************************************!