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.
hkato1 added 24 commits April 14, 2022 11:29
… precipitation with sprinkler in wchange calculation.
…LIS_irrigationMod. 2) sprinkler on schedule and prescribed rate options. 3) flood on demand trigger time and duration. 4) allow rice crop can be sprinkler or drip, however, rice is considered to be paddy if it's flood, whereas regular flood scheme is applied to non-rice crops (in irrigation_model). 5) fix drip irrigation application units in getirrigationstates.
…o be consistent with the actual amount of water for bringing soil to saturation; 2) Enable schedule option for Drip and Flood; 3) Prescribed irrigation rate can be varied by soil type groups (Flood only); 4) Add Irrigation_landcover_fraction output field (veg/crop tile fractions as opposed to tile numbers in landcover).
…ency. Removed prescribed flood rate varied by soil texture option. Enabled noah3.6 with MIRCA crop types.
…added. The latter will differ from the former only when using flood with prescribed rate when the deficit from saturation could be different from the amount added. Otherwise, they are the same for sprinkler, drip, and flood with deficit rate. Fixed drip's irrigation amount application to the surface soil layer. It is weighted by the irrigation scale to reflect the irrigated portion of soil.
…ture check value to 0.0001 (it was errouneusley set to 0001).
…h Wanshu's NoahMP implementation for ensemble DA. Fixed a bug in sprinkler schedule option. Added irrigation amount per irrigation type and paddy fraction output fields.
…Fixed IrrigAppRate for Paddy and Flood. Stop irrigation 10-day prior to the harvest date to mimic draining field. Changed LDT output variable from IRRIGFRAC to IRRIGATEDAREA and associated attributes.
…y to once 2.5-day and only during the irrigation duration.
…ns to account for both irrigation and rainfed crop fractions in plantday determination for all crops (experiment pfix2).
…he fraction of irrigated area in noah3.9 (it was updated in noah3.6 with commit a5163cc on Jul 10, 2023).
…ion, frozen soil problem, and improved runoff recycling.
…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.

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.

4 participants