-
Notifications
You must be signed in to change notification settings - Fork 159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/AquaCropv7.2 integration #1633
base: master
Are you sure you want to change the base?
Feature/AquaCropv7.2 integration #1633
Conversation
Testing was done for the generic crop having a 365-day cycle for 4 restart times (1 Feb, 1 Aug, 1 Dec, 1 Jan next sim), as well as for the AquaCrop Maize file planted on March 22nd. Minor differences are supposably introduced by precision differences (saving restart variables as single precision while AC uses doubles) but have no impact on the final biomass, yield, Tact, Eact. Note that the restart is not working for - perennial crops - GDD crops (will be fixed later) - salinity - (may need a more elaborate list somewhere) No irrigation nor groundwater files were used as it has been decided that those options will be forced from LIS. Irrigation will be introduced in the next developments. Groundwater will not be introduced for the time being.
Switched to AquaCrop sp. ac_modules are an exact copy of AC src stored in branch https://github.com/lbusschaert/AquaCrop/tree/LIS/sp_2. WIP: restarting is technically working but needs to be checked via test cases
Hi @lbusschaert Congratulations to you and your team for submitting this PR to get AquaCrop fully merged into the LIS code! I did a quick review, and I have a few initial requests:
For example, "AquaCrop reference year for climatology:" for the
I see that you have them in your testcase, but it would be great to include them in the primary model output doc.
Thank you. |
Hi @dmocko, Thank you for noticing these points. They should be addressed now. |
Both LDT and LIS compiled on the Discover Milan nodes. Will next work on running the testcase. |
FYI for others on the LIS team: The config files and READMEs for the testcases associated with this PR are located in:
The LDT testcase ran as expected, and produced identical output to the provided target. |
Hi @lbusschaert The LIS testcase crashed for me. It ran to this point, and then stopped:
The target lislog file (for this section) looks like this:
The target simulation then continues again to 01/01/2018 and ends successfully. Is this the expected behavior of Aquacrop? That it runs through the simulation period two times? The job standard output gave this information:
Line 725 of this routine in your PR is here: I am not sure what this error means and how to resolve it in your code. Do you have any suggestions/ideas? No rush on a response. I know it's a holiday week, and I will be taking time off starting tomorrow. Happy Holidays! |
Hi @dmocko, Good to see that LDT ran without any problems on your machine.
When AquaCrop is running a crop using stages calibrated in "growing degree days (GDDs)" (or heat accumulation units), the temperatures of the simulation period before the actual run need to be known. AquaCrop computes the lengths of the stages (in days) along with other variables, before the simulation (here set to a period of 365 days) starts. Once the temperatures for the full year are read in, the actual run starts. This happens for each simulation period (i.e. each year). We know this is slowing down the simulations, and we foresee to get rid of this additional forcing reading in next (long-term) AquaCrop versions. Nevertheless, we found that running times are still acceptable, as it takes 10-20 min to read in the forwings for each year.
Also on my side, there is no rush on a response. Happy Holidays, David! |
Hi @lbusschaert Thanks for the explanation about the reading of the temperatures. This part of the LIS run took 17 minutes 59 seconds The run crashed on our system with this error on line 725 of ac72_setup.F90: The line that caused the crash is linked in my previous comment, and is this line here: |
Hi @dmocko Best wishes for 2025! I tried to see if I can reproduce the error on our systems, but all runs went through. Best, |
Hi @lbusschaert We are using these modules:
As part of this module file: https://github.com/NASA-LIS/LISF/blob/master/env/discover/sles15/lisf_7.5_intel_2023.2.1 Here is our LISF/lis/make/configure.lis file:
@jvgeiger and @emkemp - Do you have any insight on why line 725 of ac72_setup.f90 is giving the error about assigning into a pointer that is not associated? It's also not clear to me why this line only throws the error at the start of the second run through (after preparing the temperature data). |
Hi @dmocko Thank you for providing the specifics of your setup. I'll investigate more. Note that this is the first time that the line is read. The temperature data is prepared via the call to ac72_read_Trecord(n) in L678 of ac72_setup.f90. |
Hi @dmocko, I've been in contact with the IT team here to try to understand the problem. It is likely due to a difference in compiler. We are currently updating our compilation (we are still using intel 2021) but this may still take a couple of weeks. I can then test the code. In the meantime, would you be able to also try to run the LIS test case with an executable compiled in DEBUG mode to see if it reacts differently to another level of optimization? Thank you |
Description
This PR introduces the implementation of a crop model (AquaCropv7.2) in LIS, along with the LDT parameter processing. The implementation was done within the KU Leuven team of Prof. Gabriëlle De Lannoy, mainly by Michel Bechtold and myself.
Research has been done with a preliminary version of AquaCropv7.0 in LIS:
The objective was now to develop a final working version in LIS.
I was visiting the NASA-LIS team in early 2024 and prepared this implementation in collaboration with Sujay Kumar and David Mocko. The implementation is now finalized and has been carefully tested and compared to AquaCrop reference output.
AquaCropv7.2 (ac72) is now part of the surfacemodels/land/. The implementation is documented in
LIS_AC_documentation.pdf
We acknowledge that this is a large PR and we greatly appreciate the time you spend on it. Do not hesitate to contact me in case of any questions ([email protected]).
Testcase
Test cases for LDT and LIS have been added under the ldt/testcases and lis/testcases folders. The data for the test cases are stored in a Zenodo repository organized in the requested format: https://zenodo.org/records/14035685