subroutine sistuspf(a, b, u, ip)12!Resolución del sistema triangular superior salvo permutación de filas ip3!Entrada: a (matriz triangular superior salvo permutación de filas)4! b (términos independientes)5! ip (puntero de las permutaciones)6!Salida: b (solución del sistema)789implicit none10real(8), intent (in) :: a(:,:), b(:)11integer, intent (in) :: ip(:)12real(8), intent (out) :: u(:)13real(8) :: sum14integer :: i, n, j1516n = size(b)1718do i = n, 1, -119sum = 0d020do j = i+1, n21sum = sum+a(ip(i), j)*u(j)22end do23u(i) = (b(ip(i))-sum)/a(ip(i), i)24end do2526return27end subroutine sistuspf282930313233