Releases: ESCOMP/mizuRoute
cesm-coupling.n03_v2.2.0
Summary
Answer changes from the previous tag
Floodplain option
new control variable is <floodplain>
= T
or F
Floodplain is represented with very gentle slope (default 1:1000), extending from the top of side wall of the channel. The channel uses a bankfull depth. Currently bankfull depth is computed based on upstream area for each reach. This default method may change in the future. A user is encouraged to come up with the way to estimate the bankfull depth (and width) outside mizuRoute.
Regardless of whether floodplain is on or off, the method to compute celerity, diffusivity use the section 3.3 in Beg M et al., 2022. This is primary cause of the answer change from the previous version, which use the assumption of "wide" rectangular channel width, that simplifies the flow area computation. Also, from the current version, the channel geometry type can be rectangular (default) or trapezoidal (by providing side wall slope as input parameter).
What's Changed
allow a generic name when using only one routing method
- implement generic output name for routing method specific variables by @nmizukami in #482
Update external handling
- Adding git-fleximod by @nmizukami in #485
- remove manage_externals by @jedwards4b in #468
For CESM coupling
- Adding datetime in rpointer file with backward compatibility by @nmizukami in #486
routing with floodplain
- Including floodplain by @nmizukami in #470
- Fixing overflow error coming from default large bankfull depth by @nmizukami in #493
Cleanup
- remove many mpi_barrier by @nmizukami in #494
- sync mpi task before processing tmp file by @nmizukami in #487
- updated file open routing by @nmizukami in #491
New Contributors
- @jedwards4b made their first contribution in #468
Full Changelog: cesm-coupling.n02_v2.1.4-standalone...cesm-coupling.n03_v2.2.0
cesm-coupling.n02_v2.1.4-standalone
Summary
No answer changes from the previous tag
A few enhancements were included
- User can specify minimum reach length for routing. For reach below this threshold, inflow is passed as outflow and lateral flow is added to that as normal.
- User can input lateral flow at the top of reach ONLY for headwater catchments as a option, so that reach routing happens.
- User can control History file time stamp can be control by specify where in the time step is used (0: start of time step, 86400: end of time step if time step is daily)
- User can specify time step convention in runoff (for now, start or end)
- runoff input specification in control file uses just file name with wild card (if multiple the netCDFs exist).
- Hanasaki (H06) reservoir scheme is enable
What's Changed
enhancement
- Enabling reach routing at headwater HRUs by @nmizukami in #467
- Pass through option and river length check by @nmizukami in #472
- history file time stamp flexibility by @nmizukami in #475
- Change in stand-alone runoff (and water management) input specification in control file by @nmizukami in #479
**Enabling Hanasaki reservoir **
- write lake parameters only for a lake id specified in control file in a log file by @nmizukami in #477
- H06 default parameters renamed by @nmizukami in #478
cleaning
- no need to use read function to get string by @nmizukami in #474
- typo by @nmizukami in #480
Full Changelog: cesm-coupling.n02_v2.1.3...cesm-coupling.n02_v2.1.4-standalone
cesm-coupling.n02_v2.1.3
Summary
No answer changes from the previous tag
A few enhancements were included
- hru id in vector runoff input can be long integer.
- inflow for each reach can be output in history file
- For cesm-coupling, the other routing methods can be used, in addition to IRF routing.
What's Changed
makefile cleanup
- Clean up and Makefile update by @nmizukami in #459
- makefile cleanups by @nmizukami in #461
- Making intel-oneAPI compiler work by @nmizukami in #464
cleanup
- PIO sync for potentially better robustness for gnu/cray-mpich and a few cleanups by @nmizukami in #453
New functions
- Adding parameterized floodplain by @nmizukami in #449 - floodplain effect is not implemented yet
- Allow long integer HRU id for vector runoff input by @nmizukami in #457
- Allow more flexible time stamp in forcing input (start, end or middle of time step) by @nmizukami in #460 - require it to be specified in control file
- Add upstream inflow in history output by @nmizukami in #462 - require it to be specified in control file
CESM-coupling
- enabling to use the other routing methods than IRF by @nmizukami in #448
- mizuRoute_control.py change required by @nmizukami in #451
Full Changelog: cesm-coupling.n02_v2.1.2...cesm-coupling.n02_v2.1.3
cesm-coupling.n02_v2.1.2
What's Changed
Model physics
- capacity to scale or offset the inputs (runoff, evaporation, and precipitation) by @ShervanGharari in #412
- connect lake module to the other routing methods by @nmizukami in #421
- connect lake module to kwt routing routine by @nmizukami in #427
- Adding a few channel properties and water take option for other routing by @nmizukami in #428
- Enable to run at user specified routing time step rather than using coupling_frequency by @nmizukami in #429
- IRF water take by @nmizukami in #430
Bugfixes
- Fix a restart issue for a single core by @nmizukami in #415
- set runoff depth unit correctly in meta by @nmizukami in #422
- Fix error in writing history_file variable for gauge-only history file in restart file by @nmizukami in #423
- Fixed upstream reach detection for cesm-coupling branch by @nmizukami in #441
Miscellaneous improvement
- Refactoring related to PIO decomposition initialization by @nmizukami in #431
Documentation
- Fixing readthedoc setup by @nmizukami in #435
- new readthedoc requirement by @nmizukami in #433
- conf.py path fixed in .readthedoc.yaml by @nmizukami in #434
- cheyenne build readme update by @nmizukami in #442
- Remove testmod fixes for ccs_config by @ekluzek in #416
Library updates
- Externals update by @nmizukami in #432
- update manage_externals version by @nmizukami in #440
Full Changelog: cesm-coupling.n01_v2.1.0...cesm-coupling.n02_v2.1.2
cesm-coupling.n01_v2.1.0
What's Changed
CTSM coupling
- Temporary implementation of the array to export from rof to lnd by @nmizukami in #274
- Enabling water abstraction with Irrigation demand by @nmizukami in #288
- exporting volume (volr) to land model and handling negative qgwl by @nmizukami in #297
- Direct_to_outlet option for negative flow handling by @nmizukami in #313, #315
- Add a custom grid option for cesm-coupling by @ekluzek in #345
- Add HDMA lake ntopo file settings by @ekluzek in #329
- Add more lake options to the cesm-coupling control file by @ekluzek in #335
- Updates on sample control file for cesm-coupling by @nmizukami in #312
CESM system testing
- CTSM-mizuRoute test config update by @nmizukami in #258
- Fix rpointer file IO by @nmizukami in #269
- Add some lake tests to the test list update lake dataset and fix some coupled issues by @ekluzek in #371
- Some fixes so can run on izumi (including nag compilier) by @ekluzek in #391
Time management change
- independent simulation time-step and forcing time-step by @nmizukami in #336
- Including t_bound variable in a history file and resulting changes by @nmizukami in #394
- modified datetime class and keep track of time in second (not day) for both forcing and simulation time by @nmizukami in #398, #402
Model physics
- Doll lake formulation improvement by @ShervanGharari in #331.
- implementation of water balance computation for reach and drainage area by @nmizukami in #318, #319, #326
- reach/lake water balance error check and minor fix/cleanup in lake and irf routing by @nmizukami in #361
- water can be abstracted from residual reach volume and outflow by @nmizukami in #362
- enabling water-take and water-injection for other routing methods by @nmizukami in #311
- default minimum discharge by @nmizukami in #321
User specified history output frequency
- User specified history write frequency by @nmizukami in #353
- Reading aggregated history variables from restart netcdf by @nmizukami in #364
Gauge location output capability
- Incorporating gage meta (ascii) into output by @nmizukami in #279
- history file name convention for gauge only output by @nmizukami in #393
Continue run capability
- initial implementation for continuous_run by @nmizukami in #260
- history and restart file name control by @nmizukami in #261
- Enabling opening of the last history file for continue run by @nmizukami in #271
Run with multiple routing methods
- Running with multiple routing schemes by @nmizukami in #264
- Added accumRunoff as a part of routing scheme options with routOpt=0 by @nmizukami in #265
- Enabled reach volume IO for KW, MC and DW routings from/to restart file by @nmizukami in #317
Code style, cleanup
- Clean-up temporal arrays for mpi scattering by @nmizukami in #268
- Cleaning by @nmizukami in #278
- fixed wrong variable names - cmessage and message by @nmizukami in #322
- rename variable name by @nmizukami in #320
- use select type to compact the generic routine by @nmizukami in #373
- use abstract route class by @nmizukami in #405
- miscellaneous changes by @nmizukami in #272
- pio resource cleanup by @nmizukami in #287
- Minor naming changes by @nmizukami in #316
- default value for continue_run parameter by @nmizukami in #284
- subset history file writing and improving history writing efficiency by @nmizukami in #286
- history file name change by @nmizukami in #401
Miscellaneous improvement
- Add number of MPI tasks to restart file to ensure they are the same when reading by @ekluzek in #251
- Abort if a variable in control file include TAB by @nmizukami in #314
- Write git information in history file global attributes by @nmizukami in #363, #370
Bugfixes
- Fixed the restart error when single core is used. by @nmizukami in #282
- bugfixes in init and run routines for ctsm-coupling by @nmizukami in #360
- cesm-coupling bugfix by @nmizukami in #374
- Fix single core run error in cesm-coupling mode. by @nmizukami in #379
- Fix cesm restarting: by @nmizukami in #381
- Fix lake volume initialization(use maximum storage) by @nmizukami in #408
- move fileVar (variable I/O control) changes in a separate subroutine by @nmizukami in #333
Documentation
- Readthedoc updates by @nmizukami in #365, #366
- change testCase data link by @nmizukami in #367
Full Changelog: cesm-coupling.n00_v2.0.1...cesm-coupling.n01_v2.1.0
version 1.2.3
What's Changed
Bugfix (science changes):
- Fixed Diffusive wave downstream boundary condition by @nmizukami in #303
- Fixed default value for newFileFrequency by @nmizukami in #325
- Upstream reach detection using goodBas (upstream reach connected with valid hru area) by @nmizukami in #346
- detect maximum unit-hydrograph size for restart writing by @nmizukami in #341
- Flow adjustment to ensure river volume is always positive or zero by @nmizukami in #348
New features:
- csv reading capability with new csv object by @nmizukami in #295
- reading water take and observed flow by @nmizukami in #298, #305
- capability of water abstraction/injection during routing by @nmizukami in #300
- Add reach volume in restart state file and history file (for all the routing methods) by @nmizukami in #299, @nmizukami in #347
- Separate runoff input time step and simulation time step by @nmizukami in #340
- Direct insertion of observed discharge at gauge points for user specified period by @nmizukami in #328, #302, @nmizukami in #348, #354, @nmizukami in #357,
- Added reach volume for history and restart files by @nmizukami in #347
Minor updates (cleanup, doc updates, non-science etc.):
- README for building instruction by @nmizukami in #350
- minor update: readthedoc link update by @nmizukami in #294
- Code style, variable name cleanup by @nmizukami in #304 #342
- including git information (version, branch, hash) in history file global attributes @nmizukami in #351
Full Changelog: v1.2.2...v1.2.3
v1.2.2
What's Changed
Bugfix (science changes):
- restart error for KWT without overland routing case by @nmizukami in #197
- revise Gamma distribution for overland routing by @h294liu in #190
New features:
- Cold start specification ("coldstart" or "none") by @nmizukami in #194
- Implementing KW, DW and MC routing by @nmizukami in #232
- musking-cunge routing implementation by @nmizukami in #233
- Completed kinematic wave routing implementation by @nmizukami in #236
- Diffusive wave routing implementation by @nmizukami in #241
- minor fixes MC and KW routines by @nmizukami in #237
- Output with multiple active routing options by @nmizukami in #263
- Added accumRunoff as a part of routing scheme options with routOpt=0 by @nmizukami in #290
- history file output option improvement by @nmizukami in #257
- Restart file content change - time information by @nmizukami in #195, #199
Minor updates (cleanup, doc updates, non-science etc.):
- restart and history frequency specification by @nmizukami in #291
- Cleanups by @nmizukami in #198, #249,
- Updated documented by @nmizukami in #292
- Updated .gitignore by @nmizukami in #242
- runoff fillvalue issue by @nmizukami in #165
New Contributors
Full Changelog: v1.2.1...v1.2.2
Hybrid parallel, Lake module, and CTSM coupling
What's Changed
Lake routine implementation
- Feature/mpi pio read2ndfile by @ShervanGharari in #145
- Cesm coupling by @nmizukami in #155
- Feature/mpi pio by @ShervanGharari in #158
- Feature/mpi pio by @ShervanGharari in #162
- implementing lake module by @ShervanGharari in #124
- feature/mpi-pio.lake_update_Nov by @ShervanGharari in #159
- implementation of multiple lake model, their parameters and past time step simulation for lakes by @ShervanGharari in #168
- Implementing Hanasaki with memory by @ShervanGharari in #182
- change integer to logical for flag by @nmizukami in #193
- big merges lake routines (mainly) from feature/mpi-pio by @nmizukami in #206
- Feature/mpi pio.hype1 by @ShervanGharari in #225
- Refine flag control for lake simulation by @ShervanGharari in #234
- lake type flags to be read in read_streamSeg from river network data by @ShervanGharari in #235
New routing methods and bugfixes
- Kinematic wave Euler options by @nmizukami in #174
- Adding muskingum-cunge and diffusive wave routing methods by @nmizukami in #244
- minor dw_route changes by @nmizukami in #247
- accum_runoff routine cleanup by @nmizukami in #204
- revise Gamma distribution in develop branch by @nmizukami in #205
- kinematic wave tracking by @nmizukami in #217
- Simplifying way of handling total upstream inflow information in irf by @nmizukami in #178
CESM coupling
- A couple simple fixes by @ekluzek in #146
- Fixed issue #152 - control file update through user_ctl_mizuRoute by @nmizukami in #156
- Added conus HDMA network variable setup in buildnml by @nmizukami in #160
- Added global MERIT-Hydro network variable setup in buildnml by @nmizukami in #171
- Fixed an issue on rpointer writing by @nmizukami in #176
- Use create subroutine to define new history file by @nmizukami in #180
- Added CONUS MERIT-Hydro network variable setup in buildnml @nmizukami in #202
- Fix history archival regular expression by @nmizukami in #179
- Component name for mizuRoute must all be in lowercase by @nmizukami in #181
- Sample control file for ctsm-mizuroute by @nmizukami in #185
- Change based on the latest CTSM version by @nmizukami in #200
- time management in coupler interface code by @nmizukami in #211
- Update on testlist by @nmizukami in #229
- Modification on test cases from Erik and case insensitive in control file by @nmizukami in #240
I/O
- mizuRoute history file name fix by @nmizukami in #123
- Feature/mpi pio restart by @nmizukami in #173
- small refactoring history file output module by @nmizukami in #175
- Temporary fix on history file frequency by @nmizukami in #177
- Adding netcdf sync by @nmizukami in #201
- Resolve pio iosystem confusion causing PIO netcdf writing by @nmizukami in #203
style, comment changes, minor bugfixes
- just one space that I contributed! by @ShervanGharari in #163
- Cleanup and bugfix by @nmizukami in #166
- pfafstetter code handling by @nmizukami in #172
- minor cleanups by @nmizukami in #187
- style and comment changes by @nmizukami in #207
- remove broadcasting variables by @nmizukami in #208
- minor style changes by @nmizukami in #213
- small cleanups by @nmizukami in #215
- time dimension in restart files by @nmizukami in #214
- minor changes in domain decomposition routine by @nmizukami in #230
- minor cleanup by @nmizukami in #245
- one bugfix and one small change to remove warning when compling with ifort by @nmizukami in #246
- small corrections by @nmizukami in #250
Time management (stand-alone)
- Adding datetime data class and modification on state data in write_restart_pio.f90 by @nmizukami in #191
- User-defined constructor for datatime derived type by @nmizukami in #209
- Use datetime object throughout the codes by @nmizukami in #210
- made input checks work for sub-daily timesteps; cleaned up error msg by @wknoben in #222
Miscellaneous
- gitignore update by @nmizukami in #231
- remove user specific statement by @nmizukami in #192
New Contributors
v1.2.1
Enhancements:
- Large integer is allowed for runoff HRU ID.
- Improved netcdf I/O performance.
- Robust mapping file handling. debug option to mapping file check.
- Performance improvement for IRF routine/flow_accumulation routines.
Bugfixes:
- ixPrint for on-screen debug printing is now working with format.
- error in basin unit hydrograph routing at hourly time steps
- error in reach unit hydrograph construction. make sure sum of unit hydrograph is one.
- time utility routine - error in julian day computation, error in parsing time string.
- basin unit hydrograph restart reading.
New features:
- a simple water abstraction/injection capability for IRF and KWT routines
- restart write options - Annual, monthly, daily, Last, Specified, and Never. timing in restart file name indicates restart timing not drop-off timing.
- Modified control specification: added single history file output option
- New control specification for output netcdf options (classic, 64bit_offset, netcdf4). default netcdf option: netcdf4
- New control specification for calendar, time unit, and fillvalue in runoff netcdf
- output file name definition - case_name.h.yyyy-mm-dd-sec.nc (history file) and case_name.r.yyyy-mm-dd-sec.nc (restart file)
Others:
- various minor code refactoring and cleaning
JAMES2021
This is snapshot of mpi version of mizuRoute code, used for publication:
Mizukami et al., 2021: A vector-based river routing model for Earth System Models: Parallelization and global applications, Journal of Advances in Modeling Earth Systems.