In the file names on the main window the gray color indicating changes is now removed when the changes are saved to a new file.
The context help popup on DURATN now clarifies that the value shown is rounded down to the next even value when used.
- Fixed a serious bug in using the Run-ContinueRun command. Changes in many parameters prior to a ContinueRun appeared changed in the parameter window but were not changed in code, leading to incorrect results. I have changed the code so that all parameters except Soil Parameters are updated before ContinueRun. Changing soil parameters before ContinueRun produces an error message. I apologize for any wrong results that have been created by this bug.
- Fixed a bug in the value of DOY (day of the year) by removing the = sign in the statement "If fnleap And argmm% <= 2 Then" in function gfngetdoy. This error caused all Februaries in leap years to have DOY one day too high, causing errors in potential solar radiation and day length that proliferated into various results. Errors appear generally to be less than a millimeter. Users can test the error by running Version 4.6 and earlier with Check data on and then Rerunning with Check Data off and comparing results.
- Changed the method for preventing soil evaporation (SLVP) from RSSB = 0 to RSSA = 0 (actually <0.0001). This allows RSSB=0 to mean that the soil evaporation resistance is always equal to RSSA.
- Fixed failure to read CSV Data and Precip Interval files when four-digit year is used.
- Prevented editing of filename boxes on main window.
- Changed my address in Help-About.
- A few other minor text changes.
- Corrected equation 34 in PET-SRSC documentation, which has been incorrect since September 2010; the first Cr in the denominator should be outside the ln term.
- Changed Automation from suggesting VTask Studio software to AutoIt, which is free and easier to use.
- Modified documentation to replace the Introduction section by the BROOK90 Home Page.
- Modified documentation about setting RSSA and RSSB to zero.
- Clarified use of UA and UW and the weather station parameters
- Updated the Flow chart to show green labels as in the program.
- Fixed exponent of F in first WNDADJ equation.
- Slight change in SUN-AVAILEN to clarify use of WTOMJ.
Hosting and Address Change - November 21, 2013
Because I have moved my residence, I have had to change where my web site is hosted.
Brook90 links pointing to roadrunner.com will no longer work. Please go to ecoshift.net instead. Email me at if you find problems.
Minor fixes - October 4, 2013
Fixed wrong version number in program.
Changed first page of Documentation to remove version numbers and dates, and changed download file
names to exclude sub-version number, so I don't have to change version numbers and dates in so
BROOK90 Version 4.6 and Documentation - September 23, 2013
- The PET section now describes how to get a PET estimate from BROOK90. Thanks to Stefan Plötner.
- The WAT section shows how the downslope flow (DSFL) algorithm is over-parameterized
and how DSFL can be used to produce an intermediate recession when groundwater storage exists.
Thanks to Nympha Branzuela for instigating this analysis.
- Comments have been added about the validity of the assumptions made by the model when
solar radiation, vapor pressure, or wind data are missing.
- Major revisions have been made to the Introduction, Using, and B90 sections. Minor revisions in other sections.
- Updated with Version 4.5 and 4.6 changes.
- Fixed some internal links that might not have worked in some browsers.
- INIDAYS, RUNDAYS, IDAY, and NDAYS are all made long integer so run length can exceed
32767 days. Thanks to Christina Delaney.
- Many changes have been made in Help and context help, especially regarding use of DENSEF,
DSFL parameters, input data, and definitions of PINT and PTRAN output.
- Help-InitialValues has been merged into Help-Parameters.
- The CSS style sheet has been modified to set fixed font sizes in pixels, so all
HTML should look the same in all browsers.
- The Version descriptions on the web site and in documentation have been clarified.
- Clarified that data files require CRLF as end-of-line; Unix's LF only will not work.
BROOK90 Version 4.5 - February 21, 2012
Various improvements in the user interface.
- Main Screen and Input
- Main window enlarged to show longer pathnames.
- Double-click on data and parameter files to reselect them.
- The shortcuts Ctl-F4 for File-Flow and Ctl-F6 for File-Soil did not work for some unknown reason.
They have been changed to Ctl-Sh-F3 and Ctl-Sh-F5 respectively.
- Fonts in tables have been changed from Consolas to Courier New because Consolas
looks bad if ClearType is off.
- Added a check for TMAX less than TMIN in data files.
- All output years are now four-digit instead of two-digit, thanks to Huaxia Yao.
Year in input files can be either two-digit (1921-2020) or four-digit.
- The maximum number of Run-time Graphs has been raised from 25 to 100, also thanks to Huaxia Yao.
- Y-axis scale in Run-time Graphs has been increased from 500 to 600 to allow for greater SWAT.
- FLOW-MESFL changed to a bar graph.
- Soil Parameters
- KF is now three decimal places when less than 10 mm/d.
- KF is now allowed to be as low as 0.01 mm/d, thanks to Christina Delaney.
- NLAYER has been moved to the upper right of the Soil Parameter form so it's more obvious.
- Soil Parameters display has been changed to 7 character columns to fix alignment with column heads.
- PSIG (calculated) in Soil Parameters is changed to two decimal places.
- Grid lines in the KPT graph are changed to dashed, and the PSIF line to solid.
- All "green" help items on forms now show a question mark on mouseover.
- Fixed missing lines in Version 4.4g Edit-Flow help on QDEPTH.
- Help has been fixed and improved in several ways.
- Web Page and Documentation
- Corresponding sections of the main web page and the Introduction and Using documentation pages have been made the same.
64-bit Windows - February 2, 2011
Main page and documentation modified to describe required placement and registration of comdlg32.ocx for 64-bit versions of Windows. Thanks to Eloy Benito Reyes for bringing this up.
BROOK90 Version 4.4g - November 17, 2010
- Many improvements in context and menu Help.
- Fonts changed from the obsolete MSSanSerif and FixedSys to Consolas (tables) and Verdana (text).
If these fonts are not on your (older) system, you may have to install them to avoid truncations
with substitute fonts.
- The download file b9043data.zip has been replaced by b90v44data.zip, which includes a number of data
and parameter files as described in the revised documentation section "Using the Model".
- Output View limit has been raised from 30K to 64K.
Documentation - November 17, 2010
- The KPT section has been rewritten to clarify the field capacity issue.
- Various other improvements have been made.
Documentation - October 7, 2010
- Introduction completely revised.
- Minor corrections in KPT and WAT.
- Fixed error in which "Run-time Graph" did not display in "Using the Model".
- Flow chart now opens in a new tab/window.
BROOK90 Version 4.4f - September 7, 2010
- Reorganized and revised web pages.
- In Help-About, the BROOK90 URL is changed to www.ecoshift.net, my own domain name.
- Fixed a long-standing font problem in Help-DOY Table.
- In documentation, eliminated Symbol font, so Greek letters should now display correctly in all browsers.
Also changed multi-line equations to images so they always display the same.
BROOK90 Version 4.4e - December 14, 2004
BROOK90 now freeware.
Version 4.4d - June 23, 2002
- Help menu modified to remove two level structure.
- Help and documentation modified to clarify how to turn off flow paths.
- A documentation error existing since version 3.1 has been fixed under FRSS
in Section PET. Soil evaporation is set to zero when
RSSB = 0, not when RSSA = 0.
Version 4.4c - May 2, 2002
Change in recommended KF value. Previously I have suggested a hydraulic
conductivity of 2 mm/d for field capacity. My recent research suggests this
is somewhat low and that a value of 5 mm/d is better(see the end of the Field
Capacity part of the KPT section of documentation.
B90 Help and HTML documentation have been changed to reflect this.
Minor bugs fixed:
The variables SWATI and SWAT have been made double precision to prevent rounding
error stopping a run with too large a BALERR in some situations when DTIMAX
Fixed excessive KF rounding that caused, for example, an input value of 0.87
to be saved as 0.90.
Prevented B90 from running even when some files were not selected.
Fixed lack of output from last precip interval in day when using only 1 day
Iterations are now updated every 200 iterations or every precip interval.
Spaces can now be input on the Edit-Soil Parameters screen.
Initial PSIM values are now saved to 3 decimal places instead of one.
Version 4.4b - March 1, 2002
MESFL bug fixed. A recoding error in Version 4.4 and 4.4a produced
zero MESFL when CheckData was turned off. EVAL thus failed to run.
WETINF is now forced to be > b/(b+1) and <= 0.999 as required
by the Clapp-Hornberger algorithm.
Input solar radiation (SOLRAD) is now prevented from being larger
than potential insolation (I0HDAY).
Cancel button. A cancel button has been added to parameter screens
to ensure quitting without changes or lockup.
Help modified slightly in various places.
Version 4.4a - January 22, 2002
KPT Graph - bug fixed.
Version 4.4 - October 18, 2001
WETINF message fixed. The annoyingly persistent warning message about
WETINF when BEXP exceeds 11.5 has been fixed in Version 4.4. The version
number has not been changed. The program now tests for WETINF greater than
BEXP/(1+BEXP) and resets the value if necessary.
Version 4.4 - October 4, 2001
Interlayer K Weighting and Gradient -
All BROOK90 versions through 3.3 and 4.3 used interpolated interlayer
conductivities and potential gradients based on layer thickness in subroutine
VERT. The original equations produced too little flow with a thick wet layer
over a thin dry one. The fix attempted in Versions 3.3 and 4.2/4.3 reversed
the problem and gave too little flow with a thin wet layer over a thick dry
one. The solution seems to be to treat the interface as if it cannot "see"
the thickness of a thick layer. So the equations now are:
KKMEANi = exp((ln(KKi) + ln(KKi+1)) / 2)
GRADi = (PSITi - PSITi+1) / RMIN(THICKi,
Results do not differ among versions for simulations in which all layers
have the same thickness. Differences are generally small unless both layer
thickness and dryness differ greatly.
International awareness - comma as decimal. I have recoded parts of
BROOK90 so it should now responding properly to
changing Windows-ControlPanel-RegionalSettings. The earlier incomplete test
for a comma as decimal has been improved. Data files now may have either
comma or period as the decimal point with space separators, or may be a .CSV
file with period as decimal and comma as separator. Both saved and printed
output conform to the Windows RegionalSetting. However, parameter files
must always include a comma separator after the parameter name and decimal
periods, as in previous versions. (Thanks to Ute Assmann for raising this issue.)
Output-Append added. A new option "Append" has been added to the Output
menu for each interval. This appends the current output to any existing file,
whereas "Save" requires creation of a new file. "Append" asks whether the header
line should be included or not.
Font selection. Omitted appearance of SelectPrinterFont window on
startup when CourierNew 10 was not available. Initial font and size is thus
the system default. The printer font is now only tested when a print is
requested. (Thanks to Ute Assmann)
Minor errors fixed.
Incorrect tab order in the Canopy window
Incorrect version number in Help-About
Truncated help message for QFPAR
Parameter file SaveAs now shows what kind of file is being saved
A blank or decimal value in InitializeDays or OutputDays will no longer crash
Added full pathname to "Save Run Info".
Documentation Corrections - July 21, 2001
- On page B90-6 "Darcy-Richards equation" should be "Darcy equation".
- On page KPT-3 under FDPSIDW, the subscripts in the first equation should
all be f, not x.
- On page EVL-2, N in the MDE equation should be n (two places).
- On page PET-11 in equation 34,
Lp/(Lp+Sp) in the first term should be replaced by 1/F and
(Lp+Sp) in the second term by FLp,
where F = (Lp+Sp/2)/Lp.
This arises from the (unnecessary?) assumption that only half of Sp is distributed
proportionally to L' (and the other half is below the leaves in a "stem
- On page KPT-3 under SOILVAR, ψm should
be ψ, and three lines higher AWATRZ should be AWAT.
- On page WAT-3 under SRFLFR, the second paragaph should just say that BROOK90
effectively simulates the mean water budget and mean water content over the
- On page WAT-4 in the SAFRAC paragraph, all QFF should be changed to QFFC.
- On page SNO-3 in the middle, "resistances ra and rs"
should be "resistances raa and ras".
Version 4.3 - July 19, 2001
DENSEF and CS parameters swapped. The parameter CS has been changed
from a Fixed parameter to a Canopy parameter. This clarifies that
CS, which is the ratio of stem area index to height, may need to change for
different canopy types. The parameter DENSEF has been
changed from a Canopy parameter to a Fixed parameter. Normally DENSEF should be set to 1 and
MAXLAI, CS, MXRTLN, and MXKPL values should represent the actual canopy being
simulated. DENSEF should only be used to simulate canopy thinning, for which
multiplying the other four parameters by DENSEF < 1 is appropriate. Earlier Version
4 Canopy and Fixed parameter files will not work with Version 4.3. The files
can be changed manually by replacing the DENSEF line in Canopy files with
CS (normally = 0.035), and replacing the CS line in Fixed files with DENSEF
(normally = 1.0). Help for DENSEF and the parameters to which it applies has been modified.
Daily precip interval. A Precipitation Interval file with only one
line per day is now acceptable. This allows a user to provide different sequences
of daily precipitation as precip interval files without having to change
the Data file.
Errors fixed. Some Help messages were not properly changed for Version
4; at least some of these are now corrected. A few cosmetic errors are fixed.
ROOTDEN is now only saved to two decimal places, the same as it is displayed.
HTML Documentation - July 7, 2001
Documentation of BROOK90, written in HTML, for Versions 4, 3.3,
and 3.2x became available on the web. Documentation for
Version 3.1 became obsolete and should not be used.
Documentation Error - April 27, 2001
On page SUN-3 about half way down the page, it should say that 30 to 50
W/m2 is equivalent to 1.1 to 1.8 mm/d of evaporated water.
Version 4.2 - April 2, 2001
Versions 4.2/4.3 changed the K weighting but badly - see Version
32-bit BROOK90 Version 4.1 - February 2, 2001
Finally I have upgraded from Visual Basic 3 (16-bit) to Visual Basic 6 (32-bit).
BROOK90 Version 4.1 is a 32-bit compilation of the Visual Basic 3 Version
4.0a code. Version 4.1 will run under Windows 95/98/NT.This did not require
ANY code changes!! It seems to run about twice as fast as Version 4.0a,
especially when Run-time Graph is turned off.
Comma-separated Values files (.csv) saved from spreadsheets like Excel can
be used for BROOK90 data files. The .csv file must have the correct 10 columns
for daily input files and 6 columns for precipitation interval files. The
.csv file must not remain open in Excel or BROOK90 won't be able to access
Some bugs involving printing and cancelling printing have been fixed
Version 4.0 - June 15, 2000
- Version 4.0 separates the single parameter file into
six files (Location, Flow, Canopy, Soil, Fixed, and Initial) and facilitates
batch processing using Fabsoft "Shortcut for Windows" software (unavailable in 2010).
Catchment parameters are separated into Location parameters and Flow parameters.
Root distribution has been separated from the Soil layers and included with
Canopy parameters. Initial values are now all in one place. I chose to leave
the Fixed Parameter file separate rather than to include those parameters
in the other files. Fixed parameters are not checked for abnormal values.
The default extension for data and parameter files is .TXT.
The phenology of RELLAI and RELSAI is included with Location parameters but
also depends on Canopy type; this means that a separate Location Parameter
file is needed for each cover type at a location.
QLAYER and ILAYER in Version 3 have been replaced by QDEPTH and IDEPTH
in Version 4. This makes these parameters independent of the specification
of soil layers.
QFPAR = 0 (<0.01) now gives a bucket model with no SRFL or BYFL when QDEPTH
water is below field capacity and all excess becoming SRFL or BYFL when above
field capacity. QFFC is not used.
Code - Visual Basic code has been considerably changed, hopefully for the better.
Documentation - The documentation uses z0g when it really means either 1)
z0g , 2) CZS * HEIGHT, or 3) z0s. Similar confusion
existing in the program has been fixed.
User Interface -
To facilitate batch processing, menus can be operated with Alt-characters
and parameter screens have a Tab order. Shortcuts have been added to the
menu for those who like Function keys.
Menus are somewhat changed.
Output-Save becomes checked if output has been saved.
All printer output now has top and side margins.
The EVAL output screen has been changed so it can be saved.
Changes in Version 3 can be found at BROOK90 Version 3 Updates.