Skip to content
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

Surface dataset enhancements needed for irrigation method #565

Closed
4 tasks
billsacks opened this issue Nov 9, 2018 · 6 comments
Closed
4 tasks

Surface dataset enhancements needed for irrigation method #565

billsacks opened this issue Nov 9, 2018 · 6 comments
Labels
closed: wontfix We won't fix this issue, because it would be too difficult and/or isn't important enough to fix enhancement new capability or improved behavior of existing capability

Comments

@billsacks
Copy link
Member

billsacks commented Nov 9, 2018

In #523 , @swensosc has introduced the ability to read grid cell and crop-specific irrigation methods (currently, sprinkler or drip) from the surface dataset. The following enhancements are needed to make this fully operational out-of-the-box:

  • Add ability for mksurfdata_map to put this field on surface datasets

  • Add a method like collapse_crop_types that can do this collapsing for discrete values like this irrigation method (probably taking the dominant type)

  • [Optional] Make any changes needed to support irrig_method when create_crop_landunit is false. Note that we currently have a workaround (see commits 21616fc and 1074092) that avoids array bounds violations when create_crop_landunit is false, but additional changes would be needed (and the workaround could possibly be backed out) to actually allow this field to be specified on the surface dataset when create_crop_landunit is false.

  • [Optional] Add this field to transient datasets, if there's a need to have this vary in time

@billsacks billsacks added the enhancement new capability or improved behavior of existing capability label Nov 9, 2018
@billsacks
Copy link
Member Author

billsacks commented Nov 14, 2018

Until we can rely on irrig_method always being on the surface dataset, I am adding an irrig_method_default namelist parameter. This will especially be useful for testing. See 31c56da

billsacks added a commit that referenced this issue Dec 3, 2018
New options for irrigation and crop fsat

Introduce three new options:

(1) Ability to withdraw irrigation water from groundwater if not enough
    water is available from rivers. This is controlled via new namelist
    flag, use_groundwater_irrigation. Water can be withdrawn from both
    the unconfined (from the soil column) and confined (from wa)
    aquifers.

(2) Irrigation method: sprinkler (above canopy) vs. drip (below
    canopy). This can be set on a per-crop and per-gridcell basis on the
    surface dataset, but out-of-the-box support for creating the
    necessary surface dataset field is not yet in place (see
    #565). For now, it can be controlled globally via a new
    namelist flag, irrig_method_default. The default is drip, which was
    what we were previously using implicitly.

(3) Set crop fsat to zero. This is controlled by a new namelist option,
    crop_fsat_equals_zero.

Default behavior is the same as before for all three options.

Also:

- If use_aquifer_layer is false (which is the default for CLM50), no
  longer reset wa_col every time step

- Adds indices to vector history files giving column, landunit and
  gridcell indices for each patch, etc. (Resolves #81:
  "Restart files are different for CLM when run over different number of
  tasks" (issue name is a misnomer of the remaining to-dos in that
  issue.)

- Writes 3d time-constant fields on first history file for all tapes,
  not just the first

- Small performance improvements to irrigation
slevis-lmwg added a commit to slevis-lmwg/ctsm that referenced this issue Dec 6, 2018
New options for irrigation and crop fsat

Introduce three new options:

(1) Ability to withdraw irrigation water from groundwater if not enough
    water is available from rivers. This is controlled via new namelist
    flag, use_groundwater_irrigation. Water can be withdrawn from both
    the unconfined (from the soil column) and confined (from wa)
    aquifers.

(2) Irrigation method: sprinkler (above canopy) vs. drip (below
    canopy). This can be set on a per-crop and per-gridcell basis on the
    surface dataset, but out-of-the-box support for creating the
    necessary surface dataset field is not yet in place (see
    ESCOMP#565). For now, it can be controlled globally via a new
    namelist flag, irrig_method_default. The default is drip, which was
    what we were previously using implicitly.

(3) Set crop fsat to zero. This is controlled by a new namelist option,
    crop_fsat_equals_zero.

Default behavior is the same as before for all three options.

Also:

- If use_aquifer_layer is false (which is the default for CLM50), no
  longer reset wa_col every time step

- Adds indices to vector history files giving column, landunit and
  gridcell indices for each patch, etc. (Resolves ESCOMP#81:
  "Restart files are different for CLM when run over different number of
  tasks" (issue name is a misnomer of the remaining to-dos in that
  issue.)

- Writes 3d time-constant fields on first history file for all tapes,
  not just the first

- Small performance improvements to irrigation
slevis-lmwg added a commit to slevis-lmwg/ctsm that referenced this issue Dec 24, 2018
New options for irrigation and crop fsat

Introduce three new options:

(1) Ability to withdraw irrigation water from groundwater if not enough
    water is available from rivers. This is controlled via new namelist
    flag, use_groundwater_irrigation. Water can be withdrawn from both
    the unconfined (from the soil column) and confined (from wa)
    aquifers.

(2) Irrigation method: sprinkler (above canopy) vs. drip (below
    canopy). This can be set on a per-crop and per-gridcell basis on the
    surface dataset, but out-of-the-box support for creating the
    necessary surface dataset field is not yet in place (see
    ESCOMP#565). For now, it can be controlled globally via a new
    namelist flag, irrig_method_default. The default is drip, which was
    what we were previously using implicitly.

(3) Set crop fsat to zero. This is controlled by a new namelist option,
    crop_fsat_equals_zero.

Default behavior is the same as before for all three options.

Also:

- If use_aquifer_layer is false (which is the default for CLM50), no
  longer reset wa_col every time step

- Adds indices to vector history files giving column, landunit and
  gridcell indices for each patch, etc. (Resolves ESCOMP#81:
  "Restart files are different for CLM when run over different number of
  tasks" (issue name is a misnomer of the remaining to-dos in that
  issue.)

- Writes 3d time-constant fields on first history file for all tapes,
  not just the first

- Small performance improvements to irrigation
@ekluzek ekluzek added this to the ctsm5.2.0 milestone Apr 27, 2022
@ekluzek ekluzek removed this from the ctsm5.2.0 milestone Mar 9, 2024
@ekluzek
Copy link
Collaborator

ekluzek commented Mar 9, 2024

@swensosc @samsrabin I think this is moot now that the approach we plan to take is to have irrigation type on streams files right (#2102)?

@samsrabin
Copy link
Collaborator

Yep, I agree.

@ekluzek ekluzek added the closed: wontfix We won't fix this issue, because it would be too difficult and/or isn't important enough to fix label Apr 10, 2024
@ekluzek
Copy link
Collaborator

ekluzek commented Apr 10, 2024

Closing since this is taken care of with the move of irrigation data to streams files.

@ekluzek ekluzek closed this as completed Apr 10, 2024
@samsrabin
Copy link
Collaborator

Reopening, as we haven't actually done that yet!

@samsrabin samsrabin reopened this Apr 10, 2024
@samsrabin
Copy link
Collaborator

Oh sorry, I see what you mean now. Sorry!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
closed: wontfix We won't fix this issue, because it would be too difficult and/or isn't important enough to fix enhancement new capability or improved behavior of existing capability
Projects
No open projects
Development

No branches or pull requests

3 participants