From f846ba58ea262c0e94e5c229cbd772ca8d51fc18 Mon Sep 17 00:00:00 2001
From: Poulet Camille <camille.poulet@irstea.priv>
Date: Wed, 26 Jun 2019 17:51:24 +0200
Subject: [PATCH] Compute Nutrient Fluxes in each watershed for population

---
 data/input/fishTryRealBV_CC.xml               |  5 ----
 src/main/java/species/FishNutrient.java       |  6 +++++
 ...dSurviveAfterReproductionWithDiagnose.java | 25 ++++++++++++++++++-
 3 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/data/input/fishTryRealBV_CC.xml b/data/input/fishTryRealBV_CC.xml
index 454aa2e..ab30970 100644
--- a/data/input/fishTryRealBV_CC.xml
+++ b/data/input/fishTryRealBV_CC.xml
@@ -269,11 +269,6 @@
 					<mortalityRateInOffshore>0.4</mortalityRateInOffshore>
 				</species.Survive>
 
-				<species.ExportLenghtAgeDistribution>
-					<synchronisationMode>ASYNCHRONOUS</synchronisationMode>
-					<exportSeason>SPRING</exportSeason>
-					<fileNameOutput>lengthAgeDistribution</fileNameOutput>
-				</species.ExportLenghtAgeDistribution>
 
 				<species.ReproduceAndSurviveAfterReproductionWithDiagnose>
 					<synchronisationMode>ASYNCHRONOUS</synchronisationMode>
diff --git a/src/main/java/species/FishNutrient.java b/src/main/java/species/FishNutrient.java
index 753335d..cd09d24 100644
--- a/src/main/java/species/FishNutrient.java
+++ b/src/main/java/species/FishNutrient.java
@@ -308,6 +308,12 @@ public class FishNutrient {
 		return getWeight (fish, SpawningPosition.PRE);
 	}
 	
+	
+	
+public ArrayList<String> getNutrientsOfInterest() {
+		return nutrientsOfInterest;
+	}
+
 /**
  * @param args
  */
diff --git a/src/main/java/species/ReproduceAndSurviveAfterReproductionWithDiagnose.java b/src/main/java/species/ReproduceAndSurviveAfterReproductionWithDiagnose.java
index 7ae9f27..9ce8025 100644
--- a/src/main/java/species/ReproduceAndSurviveAfterReproductionWithDiagnose.java
+++ b/src/main/java/species/ReproduceAndSurviveAfterReproductionWithDiagnose.java
@@ -3,6 +3,7 @@ package species;
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
@@ -107,6 +108,15 @@ public class ReproduceAndSurviveAfterReproductionWithDiagnose extends AquaNismsG
 
 				List<DiadromousFish> fishInBasin = riverBasin.getFishs(group);
 				if (fishInBasin != null){
+					
+					Map<String, Double> totalFluxes = new Hashtable<String, Double>(); //On créer la Map pour stocker les flux 
+					
+					for (String nutrient : group.getFishNutrient().getNutrientsOfInterest()) {
+						
+						totalFluxes.put(nutrient, 0.); // ON MET A JOUR NOTRE map 
+						
+					}
+
 
 					// --------------------------------------------------------------------------------------------------
 					// definition of the stock recruiment relationship
@@ -341,14 +351,27 @@ public class ReproduceAndSurviveAfterReproductionWithDiagnose extends AquaNismsG
 					// --------------------------------------------------------------------------------------------------
 					for (DiadromousFish fish : deadFish){
 						
-						group.getFishNutrient().computeNutrientsInputForDeathAfterSpawning(fish); // 
+						Map<String, Double> aFlux = group.getFishNutrient().computeNutrientsInputForDeathAfterSpawning(fish); // 
+						
+						for (String nutrient: aFlux.keySet()) {
+							
+							totalFluxes.put(nutrient,totalFluxes.get(nutrient) + aFlux.get(nutrient) * fish.getAmount()); 
+						}
+						
+						
+						
 						group.removeAquaNism(fish);
 					}
 					deadFish.clear();
+					
+					System.out.println(group.getPilot().getCurrentTime() + "; " + Time.getYear(group.getPilot()) + ";" + Time.getSeason(group.getPilot()) + ";"
+					+ riverBasin.getName() + "; " + totalFluxes);
+					
 				}
 				else {
 					riverBasin.setYearOfLastNulRep(Time.getYear(group.getPilot()));
 				}
+				
 
 				// System.out.println("("+numberOfGenitors+")");
 				//System.out.println("  BEFORE " +riverBasin.getSpawnerOrigins().keySet());
-- 
GitLab