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

Fixed issues with base flow and added the Xinanjiang routine #63

Open
wants to merge 1 commit into
base: bmi-python
Choose a base branch
from

Conversation

qiyuel3
Copy link

@qiyuel3 qiyuel3 commented Aug 9, 2022

[Short description explaining the high-level reason for the pull request]
Base flow was not generated correctly because soil and groundwater reservoir fluxes were not updated correctly. The current python version of CFE does not have the Xinanjiang routine and some of the variables in the newest C version of CFE. This pull request tries to fix the issue with base flow simulation and updates the python-version CFE to have identical functionalities as the newest C-version CFE.

Additions

  1. added the Xinanjiang surface partitioning routine adapted from the C version of CFE

  2. added a variable in the configuration files and bmi_cfe.py to define which surface partitioning routine to use

Changes

  1. fixed the issue with updating the flow from soil to gw reservoir and the flow from gw to channel.
  • After soil reservoir flux calculation, primary_flux_m and secondary_flux_m should be used to update percolation and lateral flux instead of primary_flux and secondary_flux
  • After groundwater reservoir flux calculation, primary_flux_m should be used to update the variable flux_from_deep_gw_to_chan_m
  1. minor editing of the codes to exactly mirror the newest C version of CFE
  • switched the order of soil storage deficit calculation and ET from soil routine, so soil storage deficit is calculated after soil ET.
  • separated ET from rain and ET from soil into separate variables
  • added a variable: 'reduced_potential_et_m_per_timestep'
  1. fixed the unit description of discharge and surface runoff.

Testing

  1. used the forcing and configuration file in this repository to test normal CFE simulations
  2. did a unit test for the Schaake routine (using cat_58_config_cfe.json)
  3. did a unit test for the Xinanjiang routine (using cat_58_config_cfe_x.json)
  • all tests are performed in the jupyter notebook test_cfe_bmi.ipynb

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.

None yet

1 participant