subroutine sistlspf(a, b, u, ip)12!Resolución del sistema triangular inferior, con unos en la diagonal, salvo la permutación de filas ip3!Entrada: a (triangular inferior: L y triangular superior (sin la diagonal de 1): U)4! b (términos independientes)5! ip (puntero de las permutaciones)6!Salida: u (solución de L*u=Pb)78implicit none9real(8), intent (in) :: a(:,:), b(:)10integer, intent (in) :: ip(:)11real(8), intent (out) :: u(:)12real(8) :: sum13integer :: i, j, n1415n = size(b)1617do i = 1, n18sum = 0d019do j = 1, i-120sum = sum+a(ip(i), j)*u(j)21end do22u(i) = (b(ip(i))-sum)23end do2425return2627end subroutine sistlspf282930