Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

Questions about irrigation from groundwater

liliyao

Xinamai
Member
Hi, I was trying to figure out how to use groundwater for irrigation in CLM5BGC. This question is related to this post: Questions about increasing the irrigation amount?. But I still only have irrigation water from surface water and not any from groundwater even though I have added the following to user_nl_clm:
irrigate = .true.
limit_irrigation_if_rof_enabled= .true.
use_groundwater_irrigation= .true.

I ran my test case on a point scale with ctsm5.1.dev115 for 2 simulation years, and the compset is “I2000_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV”. I have attached the surface dataset and domain file.

I was thinking maybe it is because the river volume already supplies enough water to meet the soil water deficit. So I tried to change the “irrig_river_volume_threshold”. Based on my reading of this code: src/biogeophys/IrrigationMod.F90, a threshold of 0.1 means allow 90% of the river volume to be used. So, if I use a threshold of 1.0, I thought it means no river water will be used for irrigation. But my simulation results show that this threshold does not have any impact on the irrigation in my case. I am also curious to know whether I can use only groundwater for irrigation even though the river water is available.

Basically, my questions are:
  • How to set the model correctly to allow irrigation water from groundwater?
  • Can I use “irrig_river_volume_threshold” to control the irrigation water from river volume?
  • Can I control the ratio of the irrigation water sources between surface water and groundwater?
Thank you very much!
 

Attachments

  • fsurdat_domain.zip
    7.2 KB · Views: 4

oleson

Keith Oleson
CSEG and Liaisons
Staff member
I think the problem is that those settings are not active/used when the river routing model is off, as it is in your single-point simulation.
See the following code in biogeophys/IrrigationMod.F90:

limit_irrigation = (this%params%limit_irrigation_if_rof_enabled .and. rof_prognostic)
if (limit_irrigation) then
call this%CalcDeficitVolrLimited( &
bounds = bounds, &
check_for_irrig_col_filter = check_for_irrig_col_filter, &
deficit = deficit(bounds%begc:bounds%endc), &
volr = volr(bounds%begg:bounds%endg), &
deficit_volr_limited = deficit_volr_limited(bounds%begc:bounds%endc))
else
deficit_volr_limited(bounds%begc:bounds%endc) = deficit(bounds%begc:bounds%endc)
end if

In particular, although limit_irrigation_if_rof_enabled is true, rof_prognostic is false.
 

liliyao

Xinamai
Member
Thank you, Dr. Oleson. Since the river routing model was not used in the single-point simulation, I tried to run the simulation at CONUS scale (still with ctsm5.1.dev115). But I was not able to get past an error “too much NH4 uptake predicted by FUN”. I found this error has been discussed here: ERROR: too much NH4 uptake predicted by FUN In this post, you mentioned that (1) the atmospheric forcing might be the problem, (2) try with different initial conditions. I think the atmospheric forcing is not the problem in my case, because when I switched to CESM2.1.3, the same case can run successfully. As for the initial condition (i.e., finidat), the default one used by the model is finidat_1, and I tried another two:
finidat_1: '/lnd/clm2/initdata_map/clmi.I2000Clm50BgcCrop.2011-01-01.1.9x2.5_gx1v7_gl4_simyr2000_c190312.nc'.
finidat_2: '/lnd/clm2/initdata_map/clmi.I2000Clm50BgcCrop.2000-01-01.1.9x2.5_gx1v7_gl4_simyr2000_c200428.nc'
finidat_3: '/lnd/clm2/initdata_map/clmi.I2000Clm50BgcCrop.2011-01-01.1.9x2.5_gx1v7_gl4_simyr2000_c180715.nc'.
The default paramfile used by the model is '/lnd/clm2/paramdata/clm50_params.c211112.nc'. I have also tried with a different one, i.e., lnd/clm2/paramdata/ctsm51_params.c211112.nc.
But I did not get past the error. Do you have any suggestions to fix this error? I have attached my log files. Thank you very much.
 

Attachments

  • log_files.zip
    165.4 KB · Views: 4

oleson

Keith Oleson
CSEG and Liaisons
Staff member
There is also a canopy energy balance error in the log file. The magnitude of that error (e.g., energy balance in canopy 134 , err= -3.141599526680122E+028) suggests that either there is probably a missing or fill value in the forcing file being used by the datm. I would check the mask in the mesh file to make sure it is consistent with valid forcing data.
 

liliyao

Xinamai
Member
Thanks for your reply. It is highly possible that the mesh caused the problem because the mesh I was using is actually not generated from my forcing file. I will start learning how to make ESMF mesh and to see if I could fix the error.
 

liliyao

Xinamai
Member
Hi Dr. Oleson, I created a CONUS scale test case in release-cesm2.2.0 to test how to activate irrigation using groundwater. The compset is HIST_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV_SIAC_SESP. I also have added the following to user_nl_clm

limit_irrigation_if_rof_enabled= .true.
use_groundwater_irrigation= .true.

I ran the case for two simulation years. But QIRRIG_FROM_GW_CONFINED and QIRRIG_FROM_GW_UNCONFINED are still 0 in the output. Do you have any idea on this? Thank you!
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
Despite specifying MOSART in the compset, I don't think mosart will be active by default in a regional case because you would have to create mapping/mesh files and frivinp_rtm file for your region. You can check for the presence/absence of rof log files to see if mosart is active/inactive. Also, ./xmlquery MOSART_MODE should tell you that.
 

liliyao

Xinamai
Member
Despite specifying MOSART in the compset, I don't think mosart will be active by default in a regional case because you would have to create mapping/mesh files and frivinp_rtm file for your region. You can check for the presence/absence of rof log files to see if mosart is active/inactive. Also, ./xmlquery MOSART_MODE should tell you that.
Thanks! ./xmlquery MOSART_MODE tells me MOSART_MODE: NULL. Could you please let me know what mapping/mesh files you are referring to? Does NCAR have a sample one? For the frivinp_rtm file, I guess I can use this one https://svn-ccsm-inputdata.cgd.ucar.../mosart/MOSART_routing_0.125nldas2_c190415.nc ?
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
In order to answer your questions, I'll need to reproduce the steps you've taken to this point.
From your previous posts I gather you are using release-cesm2.2.0 with an IHIST compset at 0.125nldas2 resolution? It may be that we provide the necessary files to run MOSART at that spatial resolution. But,

I tried setting that case up using:

./create_newcase --case cesm220_nldas2_IHISTClm50BgcCrop --compset HIST_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV_SIAC_SESP --res nldas2_rnldas2_mnldas2 --project P08010000 --run-unsupported

Then I ran ./case.setup.
./xmlquery MOSART_MODE gives me "ACTIVE" (not "NULL" as in your case).

However, running ./preview_namelists gave me this error:

ERROR: Command /glade/work/oleson/release-cesm2.2.0/components/clm/bld/build-namelist failed rc=255
out=
err=ERROR : CLM build-namelist::CLMBuildNamelist::add_default() : No default value found for flanduse_timeseries.
Are defaults provided for this resolution and land mask?

And so the namelists are not generated. So I'm wondering what the exact steps you've taken are.
 

liliyao

Xinamai
Member
Thanks! Yes, I am using release-cesm2.2.0 with an IHIST compset at 0.125nldas2 resolution. But I use "CLM_USRDAT" resolution when I created the case. The defaults don't provide the flanduse_timeseries and land domain file (I am assuming the land mask you are referring to is the land domain file), but I provided them in user_nl_clm and env_run.xml, respectively, sorry for the confusion. I have attached the steps that I have taken.
 

Attachments

  • steps-LLY-01312023.pdf
    80.5 KB · Views: 12

oleson

Keith Oleson
CSEG and Liaisons
Staff member
Ok thanks. I think you are on the right track, although I'm not sure why mosart is getting turned off in your particular case. I tried a slightly different approach in that I used the nldas2_rnldas2_mnldas2 resolution instead of CLM_USRDAT (I also used ctsm5.1.dev115 but I assume things would work similarly in cesm220).

./create_newcase --case ctsm51d115_nldas2_IHISTClm50BgcCrop --compset HIST_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV --res nldas2_rnldas2_mnldas2 --project P08010000 --run-unsupported

That results in some runoff model specific variables being set appropriately, e.g.,

./xmlquery MOSART_MODE
MOSART_MODE: ACTIVE

env_build.xml: <entry id="ROF_GRID" value="0.125nldas2">
env_build.xml: <entry id="ROF_NX" value="464">
env_build.xml: <entry id="ROF_NY" value="224">
env_run.xml: <entry id="ROF_DOMAIN_MESH" value="$DIN_LOC_ROOT/share/meshes/0.125nldas2_ESMFmesh_cd5_241220.nc">

frivinp_rtm = "/glade/p/cesmdata/cseg/inputdata/rof/mosart/MOSART_routing_0.125nldas2_cdf5_c200727.nc"

So it looks here as if mosart is supported for this particular regional grid.
I then added in fsurdat and flanduse_timeseries files and:

limit_irrigation_if_rof_enabled=.true.
use_groundwater_irrigation=.true.

The case built and is running. I'm getting non-zero irrigation from groundwater.
 

liliyao

Xinamai
Member
When I use 0.125nldas2 resolution instead of CLM_USRDAT in CESM2.2.0, I also got the non-zero irrigation from groundwater. Thanks!
 
Top