Está en la página 1de 1

!

modulos de programacion
module solvers
contains
function LU(A,B)
implicit none
double precision,allocatable,dimension(:)
:: LU
!el all
ocatable es para indicarle que es memoria dinamica ya que no se el tamao que tend
ra mi matriz y mi vector
double precision,allocatable,intent(in),dimension(:,:) :: A
!intent
es para especificar que es por lo que ponemos in para indicar es dato de entrad
a y ponemos dimension de dos ya que es matriz
double precision,allocatable,intent(in),dimnesion(:) :: B
!declarando variables locales
double precision,allocatable,dimension(:,:)
:: U,L
integer :: i,j,k,n
n=size(A,2) !nos va a devolver el tamao de A siendo de dimension 2
do i=1,n
L(i,i)=1.d0
end do
L(i,i)=(1.d0,i=1,n) !esta es otra manera de realizar el do anterior pero esto de
pende del compilador
!algoritmo LU
do k=1,n-1
do i=k+1,n
L(i,k)=A(i,k)/A(k,k)
do j=k+1,n
U(i,j)=A(k,j)-L(i,k)*A(i,j)
end do
end do
end do
end function LU

end module solvers

También podría gustarte