TopoFlow Release Notes

From CSDMS

TopoFlow 1.5 beta Release Notes (December 14, 2007)

New Features in TopoFlow 1.5

The major new features in TopoFlow version 1.5 are:

  1. New methods for modeling infiltration, including (a) the Smith-Parlange 3-parameter method, (b) the 1D Richards' equation method (which can compute a separate soil-moisture profile for every grid cell in the DEM), and (c) an improved improved version of the Green-Ampt (single-event) method. The Richards' equation method uses the transitional Brooks-Corey approach described in R.E. Smith's book called Infiltration Theory for Hydrologic Applications for the two required soil characteristic functions.
  2. New options for modeling the Channel Flow process, including both the diffusive and dynamic wave methods (in addition to kinematic), with the option of computing frictional losses via Manning's formula or the logarithmic law of the wall. Neither the diffusive nor dynamic wave methods has been extensively tested and volunteers for this are needed.
  3. A more flexible "General data types" method for specifying precipitation data, including the option to specify the rainrates as a grid sequence in the RTS file format and corresponding durations as a time series. Long periods with no rain can be represented as a single frame in the RTS file with all zeros and a corresponding long duration in the time series.
  4. The addition of a menu bar at the top of the wizard interface that allows more flexible workflows. It also includes a Create menu with a variety of pre-processing tools, a Plot menu and a Help menu. For example, this allows you to use pre-processing tools in the Create menu while you are still in the middle of setting up a model run.
  5. A new, HTML-based help system, with a Tutorial in the Help menu and context-specific Help buttons in many of the dialogs.
  6. The ability to save all parameter settings to a text file or load them from a previously saved text file by choosing Save Input Vars or Load Input Vars from the File menu.
  7. A shortwave radiation calculator in the Create menu. This routine creates an RTS file of clear-sky solar radiation flux, Qnet_SW, (shortwave radiation) that is used for the energy-balance methods of Snowmelt and Evaporation. Direct, diffuse and back- scattered radiation fluxes are all modeled. Properties of the atmosphere such as air temperature, relative humidity and dust attenuation are used as well as surface/topographic properties such as slope angle, aspect angle and surface albedo. The approach followed here closely follows the one outlined in S.L Dingman's book, Physical Hydrology. However, instantaneous vs. day-integrated radiation fluxes are used and the optical air mass is modeled using the widely used method of Kasten and Young (1989). For more information click on the Help button in the dialog.
  8. A longwave radiation calculator in the Create menu. This routine creates an RTS file of net longwave radiation flux, Qnet_LW, that is used for the energy-balance methods of Snowmelt and Evaporation. This is computed using the Stefan-Boltzman law. The main references for this routine are S.L. Dingman's book, Physical Hydrology and Glen Liston's EnBal paper. For more information click on the Help button in the dialog.
  9. Two pre-processing tools in the Create menu that allow channel geometry (e.g. bottom width, bank angle, and bed roughness) to be parameterized using a grid of contributing areas or a grid of Horton-Strahler orders. For more information click on the Help button in the dialog.
  10. A data interpolation tool in the Create menu for creating time-indexed grid stacks from time series data measured at 3 or more stations, via the inverse distance method. Contributed by Bob Bolton. For more information click on the Help button in the dialog.
  11. An "Intial Depth" tool in the Create menu for computing a grid of steady-state "normal depths" from slopes, channel geometry, bed roughness and a specified "baseflow recharge" rate. The resulting grid can be used to specify initial flow depth in the input variable dialogs for the Channel Flow process. For more information click on the Help button in the dialog.
  12. A "Profile-smoothed DEM tool" in the Create menu. This routine creates a "profile-smoothed" DEM from an input DEM. The elevations in the new DEM should be close to those in the original DEM, but there will no longer be abrupt stair-step features and flats along profiles within which slopes are zero (due to poor vertical resolution and integer-rounding). Instead the elevations and slopes will decrease smoothly along every channel streamline while remaining close to the original elevations. For more information click on the Help button in the dialog.
  13. A new tool in the Create menu for simulating space-time rainfall as a multifractal stochastic process, contributed by by Thomas Over.
  14. Introduced a new naming convention for output files. Default filenames will always consist of the run prefix followed by a compound extension that indicates the dimensionality of the data and an abbreviation of the output variable's name. For example, computed discharge data will have the default filename "_0D-Q.txt" for time series data (at a monitored grid cell) and "_2D-Q.rts" for data stored as a grid sequence in the (binary) RTS file format. For subsurface processes such as infiltration, values at the surface (e.g. infiltration rate, v0) would similarly be stored as "_0D-v0.txt" and "_2D-v0.rts" for a time series or grid sequence. However, for subsurface processes there is now the option of saving the time evolution of a variable like soil moisture as a set of values at different depths below the surface that change with time. The default filename for a soil-moisture profile that evolves in time is "_1D-q.txt". The default filename for a "data cube" of subsurface soil moisture values that evolve in time is "_3D-q.txt".
  15. Added the ability to stop at any time by pressing any key. TopoFlow now checks every 2 seconds or so whether a key has been pressed and asks if you really want to stop.
  16. Added a small window in the Output panel that plots the hydrograph dynamically during a model run.
  17. Added a Courant condition checker that attempts to verify that the time step a user enters for a given process is small enough to achieve numerical stability.


Improvements and Bug Fixes in TopoFlow 1.5

The major changes in this release are:

  1. An improved and more general dialog for entering parameters for the subsurface flow method called "Darcy's Law, surface-parallel layers".
  2. Fixed a bug with computing the cold content, Qcc, in the Energy Balance method for Snowmelt. Renamed Qcc to Ecc (because of units, cold content is not a flux). Ecc can also be saved as an output option now.
  3. Extended the energy-balance routines so they now accept both Qnet_SW and Qnet_LW arguments. If only a total Qnet value is available, then you can enter it as Qnet_SW and set Qnet_LW to zero.
  4. Made some pretty extensive changes in "route.pro" so that now the "function" files (e.g. hydrograph for monitored pixels) are saved continuously instead of waiting until the end of the run, as is done with the output RTS files. The big advantage of this is that is was very difficult to predict how big arrays like Q_outlet needed to be before a run with some of the stopping options and this often led to a crash. With the new approach, this will never again be a problem. Also moved some things into separate routines to clean up the code, such as: Check_Output_Options, Open_New_RTS_Files, Write_Pixel_File_Header, Open_New_Pixel_Files, Save_Pixel_Values, Save_Grid_Values, and Close_All_Output_Files.
  5. Set things up so that precip is always entered in more natural units of [mm/hr] now (vs. m/s). Users may need to convert some of their input files to these units. Internally, units are converted to [m/s] before use.
  6. Fixed a big bug in the the Dynamic Wave option, but could still use more testing.
  7. Updated input variable dialogs throughout TopoFlow so that virtually any variable can have any of the supported types of Scalar, Time Series, Grid or Grid Sequence. For example, the coefficient, c0, in the Degree-Day method for the Snowmelt process can now have any type and provides greater modeling flexibility.
  8. Collected "meteorological variables" such as T_air, T_surf, RH (relative humidity), rho_air and many more into a single C-like structure called "met_vars" that is passed as needed. Updated all affected routines, including many in "getvars.pro". Removed these vars from the snow_vars and ET_var structures, etc.
  9. Added "LIB_strsplit.pro" to the set of code files and to COMPILE_TF. The STRSPLIT routine is used when loading vars from a file and is part of the IDL user library; it is not built into IDL.
  10. Added "Close All Open Files" to the File menu. This mainly provides developers with a simple way to check whether all files are closed correctly, since it also lists which files, if any, were closed.
  11. Now TopoFlow checks for NaNs in the grid of infiltration rates (called IN in "route.pro") and stops with an error message if any are found.
  12. Reporting in the log window now happens every 1 or 2 seconds of real time (using IDL's SYSTIME function) instead of based on how many time steps have elapsed, since the latter depends on which methods are used for the various processes. SYSTIME is now used also to allow users to quit at any time by pressing a key.
  13. Added the ability to save computed vars such as e_air, e_surf, Ecc, and h_swe (vapor pressures, cold content, and snow water equivalent depth) in the output options for the Snowmelt process.
  14. Made many changes to routines whose names begin with "Initialize_" in route.pro.
  15. Added Update_Mass_Totals, Initialize_Precip_Vars, Check_Infiltration & Check_Steady_State in "route.pro".
  16. Checked key functions in "route.pro" called Precipitation, Snowmelt, Evaporation and Infiltration.
  17. At the beginning of a new model run, TopoFlow now automatically checks the files in the working directory to find the lowest case number that has not been used and uses this to create the default run prefix.