inSTREAM & inSALMO: Archived versions

This page provides release notes and downloads for pre-2012 versions of the individual-based stream trout research and environmental assessment model. It is provided for archive purposes; we no longer maintain these versions and some information on this page could be obsolete.

The first public release of inSTREAM was version 4.2, and the latest pre-2012 version is 4.2.2. Versions 4.3a and 4.4a are identical to 4.2.2 in how fish are modeled, but they use alternative approaches for modeling hydraulics (how cell depth and velocity vary with flow). The documentation for version 4.2.2 also applies to 4.3 and 4.4.

This work was funded in part by the National Center for Environmental Research (NCER) STAR Program, U.S. Environmental Protection Agency, under agreement RD-83088601-0 with Cal Poly Humboldt.

Note that running 4.x or earlier versions of inSTREAM on any computer requires installation of Version 2.2 or later of the Swarm simulation platform. Swarm is available for Windows, MacIntosh, and Unix-based operating systems; see http://www.swarm.org.

Important notes for Linux/Unix/MacIntosh users:

  1. Our software and example input is provided in Windows-formatted files; Linux or Unix users will need to convert files to Unix format (using dos2unix), except as noted below. Failing to convert input files to Unix format will cause inSTREAM to crash: perhaps with an error statement but perhaps with only a “Segmentation fault” error.
  2. Many new installations of Linux/Unix/MacIntosh operating systems include a newer versions of the gcc compiler than are compatible with the inSTREAM software. Our versions 4.2.2 and 4.x.1a versions (below) are compatible with versions of gcc up to  4.x, but earlier versions of inSTREAM were not. (To determine which version of gcc you have, enter the command “gcc -v” in your terminal window.) Swarm and inSTREAM will not compile in gcc versions later than 4.x.
  3. In some Linux releases, the “TimeManager” class we use to keep track of dates does not work for dates before 1 January 1970. This is an operating system issue we cannot work around.

Release notes and downloads for inSTREAM version 4.2.2

Version 4.2.2 was new in January, 2010, and replaces versions 4.2a and 4.2.1a. The main changes made in 4.2.2 are: (a) Extensive changes to the software to greatly reduce memory use and make long simulation experiments with many model runs much more feasible. Memory use now increases very little as multiple model runs are executed. (b) The code is now compatible with versions 4.x of the gcc Objective-C compiler, so the same code set works on current versions of Linux/Unix/MacIntosh and on Swarm's Windows distribution. (The model executes much faster in 64-bit distributions of Linux than in Windows.)

The release includes the following files.

  • The inSTREAM4.2 documentation report. This Acrobat file (2.4 MB; 266 pages) provides the full model documentation, in four parts. These are an introduction and overview, a detailed description of the model, a guide to applying the model (covering topics such as field data collection and calibration), and a guide to installing and using the inSTREAM software.
  • inSTREAM_4.2.2.tgz, a TAR-format archive of the inSTREAM software (0.3 MB). An example input set (for two stream reaches at Little Jones Creek; see Railsback and Harvey 2001) is provided in a separate subdirectory of the archive. Instructions for installing this file are in the software guide section of the documentation.
  • A summary of how to use RHABSIM to prepare hydraulic input files (lookup tables of cell depth and velocity vs. flow). inSTREAM 4.2.2 requires these inputs in a format produced by RHABSIM, which is now available free from Thomas R. Payne & Assoc.

Release notes and downloads for inSTREAM version 4.3

Version 4.3 (also known as inSTREAM-2D) is a modification of inSTREAM 4.2 to accept hydraulic simulation input from a two-dimensional hydrodynamic model. This modification required extensive changes; habitat cells are no longer rectangular but are irregular 3- or 4-sided polygons that represent the site’s actual shape. Multiple stream reaches are not supported. Fish behavior is not changed from version 4.2. This version was supported by the US Forest Service, Pacific Southwest Research Station.

Version 4.3 downloads are:

  • inSTREAM_4.3a.tgz, a TAR-format archive of the software. Example input from a 1-km long study site is included in a subdirectory.
  • inSTREAM2d_Report.pdf (6.7 MB), a summary report describing how version 4.3 differs from v. 4.2, and field and GIS methods for generating input.

Release notes and downloads for inSTREAM version 4.4

Version 4.4 differs from v. 4.2 only in the format of the hydraulic input data files: instead of importing hydraulic simulation files generated by the RHABSIM river modeling package, version 4.4 uses a generic lookup table format. This version was developed to support the work of Butcher and Parrish (see the Publications and Products page), who simulated site hydraulics using their own MatLab code.

The differences between v. 4.4 and v. 4.2 are documented only in the “ReadMe.txt” file included with the v. 4.4 code. The code is here: inSTREAM_4.4a.tgz.

Versions for gcc 4.x and higher

The following code archives are for users while need to compile inSTREAM with versions 4.0.0 or higher of the gcc compiler (as discussed above). NOTE THAT THE CURRENT RELEASE 4.2.2 OF INSTREAM WORKS AS-IS WITH GCC 4.X. These are designated as versions 4.2.1, 4.3.1, and 4.4.1 of inSTREAM. The files in these archives are in Unix format.

We have compared results between inSTREAM version 4.2 compiled with gcc 3.3.3 and executed in Windows (the standard Windows distribution of Swarm) and inSTREAM 4.2.1 compiled with gcc 4.0.0 in Linux. Results were not completely identical: after about 9 simulated months, small differences in fish size and then mortality appeared. These differences grew (e.g., via effects of spawner size on number of eggs) to substantial differences in population summary statistics. These appear to be caused by small numerical differences similar to roundoff error although we have not investigated fully. We are not sure whether the differences result from the difference in compilers or operating systems; however, versions 4.2 and 4.2.1 of inSTREAM did produce identical results when both compiled and executed on Windows with gcc 3.3.3.

Compiling these versions with gcc 4+ will produce extensive warning statements even when it successfully produces an executable file.


We have also archived some very large files that document extensive tests of the software. These are available upon request.