Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
record
azodyn
Commits
e02e8470
Commit
e02e8470
authored
Apr 23, 2019
by
Ronan Trepos
Browse files
Frost : update module
Add parzmeter date_fin_GEL. Integration of work of M. Chanis on Pea.
parent
1beb0de4
Changes
6
Hide whitespace changes
Inline
Side-by-side
AZODYN/exp/AzodynBarley.vpz
View file @
e02e8470
...
...
@@ -977,6 +977,9 @@
<port
name=
"AlphaSenesc"
>
<double>
1
</double>
</port>
<port
name=
"date_fin_GEL"
>
<string>
9999-12-31
</string>
</port>
</condition>
<condition
name=
"cSoil"
>
<port
name=
"ApportEau_seuil"
>
...
...
@@ -1329,15 +1332,15 @@
</observable>
<observable
name=
"oFrost"
>
<port
name=
"Des"
>
<port
name=
"Des
_cumult
"
>
<attachedview
name=
"view"
/>
</port>
<port
name=
"
Ge
l"
>
<port
name=
"
indiceGEL_cumu
l"
>
<attachedview
name=
"view"
/>
</port>
<port
name=
"
Gel
max"
>
<port
name=
"
indiceGEL
max"
>
<attachedview
name=
"view"
/>
</port>
...
...
@@ -1369,7 +1372,7 @@
<attachedview
name=
"view"
/>
</port>
<port
name=
"d
Gel
"
>
<port
name=
"d
indiceGEL
"
>
<attachedview
name=
"view"
/>
</port>
...
...
AZODYN/exp/AzodynPea.vpz
View file @
e02e8470
...
...
@@ -860,6 +860,9 @@
<port
name=
"date_FLO"
>
<string>
2010-04-29
</string>
</port>
<port
name=
"date_fin_GEL"
>
<string>
2010-03-31
</string>
</port>
</condition>
<condition
name=
"cPlantPea"
>
<port
name=
"DRG_ET"
>
...
...
@@ -1353,15 +1356,15 @@
</observable>
<observable
name=
"oFrost"
>
<port
name=
"Des"
>
<port
name=
"Des
_cumul
"
>
<attachedview
name=
"view"
/>
</port>
<port
name=
"
Ge
l"
>
<port
name=
"
indiceGEL_cumu
l"
>
<attachedview
name=
"view"
/>
</port>
<port
name=
"
Gel
max"
>
<port
name=
"
indiceGEL
max"
>
<attachedview
name=
"view"
/>
</port>
...
...
@@ -1393,7 +1396,7 @@
<attachedview
name=
"view"
/>
</port>
<port
name=
"d
Gel
"
>
<port
name=
"d
indiceGEL
"
>
<attachedview
name=
"view"
/>
</port>
...
...
AZODYN/exp/AzodynWheat.vpz
View file @
e02e8470
...
...
@@ -957,7 +957,10 @@
<port
name=
"vRac_ST"
>
<double>
0.800000000000000
</double>
</port>
</condition>
<port
name=
"date_fin_GEL"
>
<string>
9999-12-31
</string>
</port>
</condition>
<condition
name=
"cSoil"
>
<port
name=
"ApportEau_seuil"
>
<double>
1.200000000000000
</double>
...
...
@@ -1302,15 +1305,15 @@
</observable>
<observable
name=
"oFrost"
>
<port
name=
"Des"
>
<port
name=
"Des
_cumul
"
>
<attachedview
name=
"view"
/>
</port>
<port
name=
"
Ge
l"
>
<port
name=
"
indiceGEL_cumu
l"
>
<attachedview
name=
"view"
/>
</port>
<port
name=
"
Gel
max"
>
<port
name=
"
indiceGEL
max"
>
<attachedview
name=
"view"
/>
</port>
...
...
@@ -1342,7 +1345,7 @@
<attachedview
name=
"view"
/>
</port>
<port
name=
"d
Gel
"
>
<port
name=
"d
indiceGEL
"
>
<attachedview
name=
"view"
/>
</port>
...
...
AZODYN/src/Frost.cpp
View file @
e02e8470
...
...
@@ -39,12 +39,16 @@ public:
R
.
init
(
this
,
"R"
,
events
);
stressGEL
.
init
(
this
,
"stressGEL"
,
events
);
dDes
.
init
(
this
,
"dDes"
,
events
);
Des
.
init
(
this
,
"Des"
,
events
);
d
Gel
.
init
(
this
,
"d
Gel
"
,
events
);
Gel
.
init
(
this
,
"Ge
l"
,
events
);
Gel
max
.
init
(
this
,
"
Gel
max"
,
events
);
Des
_cumul
.
init
(
this
,
"Des
_cumul
"
,
events
);
d
indiceGEL
.
init
(
this
,
"d
indiceGEL
"
,
events
);
indiceGEL_cumul
.
init
(
this
,
"indiceGEL_cumu
l"
,
events
);
indiceGEL
max
.
init
(
this
,
"
indiceGEL
max"
,
events
);
NjGel
.
init
(
this
,
"NjGel"
,
events
);
stressGEL_cumul
.
init
(
this
,
"stressGEL_cumul"
,
events
);
dEnd
.
init
(
this
,
"dEnd"
,
events
);
End_cumul
.
init
(
this
,
"End_cumul"
,
events
);
pEnd
.
init
(
this
,
"pEnd"
,
events
);
pEndmax
.
init
(
this
,
"pEndmax"
,
events
);
}
virtual
~
Frost
()
...
...
@@ -84,13 +88,13 @@ public:
Rpot
=
pp
.
Rmin
;
}
//Calcul de d
R
if
(
pp
.
begin_date
+
j
=
=
pp
.
date_S
){
//Calcul de d
e la variation journaliere de la résistance (degres-jour)
if
(
pp
.
begin_date
+
j
<
=
pp
.
date_S
){
dR
=
0
;
}
else
if
(
Rpot
()
<
=
R
(
-
1
)){
}
else
if
(
Rpot
()
<
R
(
-
1
)){
dR
=
(
Rpot
()
-
pp
.
Rmin
)
/
pp
.
Njend
;
}
else
{
dR
=
(
pp
.
Rmin
-
R
pot
())
*
Tmoy
()
/
(
20.0
*
pp
.
Njdes
);
dR
=
(
pp
.
Rmin
-
R
max
())
*
Tmoy
()
/
(
20.0
*
pp
.
Njdes
);
}
//Calcul de R la resistance
...
...
@@ -104,57 +108,85 @@ public:
R
=
std
::
min
((
R
(
-
1
)
+
dR
()),
Rpot
());
}
//Calcul du stress ou ecart journalier entre la
//resistance et la temperature minimale dindiceGEL
if
(
pp
.
begin_date
+
j
<
pp
.
date_S
)
{
dindiceGEL
=
0
;
}
else
{
dindiceGEL
=
std
::
max
(
0.0
,
R
()
-
Tmin
());
}
//Calcul de la destruction de la biomasse stressGEL (de 0: pas de stress à 1 : stress TOTAL)
if
(
pp
.
begin_date
+
j
<
=
pp
.
date_
S
)
{
if
((
STapLEVEE
()
==
0
)
or
(
pp
.
begin_date
+
j
>
=
pp
.
date_
fin_GEL
)
)
{
stressGEL
=
1
;
}
else
if
(
Tmin
()
>=
R
()){
stressGEL
=
1
;
}
else
if
((
Tmin
())
<=
R
()
-
pp
.
GELmax_seuil
){
stressGEL
=
0.0
;
}
else
{
stressGEL
=
1.0
-
(
1
.0
/
pp
.
GELmax_seuil
)
*
(
R
()
-
Tmin
()
);
stressGEL
=
1.0
-
(
1
/
pp
.
GELmax_seuil
)
*
dindiceGEL
(
);
}
//Calcul du desendurcissement journalier Des
if
(
R
()
==
0
){
dDes
=
0
;
}
else
if
(
R
()
>
R
(
-
1
)){
//Intensité cumulée de stressGEL entre la levée et la date_fin_GEL: cumul de 1-stressGEL
if
(
STapLEVEE
()
==
0
)
{
stressGEL_cumul
=
0
;
}
else
{
stressGEL_cumul
=
stressGEL_cumul
(
-
1
)
+
(
1
-
stressGEL
())
;
}
//Calcul du desendurcissement journalier dDes
if
(
R
()
>
R
(
-
1
)){
dDes
=
R
()
-
R
(
-
1
);
}
else
{
dDes
=
0
;
}
//Calcul du désendurcissement cumulé
if
(
R
()
==
0
)
{
Des
=
0
;
//Calcul du desendurcissement cumule
Des_cumul
=
dDes
()
+
Des_cumul
(
-
1
);
//Calcul de l'endurcissement journalier dEnd (°C)
if
(
R
()
<
R
(
-
1
)){
dEnd
=
R
()
-
R
(
-
1
);
}
else
{
Des
=
dDes
()
+
Des
(
-
1
)
;
dEnd
=
0
;
}
//Calcul du stress ou ecart journalier entre la
//resistance et la temperature minimale dGel
if
(
pp
.
begin_date
+
j
<
pp
.
date_S
)
{
dGel
=
0
;
//Calcul de l'endurcissement cumulé End_cumul (°C)
End_cumul
=
dEnd
()
+
End_cumul
(
-
1
);
//Pourcentage d'endurcissement pEnd
if
(
pp
.
begin_date
+
j
<
pp
.
date_S
){
pEnd
=
0
;
}
else
{
dGel
=
std
::
max
(
0.0
,
R
()
-
Tmin
())
;
pEnd
=
(
R
()
-
pp
.
Rmin
)
/
(
Rmax
()
-
pp
.
Rmin
)
*
100
;
}
//Pourcentage d'endurcissement maximal, pEndmax
if
(
pp
.
begin_date
+
j
<
pp
.
date_S
){
pEndmax
=
0
;
}
else
if
(
pEnd
()
>
pEndmax
(
-
1
)){
pEndmax
=
pEnd
();
}
else
{
pEndmax
=
pEndmax
(
-
1
);
}
//Calcul du stress cumulé Gel
if
(
d
Gel
()
==
0
)
{
Gel
=
0
;
if
(
d
indiceGEL
()
==
0
)
{
indiceGEL_cumul
=
indiceGEL_cumul
(
-
1
)
;
}
else
{
Gel
=
dGel
()
+
Ge
l
(
-
1
);
indiceGEL_cumul
=
dindiceGEL
()
+
indiceGEL_cumu
l
(
-
1
);
}
//Calcul de l'écart maimum journalier
Gel
max
if
(
d
Gel
()
>
dGel
(
-
1
)){
Gelmax
=
dGel
();
//Calcul de l'écart maimum journalier
indiceGEL
max
if
(
d
indiceGEL
()
>
indiceGELmax
(
-
1
)){
indiceGELmax
=
dindiceGEL
();
}
else
{
Gelmax
=
dGel
(
-
1
);
indiceGELmax
=
indiceGELmax
(
-
1
);
}
//Calcul du nombre de jours de gel NjGel
if
(
d
Gel
()
>
0
)
{
if
(
d
indiceGEL
()
>
0
)
{
NjGel
=
NjGel
(
-
1
)
+
1
;
}
else
{
NjGel
=
NjGel
(
-
1
);
...
...
@@ -181,12 +213,16 @@ private:
Var
R
;
Var
stressGEL
;
Var
dDes
;
Var
Des
;
Var
d
Gel
;
Var
Ge
l
;
Var
Gel
max
;
Var
Des
_cumul
;
Var
d
indiceGEL
;
Var
indiceGEL_cumu
l
;
Var
indiceGEL
max
;
Var
NjGel
;
Var
stressGEL_cumul
;
Var
dEnd
;
Var
End_cumul
;
Var
pEnd
;
Var
pEndmax
;
};
}
// namespace AZODYN
...
...
AZODYN/src/ParametersPlant.hpp
View file @
e02e8470
...
...
@@ -73,6 +73,9 @@ public:
//couvert est total
double
GELmax_seuil
;
// date de fin de l'application du gel hivernal
double
date_fin_GEL
;
//resistance minimale au froid de la plante
double
Rmin
;
...
...
@@ -185,7 +188,6 @@ public:
//Plante/m²
double
densite_semis
;
//---------------------------------------------------------------------------------//
// pour remplissage des grains
...
...
@@ -240,6 +242,7 @@ public:
Tmax_plante
=
Utils
::
extractDouble
(
events
,
"Tmax_plante"
);
R_Coleo
=
Utils
::
extractDouble
(
events
,
"R_Coleo"
);
GELmax_seuil
=
Utils
::
extractDouble
(
events
,
"GELmax_seuil"
);
date_fin_GEL
=
Utils
::
extractDate
(
events
,
"date_fin_GEL"
);
Rmin
=
Utils
::
extractDouble
(
events
,
"Rmin"
);
Tmax_R
=
Utils
::
extractDouble
(
events
,
"Tmax_R"
);
Tmin_R
=
Utils
::
extractDouble
(
events
,
"Tmin_R"
);
...
...
AZODYN_test/data/test_azodyn.txt
View file @
e02e8470
...
...
@@ -4,6 +4,6 @@ AZODYN AzodynBarley.vpz view "AzodynBarley:YieldCereal.MSG" 500 10e-4 7.939111
AZODYN AzodynWheat.vpz view "AzodynWheat:WaterSoil.TR_C0" 283 10e-4 1.35998538
AZODYN AzodynWheat.vpz view "AzodynWheat:StressNitrogen.INN" 199 10e-4 0.98430310
AZODYN AzodynWheat.vpz view "AzodynWheat:YieldCereal.NGM2" 286 10e-4 -22959.4785025915
AZODYN AzodynPea.vpz view "AzodynPea:Frost.
Gel
max" 172 10e-4 4.
7621075
4
AZODYN AzodynPea.vpz view "AzodynPea:Frost.
indiceGEL
max" 172 10e-4 4.
87817460317
4
AZODYN AzodynPea.vpz view "AzodynPea:StressNitrogenPea.stressN_Eb" 302 10e-4 0.9990588
AZODYN AzodynPea.vpz view "AzodynPea:YieldPea.Rdt" 355 10e-4 311.4173
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment