From 48800268c403bd9817cf7240c8bee75f3da2aab6 Mon Sep 17 00:00:00 2001
From: David <david.dorchies@inrae.fr>
Date: Sat, 30 Mar 2024 14:43:14 +0100
Subject: [PATCH] fix(getNodeRanking): case with 2 parallel upstream ungauged
 nodes

Refs #130
---
 R/CreateGRiwrm.R | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/R/CreateGRiwrm.R b/R/CreateGRiwrm.R
index 4562900..6ff7945 100644
--- a/R/CreateGRiwrm.R
+++ b/R/CreateGRiwrm.R
@@ -146,11 +146,14 @@ getNodeRanking <- function(griwrm) {
     g <- g[!g$id %in% upIds, ]
     #Search for ungauged ids
     upIds <- unique(g$id[!g$id %in% g$down & g$id != g$donor])
-    for(upId in upIds) {
+    while(length(upIds) > 0) {
+      upId <- upIds[1]
       #Browse the ungauged sub-network until the donor
-      g2 <- g %>% filter(donor == g$donor[g$id == upId])
+      upDonor <- g$donor[g$id == upId]
+      g2 <- g %>% filter(donor == upDonor)
       g2$donor <- g2$id
       ungaugedIds <- getNodeRanking(g2)
+      upIds <- upIds[!upIds %in% ungaugedIds]
       r <- c(r, ungaugedIds)
       g <- g[!g$id %in% ungaugedIds, ]
     }
-- 
GitLab