Program SIMPSON_3VAR IMPLICIT DOUBLE PRECISION (A-H,O-Z) DOUBLE PRECISION X3(1000000) a=0d0 b=1d0 N=100 h=(b-a)/N do i=1,N x3(i)=a+i*h enddo sum1=0d0 sum2=0d0 nimp= n/2-1 np = n/2 do i=1,nimp sum1=sum1+2*g3(x3(2*i)) enddo do i=1,np sum2=sum2+4*g3(x3(2*i-1)) enddo r=h/3d0*(g3(a)+sum1+sum2+g3(b)) open(20,File="ejerc10simp_comp_3var.xls") write(20,*)r call cpu_time(finish) write(20,30)finish-start 30 Format(e18.8) close(20) end FUNCTION g1(x1,x2,x3) Implicit Double Precision (A-H,O-Z) g1=exp(-(x1*x1)-(x2*x2)-(x3*x3))*cos(x1*x2+x2*x3+x1*x3) END Function g2(x2,x3) IMPLICIT DOUBLE PRECISION (A-H,O-Z) DOUBLE PRECISION x1(1000000) N=100 sum1=0d0 sum2=0d0 nimp= n/2-1 np = n/2 a=0d0 b=1d0 h=(b-a)/N do i=1,N x1(i)=a+i*h enddo do i=1,nimp sum1=sum1+2*g1(x1(2*i),x2,x3) enddo do i=1,np sum2=sum2+4*g1(x1(2*i-1),x2,x3) enddo g2=h/3d0*(g1(a,x2,x3)+sum1+sum2+g1(b,x2,x3)) END Function g3(x3) IMPLICIT DOUBLE PRECISION (A-H,O-Z) DOUBLE PRECISION x2(1000000) N=100 sum1=0d0 sum2=0d0 nimp= n/2-1 np = n/2 a=0d0 b=1d0 h=(b-a)/N do i=1,N x2(i)=a+i*h enddo do i=1,nimp sum1=sum1+2*g2(x2(2*i),x3) enddo do i=1,np sum2=sum2+4*g2(x2(2*i-1),x3) enddo g3=h/3d0*(g2(a,x3)+sum1+sum2+g2(b,x3)) END