Skip to content

Conversation

@hkato1
Copy link
Contributor

@hkato1 hkato1 commented Jan 9, 2026

Description

Enhancements are made for the irrigation modeling in LIS and preprocessing irrigation related datasets in LDT. We added multiple crop and multiple irrigation type support in LDT. We updated each irrigation type currently enabled in LIS and added multiple irrigation scheme where Sprinkler, Drip, Flood, and Paddy irrigation types occur simultaneously. We updated irrigation code structure and consolidated routines. This implementation is based on Rodell et al. 2026 submitted to JAMES. Currently works with Noah LSM and will be incorporated into NoahMP and others next.

Resolves original issues #106 and #107 at last! Also resolves related issues #176, #177, and #398.

Contributed by @smahanam, @karsenau, @jerlingi, and @KathyNie. Thank you!

Testcase

/discover/nobackup/hkato/IRRIGATION/testcase/issue106
/discover/nobackup/hkato/IRRIGATION/testcase/issue107

karsenau and others added 30 commits June 6, 2019 16:48
  selected crop classification array onto the vegetation tile array

 Updated LDT to account for these new crop tiles; some temporary changes
  were made to the LSM-Crop Module code to implement, so some
  features are currently turned off for now for this first
  phase to test crop tiles in LIS.

 Made some minor updates to LIS to accommodate the new crop tiles,
  however these are surface level changes to get LIS running for now.

 Added new plugin and structures for MIRCAIrrig croptypes; just
  placeholder for now to test with the MIRCA 26 classes for Hiroko
  and Sarith to work with and expand with the MIRCA and related
  datasets.
…IA-GRIPC irrigation fraction source options.
  Implement minor option feature to support different
  GRIPC irrigation types (sprinkler, paddy, or sprinkler+paddy)
… include Kristi's update on GRIPC irrigation fraction options "sprinkler|paddy|sprinkler+paddy" specified vis ldt.config.
…T irrigation type data and associated routines updates. AQUASTAT irrigation type only works with neighbor gridtransformation option for global domain (mode crash though it works in NLDAS domain--needs to be fixed).
…s well as updates to previously committed routines. Specific updates include as below:

1.	Crop classification with “MIRCA” is set up for 26 crops (default) or “MIRCA52” for 52 crops for explicit irrigated and rainfed crop tiling
2.	“Irrigation types” returns fractions of Sprinkler, Drip, and Flood irrigation map.  The old “irrigation types” based on GRIPC dataset is now renamed to “crop water sources” in which provides irrigated, paddy, or rainfed fractions.  When GRIPC is selected, a new routine “assignirrigtype” is called to map out the fractions of irrigation type map and additional options are set up in ldt.config.
3.	Introduced “Merge crop and irrigation information” option, which allows additional dataset to be merged with currently selected “Irrigation fraction data source” and “Irrigation type data source”.  Changes are made in the core routines for incorporating the merge data source, reading routine, and blending the merged crop fractions with the land cover fractions.
4.	Croptype fractions as well as irrigation crop and rainfed crop fractions can be output in 3D arrays of size (lon,lat,num_crops) for MIRCA whereas the dominant crop type is output by default with other crop source data.
5.	Added crop planting and harvesting dates for multiple cropping seasons.  Currently, it supports only two crop seasons.
…mation in LDT including: 1)Concurrent irrigation method (simultaneous sprinkler, drip, and flood). 2)Consolidate irrigationMod routines that are repeated for each type into one for Alltypes; incorporate the new information added in LDT and assign irrigation type for each tile (the routine is includes Jessica’s fix in the latest irrigation/sprinkler/sprinkler_irrigationMod.F90). 3)Control more irrigation parameters from lis.config.
removed subdirectories and modules under lis/irrigation
…tside of irrigation window, reinstate original ma computation
…urce is selected. Added grid maps of US county and global countries to the irrigation parameter output fields to be used in LIS irrigation for assigning specific type per crop tile.
…alue over the water so we can distinguish Democratic Republic of the Congo (0).
…r irrigation method distribution among crops by Matt, a routine written and to be implemented by Sarith.
…ith. Using Global_IMethod.txt which contains fractions as opposed to areas in previously used Global_IMethod.dat.
…n modification that appeared during compilation.
…he consolidated alltypes_irrigationMod module.
…ons included in the paper submitted to JAMES. Updated Noah3.3 and 3.9 to be consistent with Noah3.6 irrigation schemes (issue 176/177). Fixed irrigation output at monthly interval (issue 398).
@smahanam
Copy link
Contributor

smahanam commented Jan 9, 2026

@hkato1 Thanks so much for finalizing the PR.

@emkemp
Copy link
Contributor

emkemp commented Jan 12, 2026

Should the env/discover/lisf_7_intel_19_1_3_304_irr file be removed from this PR? The underlying Intel compiler doesn't seem to be on Discover anymore.

@hkato1
Copy link
Contributor Author

hkato1 commented Jan 12, 2026

Should the env/discover/lisf_7_intel_19_1_3_304_irr file be removed from this PR? The underlying Intel compiler doesn't seem to be on Discover anymore.

yes, I think so. I don't think we were using env/discover/lisf_7.5_intel_2023.2.1_s2s, either.

@emkemp
Copy link
Contributor

emkemp commented Jan 12, 2026

Hi @hkato1

I compiled and ran the LDT and LIS executables to compare with your sample output. In the LDT output I see some isolated pixels with noise-level differences, which I don't think is a problem. Similar story for the LIS IRRIGATION output.

For the LIS SURFACEMODEL output, I also see noise-level differences but over wide areas. Enough so that I'm concerned your output was generated using different compiler settings. What compiler level did you use? Is this 2 or 0 or ???

@hkato1
Copy link
Contributor Author

hkato1 commented Jan 12, 2026

Hi @hkato1

I compiled and ran the LDT and LIS executables to compare with your sample output. In the LDT output I see some isolated pixels with noise-level differences, which I don't think is a problem. Similar story for the LIS IRRIGATION output.

For the LIS SURFACEMODEL output, I also see noise-level differences but over wide areas. Enough so that I'm concerned your output was generated using different compiler settings. What compiler level did you use? Is this 2 or 0 or ???

Hi @emkemp

Thanks for working on the PR. I compiled with -1 (debugging) level.

@emkemp
Copy link
Contributor

emkemp commented Jan 12, 2026

Thanks @hkato1

I recompiled with optimization turned off and reproduced your results exactly.

I will now review code quality.

@emkemp
Copy link
Contributor

emkemp commented Jan 21, 2026

Two questions on this PR:

(1) Why is the 557WW-7.5-FOC deleted in your PR? That has nothing to do with irrigation.

(2) Do you have a expected timeline for updating irrigation for the other LSMs? Approving this PR in it's current state may ruin other's research if they are using the old irrigation for NoahMP, RUC, or CLSMF.

@hkato1
Copy link
Contributor Author

hkato1 commented Jan 22, 2026

Two questions on this PR:

(1) Why is the 557WW-7.5-FOC deleted in your PR? That has nothing to do with irrigation.

(2) Do you have a expected timeline for updating irrigation for the other LSMs? Approving this PR in it's current state may ruin other's research if they are using the old irrigation for NoahMP, RUC, or CLSMF.

Thanks @emkemp for working on this.
(1) I have no idea about. If it's deleted, it wasn't intentional.
(2) I thought it would be better to include other LSMs in chunks, but you're right, the old irrigation would not work after this PR. NoahMP, RUC, and CLSM have irrigation already, so they need to be updated. I will work on them in coming weeks. Do I just commit changes in my branch or do I submit another PR?

@smahanam
Copy link
Contributor

@hkato1 It has been a while, so I forget.
I believe the new irrigation_model offers a configuration to mimic simple physics/modeling approach of Mutlu's irrigation model. However, that will not produce identical results of Mutlu's model. Am I right?

@hkato1
Copy link
Contributor Author

hkato1 commented Jan 22, 2026

@hkato1 It has been a while, so I forget. I believe the new irrigation_model offers a configuration to mimic simple physics/modeling approach of Mutlu's irrigation model. However, that will not produce identical results of Mutlu's model. Am I right?

@smahanam yes, we can configure different irrigation approaches in the new irrigation model. Mutlu's approach was using Sprinkler only, soil deficit demand, and greenness fraction based growing season determination--which can be set in lis.config. The result should be close. Since we are now using irrigation class (i.e. IM) and moved many variables into lis.config, the interface and main LSM routines need to be updated to use that new structure.

@jvgeiger
Copy link
Contributor

I must go through your history to see why the FOC files were deleted.

Did you purposely make changes to read_gdas.F90 and read_princeton.F90?

@smahanam
Copy link
Contributor

If we had deleted 557WW-7.5-FOC files, we apologize. It is definitely unintentional.
Please feel free to restore from the appropriate branch (master or support/lisf557ww-7.5, or any).

@hkato1
Copy link
Contributor Author

hkato1 commented Jan 23, 2026

Did you purposely make changes to read_gdas.F90 and read_princeton.F90?

yes, I did. read_princeton.F90 is just minor change, adding "trim" for printing out filename.
read_gdas.F90 modifications were made following the NCEP GDAS model changes implemented on 12 Jun 2019. GDAS f00 files contained average precipitation fields prior to the upgrade, but they were no longer included. The routine was modified to read in average precipitation fields from f03 and f06 files only. I thought I shared this with the LIS team back then, but somehow it got left out of the main repository (maybe it was before transitioning to Github)?

@jvgeiger
Copy link
Contributor

I am still reviewing the history to understand why those FOC files were deleted. I do not want to simply re-add them until I understand what happened.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants