Está en la página 1de 2

program GAUSS implicit none integer N,i,j real b,a,W,gauss_legendre real,allocatable :: GL(:,:) character name1*15 a=0 b=2.

5 print*,'ingrese N DE NODOS:' READ(*,*) N !numero de nodos print*,'ingrese nombre del archivo con los pesos y nodos, por ejemplo ' print*,'si ingreso 2 como numero de nodos, digite 2.txt:' READ(*,*) name1 ! nombre del fichecho con los pesos y nodos open(unit=1,file=name1,status='unknown') allocate(GL(N,2)) do i=1,N read(1,*)(GL(i,j),j=1,2) end do W=gauss_legendre(a,b,N,GL) print*,'el valor de la integral es principal ',W !gauss_legendre(a,b,N,GL) end program GAUSS !************************* function gauss_legendre(a,b,N,GL) integer N,i real S,ff real, dimension (N,2):: GL !GL(i,1) nodos y GL(i,2) pesos

S=0 do i=1,N x=((b-a)*GL(i,1)+(b+a))/2 ff=10*(2.5-x)/2.5 !x**2*exp(-x) S=S+GL(i,2)*ff end do gauss_legendre=((b-a)/2)*S

end function gauss_legendre