subroutine sistuspf(a, b, ip)12!Resolución del sistema triangular superior salvo permutación de filas ip3!Entrada: a (triangular inferior: L y triangular superior (sin la diagonal de 1): U)4! b (solución de L*u=Pb, donde ahora u=b)5! ip (puntero de las permutaciones)6!Salida: b (solución del sistema)789implicit none10real(8), intent (in) :: a(:,:)11real(8), intent (inout) :: b(:)12integer, intent (in) :: ip(:)13real(8) :: sum14integer :: i, n, j1516n = size(b)1718do i = n, 1, -119sum = 0d020do j = i+1, n21sum = sum+a(ip(i), j)*b(j)22end do23b(i) = (b(i)-sum)/a(ip(i), i)24end do2526return27end subroutine sistuspf282930313233