-
Notifications
You must be signed in to change notification settings - Fork 9
Irrigation Module #959
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
base: develop
Are you sure you want to change the base?
Irrigation Module #959
Conversation
The latest commits updated flood irrigation by differentiating it between furrow irrigation (now applied only to irrigated fractions) and flood irrigation (now applied only to paddy fractions). Output Variables: each variable is weighted based on the specific irrigated fractions: |
…lly resolved conflict in GEOS_CatchGridComp.F90)
@stefanocasirati : I just pushed several commits: Primarily, it's an attempt to make the names of the internals (irrigation model prognostics and parameters) clearer and more consistent. Prefacing each name with I think there was a bug in the handling of MIDS_LENGTH, see 43167ab I recognize that the renaming of the internals will create havoc with the bcs. To test these changes, we'd either need to regenerate the bcs or create a copy of the current ones and then surgically rename the impacted, irrigation-related nc4 variables. For now, though, this is probably premature. I haven't got to al the variables yet, and I still have questions re. the meaning of some variables. As of right now, I just pushed my commits, and I don't even know if everything builds ok. I'll keep working as time permits |
…lly resolved conflicts in make_bcs_questionary.py and mkCatchParam.F90; manually edited rmTinyCatchParaMod.F90 to fix merge conflict not detected by git auto-merge
…NGTH->IRRG_MIDS_LNGTH); edited comments; fixed typos (irrigation_model.F90, GEOS_SurfaceGridComp.rc)
…GEOS_CatchCNCLM40GridComp.F90)
…n water rejected by Catchment
…ake code more consistent with current develop version (GEOS_CatchCNCLM40GridComp.F90)
…SurfaceGridComp.rc)
…CatchGridComp.F90, GEOS_CatchCNCLM40GridComp.F90)
…d comments (GEOS_IrrigationGridComp.F90, irrigation_model.F90, GEOS_SurfaceGridComp.rc)
…EOS_CatchGridComp.F90, GEOS_CatchCNCLM40GridComp.F90)
…gationGridComp.F90)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few more comments, see below
|
||
! Below parameters can be set via RC file. | ||
|
||
! IRRGRR: Do we really want to hardwire defaults here *and* in GEOS_SurfaceGridComp.rc ??? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we really want to hardwire defaults here and in GEOS_SurfaceGridComp.rc ?
|
||
! ***************************************************************************** | ||
|
||
! IRRGRR - duplicates same in Utils/mk_restarts/getids.F90 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
get help from SI team to avoid duplication of "to_radian()"
|
||
! ***************************************************************************** | ||
|
||
! IRRGRR - duplicates same in Utils/mk_restarts/getids.F90 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
get help from SI team to avoid duplication of "haversine()"
! the efficiency correction increased by 15 (e.g., Field application efficiency Sprinkler 75%, Surface Irrigation 60%. | ||
! Source FAO) | ||
if((ma <= IT).AND.(abs(H1 - HC) < 1./3600.)) & | ||
FRATE = this%cwd (ROOTFRAC,SMCNT,SMREF,this%efcor+15.)/(H2 - H1)/3600. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I understand correctly, EFCOR is introduced because irrigation water is "lost" during irrigation (presumably via direct evaporation to the atmosphere or by running off the field into natural land). Do we keep track of this water somehow? Does the model as is close the water balance? Not sure if there's a difference re. EFCOR and the water balance between sprinkler and flood irrigation. Since SRATE is added to precipitation, I suppose the sprinkler water lost will be accounted for (via interception loss and runoff). But does the same apply to flood irrigation water? This may need more thought.
@@ -2633,6 +2669,15 @@ subroutine SetServices ( GC, RC ) | |||
RC=STATUS ) | |||
VERIFY_(STATUS) | |||
|
|||
call MAPL_AddExportSpec(GC, & | |||
SHORT_NAME = 'SPIRRG', & | |||
LONG_NAME = 'Spurious_irrigation_flux', & |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to document somewhere that SPIRRG must be included in the irrigation water balance. Also need to verify that irrigation water balance (and total water balance) closes.
H2 = this%flood_stime + this%flood_dur | ||
if ((HC >= H1).AND.(HC < H2)) then | ||
! use RZDEF at H1 during H1 <= HC < H2 to compute irrigrate for paddy. | ||
if(abs(H1 - HC) < 1./3600.) FRATE (N,2) = RZDEF(N) *0.1/(H2 - H1)/ 3600. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I understand the code correctly, for LAI-triggered irrigation, SRATE and DRATE are effectively 1-dimensional, but FRATE has 2 elements in the 2nd dimension, one for FURROW and one for PADDY irrigation. I think it would be much cleaner to split FRATE into two one-dim arrays: FRWRATE and PDYRATE for LAI-triggered irrigation. The problem with this approach is that existing restart files would need to be translated accordingly. But because of my efforts to rename just about every variable, we probably have to deal with fixing up restarts anyway. Something to consider.
Overview:
Repositories affected by updates:
_GEOSgcm_GridComp, GEOSldas_GridComp_
New Files:
Brief description:
New land BCs version:
v14 : v13 (i.e., NL3 + JPL veg height + PEATMAP + MODIS snow alb v2 + mean land elevation fix) + Irrigation
The bcs generation package reads different irrigated area datasets and generates a new file "irrigation_IMxJM_DL.dat" containing, for each tile, a static: irrigation fraction, Paddy fraction, Rainfed fraction, crop irrigation fraction, crop irrigation type, crop planting and harvest dates, sprinkler fractions, drip fractions, flood fractions, and minimum and maximum LAI.
Irrigation module:
Adapted from:
feature/SM_irrigation_model
The irrigation module computes irrigation rates by applying three different irrigation schemes: sprinkler, drip, and flood (furrow). Irrigation is triggered based on location, growing season (Implemented alternative options: LAI-based and Crop Calendar-based), and soil moisture.
New Output Variables: each variable is weighted based on the specific irrigated fractions:
SPRINKLERRATE: sprinkler_irrigation_rate (kg m-2 s-1)
DRIPRATE: drip_irrigation_rate (kg m-2 s-1)
FLOODRATE: flood_irrigation_rate (kg m-2 s-1)
IRRLAND: total irrigation rate (kg m-2 s-1) = SPRINKLERRATE + DRIPRATE + FLOODRATE
To do:
LDAS nightly test