Commit b05a5d85 authored by Poulet Camille's avatar Poulet Camille
Browse files

FishNutrient Influx(N,P) for death before reproduction, death after...

FishNutrient Influx(N,P) for death before reproduction, death after reproduction and survival after reproduction
Showing with 125 additions and 26 deletions
+125 -26
...@@ -35,27 +35,37 @@ public class FishNutrient { ...@@ -35,27 +35,37 @@ public class FishNutrient {
private double GSImalePre =.07; private double GSImalePre =.07;
// Si on ne possède pas wT post reproduction // Si on ne possède pas wT post reproduction
private double aLWfemalePost = 0.; // param�tre "a" de la relation taille/poids avec Lt en cm /**
private double bLWfemalePost = 0.; // param�tre "b" de la relation taille/poids * param�tre "a" de la relation taille/poids avec Lt en cm
private double GSIfemalePost=0.10; */
private double aLWmalePost = 0.; // param�tre "a" de la relation taille/poids avec Lt en cm private double aLWfemalePost = 0.; // param�tre "a" de la relation taille/poids avec Lt en cm
private double bLWmalePost = 0.; // param�tre "b" de la relation taille/poids private double bLWfemalePost = 0.; // param�tre "b" de la relation taille/poids
private double GSImalePost =.07; private double GSIfemalePost=0.10;
private double aLWmalePost = 0.; // param�tre "a" de la relation taille/poids avec Lt en cm
private double bLWmalePost = 0.; // param�tre "b" de la relation taille/poids
private double GSImalePost =.07;
//Si on possede WT post reproduction
private double CoeffLossWeight = 0.;
//Valeurs de Haskell pour A. sapidissima -- A rechercher pour Alosa alosa //Valeurs de Haskell pour A. sapidissima -- A rechercher pour Alosa alosa
private double compoNpreMale = 2.921; private double compoNpreMale = 2.921;
private double compoPpreMale = 0.662; private double compoPpreMale = 0.662;
private double compoNpreFemale = 2.917; private double compoNpreFemale = 2.917;
private double compoPpreFemale = 0.725; private double compoPpreFemale = 0.725;
private double compoNpostMale = 2.790 ; private double compoNpostMale = 2.790 ;
private double compoPpostMale = 0.961; private double compoPpostMale = 0.961;
private double compoNpostFemale = 3.216 ; private double compoNpostFemale = 3.216 ;
private double compoPpostFemale = 0.997; private double compoPpostFemale = 0.997;
private double compoNoocyte =0.0;
private double compoNsperm =0.0;
private double compoPoocyte =0.0;
private double compoPsperm =0.0;
/** /**
...@@ -65,25 +75,114 @@ public class FishNutrient { ...@@ -65,25 +75,114 @@ public class FishNutrient {
// TODO Auto-generated constructor stub // TODO Auto-generated constructor stub
} }
public void computeNP(DiadromousFish fish) { /**
* compute the N and P fluxes for a single fish (in the super individual)
* that dies after spawning (gametes expelling)
* @param fish
*/
public double[] computeInportNPforDeathBeforeSpawning(DiadromousFish fish) {
double totalWeightPre;
double [] inportNP = new double[2];
inportNP[0] = 0;
inportNP[1] = 0;
if (fish.getStage()== Stage.MATURE) {
if(fish.getGender()== Gender.FEMALE) {
totalWeightPre = aLWfemalePre * Math.pow(fish.getLength(), bLWfemalePre);
//totalWeightPost = totalWeightPre * (1-GSIfemalePost)+ totalWeightPost * GSIfemalePost * CoeffLossWeight
inportNP[0] = totalWeightPre * compoNpreFemale;
inportNP[1] = totalWeightPre * compoPpreFemale;
}
else if (fish.getGender()== Gender.MALE) {
totalWeightPre = aLWmalePre * Math.pow(fish.getLength(), bLWmalePre);
//totalWeightPost = totalWeightPre * (1-GSImalePost)+ totalWeightPost * GSImalePost * CoeffLossWeight
inportNP[0] = totalWeightPre * compoNpreMale;
inportNP[1] = totalWeightPre * compoPpreMale;
}
else {
totalWeightPre= Double.NaN;
inportNP[0] = 0.;
inportNP[1] = 0;
}
}
return inportNP;
}
public double[] computeInportNPforDeathAfterSpawning(DiadromousFish fish) {
double totalWeightPre, totalWeightPost; double totalWeightPre, totalWeightPost;
double[] inportNP = new double[2]; //Pour faire un tableau deux colonnes, N et P
inportNP[0] = 0.;
inportNP[1] = 0.;
if (fish.getStage() == Stage.MATURE) { if (fish.getStage() == Stage.MATURE) {
if (fish.getGender() == Gender.FEMALE ) { if (fish.getGender() == Gender.FEMALE ) {
totalWeightPre = aLWfemalePre * Math.pow(fish.getLength(), bLWfemalePre); totalWeightPre = aLWfemalePre * Math.pow(fish.getLength(), bLWfemalePre);
totalWeightPost = aLWfemalePost * Math.pow(fish.getLength(), bLWfemalePost); totalWeightPost = aLWfemalePost * Math.pow(fish.getLength(), bLWfemalePost);
// totalWeightPost = totalWeightPre * GSIfemalePre; //totalWeightPost = totalWeightPre * (1-GSIfemalePost)+ totalWeightPost * GSIfemalePost * CoeffLossWeight
inportNP[0] = totalWeightPost * compoNpostFemale + (totalWeightPre - totalWeightPost) * compoNoocyte;
inportNP[1] = totalWeightPost * compoPpostFemale + (totalWeightPre - totalWeightPost) * compoPoocyte;
} }
else if (fish.getGender() == Gender.MALE) { else if (fish.getGender() == Gender.MALE) {
totalWeightPre = aLWmalePre * Math.pow(fish.getLength(), bLWmalePre); totalWeightPre = aLWmalePre * Math.pow(fish.getLength(), bLWmalePre);
totalWeightPost = aLWmalePost * Math.pow(fish.getLength(), bLWmalePost); totalWeightPost = aLWmalePost * Math.pow(fish.getLength(), bLWmalePost);
// totalWeightPost = totalWeightPre * GSImalePre; //totalWeightPost = totalWeightPre * (1-GSImalePost)+ totalWeightPost * GSImalePost * CoeffLossWeight
inportNP[0] = totalWeightPost * compoNpostMale + (totalWeightPre - totalWeightPost) * compoNsperm;
inportNP[1] = totalWeightPost * compoPpostMale + (totalWeightPre - totalWeightPost) * compoPsperm;
} }
else { else {
totalWeightPre = Double.NaN; totalWeightPre = Double.NaN;
totalWeightPost = 0.; totalWeightPost = 0.;
inportNP[0]=0.;
inportNP[1]=0.;
}
}
return inportNP;
}
public double [] computeInportNPforSurvivalAfterSpawning(DiadromousFish fish) {
double totalWeightPre, totalWeightPost;
double[]inportNP = new double [2];
inportNP[0]= 0;
inportNP[1] = 0;
if (fish.getStage()== Stage.MATURE) {
if (fish.getGender()==Gender.FEMALE){
totalWeightPre = aLWfemalePre * Math.pow(fish.getLength(), bLWfemalePre);
totalWeightPost = aLWfemalePost * Math.pow(fish.getLength(), bLWfemalePost);
//totalWeightPost = totalWeightPre * (1-GSImalePost)+ totalWeightPost * GSImalePost * CoeffLossWeight
inportNP[0] = (totalWeightPre - totalWeightPost)* compoNoocyte;
inportNP[1] = (totalWeightPre - totalWeightPost)* compoPoocyte;
}
else if (fish.getGender()== Gender.MALE) {
totalWeightPre = aLWfemalePre * Math.pow(fish.getLength(), bLWmalePre);
totalWeightPost = aLWfemalePost * Math.pow(fish.getLength(), bLWmalePost);
//totalWeightPost = totalWeightPre * (1-GSImalePost)+ totalWeightPost * GSImalePost * CoeffLossWeight
inportNP[0] = (totalWeightPre - totalWeightPost)* compoNsperm;
inportNP[1] = (totalWeightPre - totalWeightPost)* compoPsperm;
}
else {
totalWeightPre= Double.NaN;
totalWeightPost = 0.;
inportNP[0] = 0.;
inportNP[1] = 0;
} }
} }
return inportNP;
} }
}
\ No newline at end of file }
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment