Commit cd49a988 authored by Ronan Trepos's avatar Ronan Trepos
Browse files

ParametersPlant: date_FLO parameter is now shared

- use date_FLO for both Cereal and Pea modules.
- date_FLO in Pea corresponds to beginning of flowering
parent 3b76942f
......@@ -857,7 +857,10 @@
</port>
</condition>
<port name="date_FLO">
<string>2010-04-29</string>
</port>
</condition>
<condition name="cPlantPea">
<port name="DRG_ET">
<double>30.000000000000000</double>
......@@ -944,9 +947,7 @@
<port name="damax_C0">
<double>1.500000000000000</double>
</port>
<port name="date_DF">
<string>2010-04-29</string>
</port>
<port name="densRac1">
<double>-0.532400000000000</double>
</port>
......
......@@ -85,7 +85,7 @@ public:
}
//calcul du nombre de jours ou la couche avec nodosites est en stress hydrique par rapport a la fixation
if(j< pp.date_DF){
if(j< pp.date_FLO){
NJstressH_nod = 0.0 ;
} else if (NJstressH_nod(-1) >= pp.NJstress_nod_seuil) {
NJstressH_nod=NJstressH_nod(-1);
......@@ -100,7 +100,7 @@ public:
//l'inhibition de la fixation due a la presence d'azote mineral dans le sol)
if (Stade() < VEGETATIF){
pNac_fix = 0.0;
} else if (j < pp.date_DF) {
} else if (j < pp.date_FLO) {
pNac_fix = std::max(0.0,std::min(
pp.coefNsol_fix1* QNaccess_C0() + pp.a_pNfix,
pp.pNfix_max));
......@@ -129,7 +129,7 @@ public:
//quantite totale d'azote fixe le jour j (kgN/ha)
if (j < pp.date_DF){
if (j < pp.date_FLO){
if (stressH_nod() == 1) {
dQNfix_tot = 0.0;
} else {
......
......@@ -47,6 +47,9 @@ public:
//date semis
double date_S;
//date floraison
double date_FLO;
//temperature de base de la plante
double Tbase;
......@@ -218,6 +221,7 @@ public:
}
date_init_miner_res = Utils::extractDate(events, "date_init_miner_res");
date_S = Utils::extractDate(events,"date_S");
date_FLO = Utils::extractDate(events, "date_FLO");
Tbase = Utils::extractDouble(events, "Tbase");
//params specific wheat and barley
//verifications
......@@ -227,6 +231,9 @@ public:
if (date_init_H > date_init_N) {
throw ArgError("date_init_H > date_init_N");
}
if (date_S > date_FLO) {
throw ArgError("date_S > date_FLO");
}
// Paramètres liés à la température
Tmin_plante = Utils::extractDouble(events, "Tmin_plante");
Topt_plante = Utils::extractDouble(events, "Topt_plante");
......
......@@ -24,8 +24,6 @@ public:
double date_LEVEE;
//date epi 1 cm
double date_E1CM;
//date floraison
double date_FLO;
// Duree Epi 1cm - epiason
double ST_E1CM_EP;
......@@ -174,7 +172,6 @@ public:
ParametersPlant::initialiser(events);
date_LEVEE = Utils::extractDate(events, "date_LEVEE");
date_E1CM = Utils::extractDate(events, "date_E1CM");
date_FLO = Utils::extractDate(events, "date_FLO");
ST_E1CM_EP = Utils::extractDouble(events, "ST_E1CM_EP");
//verifications
if (date_init_N > date_init_MS) {
......
......@@ -17,8 +17,6 @@ using namespace vle::utils;
class ParametersPlantPea : public ParametersPlant
{
public:
//date de debut floraison
double date_DF;
//somme des temperatures entre semis et levee
double ST_S_LEVEE;
//somme des temperatures entre floraison et remplissage des graines
......@@ -147,7 +145,6 @@ public:
void initialiser( const vle::devs::InitEventList& events ){
ParametersPlant::initialiser(events);
// Paramètres liés à la phénologie
date_DF = Utils::extractDate(events, "date_DF");
ST_S_LEVEE = Utils::extractDouble(events, "ST_S_LEVEE");
ST_DF_DRG = Utils::extractDouble(events, "ST_DF_DRG");
STmax_FSLA_MP = Utils::extractDouble(events, "STmax_FSLA_MP");
......
......@@ -77,7 +77,7 @@ public:
//calcul Stade // TODO pas besoin d'initialiser la variable stade ?
if ((Stade(-1) == SOL_NU) and (STapS(-1) >= pp.ST_S_LEVEE)) {
Stade = VEGETATIF;
} else if (Stade(-1) ==VEGETATIF and pp.begin_date + j >= pp.date_DF) {
} else if (Stade(-1) ==VEGETATIF and pp.begin_date + j >= pp.date_FLO) {
Stade = DF_DRG;
} else if (Stade(-1) == DF_DRG and STapDF(-1) >= pp.ST_DF_DRG) {
Stade = DRG_FSLA;
......
......@@ -84,7 +84,7 @@ public:
if ((Stade() < VEGETATIF) or (IndicMP(-1)==1)){
Ebpot = 0.0;
} else if (pp.begin_date + j< pp.date_DF) {
} else if (pp.begin_date + j< pp.date_FLO) {
Ebpot = pp.Ebv * stressT(-1);
} else if ( Stade() >= DRG_FSLA and tNveg(-1)<pp.tNveg_seuil){
Ebpot = std::max(0.0,std::min(stressT(-1) * pp.Ebr,
......@@ -126,9 +126,9 @@ public:
// matiere seche accumulee depuis l initilisation jusqu a DF
if (pp.begin_date + j< pp.date_DF) {
if (pp.begin_date + j< pp.date_FLO) {
MS_DF= 0.0;
} else if(pp.begin_date + j==pp.date_DF) {
} else if(pp.begin_date + j==pp.date_FLO) {
MS_DF= MS();
} else {
MS_DF=MS_DF(-1);
......
......@@ -61,7 +61,7 @@ public:
// calcul de la profondeur racinaire le jour j (mm)
if (pp.begin_date + j<pp.date_S){
ProfRac = 0.0;
} else if ((pp.begin_date + j<pp.date_DF)
} else if ((pp.begin_date + j<pp.date_FLO)
and (ProfRac(-1) < ProfRacmax())){
ProfRac = ProfRac(-1) + ElongRac();
} else {
......
Markdown is supported
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