V73: Premature end of the growing period and improvement for ageing of KcTrx#372
V73: Premature end of the growing period and improvement for ageing of KcTrx#372mbechtold wants to merge 9 commits intoKUL-RSDA:mainfrom
Conversation
gdelannoy
left a comment
There was a problem hiding this comment.
looks good, one minor question
| end select | ||
|
|
||
| ! Simulation period cannot exceed Premature End of crop growth - Version 7.1 | ||
| call DetermineDate(GetCrop_Day1(), dayi, monthi, ThePlantingYear) ! planting year |
lbusschaert
left a comment
There was a problem hiding this comment.
Great! Only left minor comments + started pointing out things that we have to think about for future coupling with LIS
| end if | ||
| write(fhandle, '(a)') ' -9 : dummy - Parameter no Longer required' | ||
|
|
||
| ! New 7.3 Premature end of growth of annual crops when too cold to reach maturity (existing dummy replaced) |
There was a problem hiding this comment.
That answers the comments of the other PR :)
| end select | ||
|
|
||
| ! Simulation period cannot exceed Premature End of crop growth - Version 7.1 | ||
| call DetermineDate(GetCrop_Day1(), dayi, monthi, ThePlantingYear) ! planting year |
| call SetSimulation_ToDayNr(GetSimulation_DayNrPrematureEnd() - 1) | ||
| call SetCrop_LastDayNr(GetSimulation_DayNrPrematureEnd() - 1) | ||
| else | ||
| call SetCrop_LastDayNr(GetCrop_DayN()) |
There was a problem hiding this comment.
I will start adding comments related to future implementation in LIS and gather them in the AC documentation (sandbox) on Overleaf.
To tackle growth cycles that were too long compared to the simulation period (calendar year), I implemented two things:
- I added checks in the ac72_main, resulting in a flag in the output crop_cycle_complete that could be one or zero
- If there were less than 10% of days with mean temperatures above Tbase, there is no simulation on that pixel. If this was not implemented, it kept looking for enough days to calibrate the fertility.
With the changes to v7.3, we probably still need 1. to flag if it was a premature end, and also 2?
There was a problem hiding this comment.
I think yes, we still need both. To be tested. Great that you add that in overleaf.
src/tempprocessing.f90
Outdated
| call SetSimulation_FromDayNr(ProjectInput(NrRun)%Simulation_DayNr1) | ||
| call SetSimulation_ToDayNr(ProjectInput(NrRun)%Simulation_DayNrN) | ||
| call SetCrop_Day1(ProjectInput(NrRun)%Crop_Day1) | ||
| ! call SetCrop_DayN(ProjectInput(NrRun)%Crop_DayN) |
There was a problem hiding this comment.
Again, do we leave comments or do we remove them since the history is on GitHub?
src/tempprocessing.f90
Outdated
|
|
||
| ! Adjust crop parameters of Perennials | ||
| if (GetCrop_subkind() == subkind_Forage) then | ||
| ! Valid since Perennials have their own end of season based on Temperature - added Version 7.1 |
src/tempprocessing.f90
Outdated
| end if | ||
|
|
||
| call AdjustCalendarCrop(GetCrop_Day1()) | ||
| ! added Version 7.1 since Crop.DayN is no longer READ for annuals |
This PR implements a mechanism for the premature termination of the growing cycle of annual crops when temperatures drop too low toward the end of the year. In cold years, when the growing cycle becomes excessively prolonged and would otherwise extend into the following year, the crop’s growing cycle is terminated early on a date specified in the crop file.
This PR requires a change in the CRO file. The line
: dummy - Parameter no Longer required is replaced with
: DayNr Premature end (counting from 1 January of planting year) - only applicable for annual crops
This PR also includes an improvement for the ageing of the maximum crop transpiration coefficient (KCTr,x)
This PR requires a change in the CRO file. The line
: Decline of crop coefficient (%/day) as a result of ageing, nitrogen deficiency, etc.
with
: Cumulative decrease (%) at maturity of crop coefficient as a result of ageing, nitrogen deficiency, etc.
The new parameter has a default value of 11.
All V73 pull requests have been merged into a single version of the Fortran-based AquaCrop code. The outputs were verified against the Delphi-based standalone version that is the current engine of the AquaCrop GUI, with no differences observed in outputs.