Tutorials Home MODELS Lab

RHEM

A first successful local run of the Rangeland Hydrology and Erosion Model on Windows. You obtain the ARS Tucson engine, convert a CLIGEN storm list to the local .pre format, write a one-line kin.fil, start rhem_v2.3.exe -b kin.fil, and read Avg-Soil-Loss. The RHEM Web Tool is the official public interface; this path is the same Fortran engine the web tool uses.

1. What this model does

RHEM is a process-based, event-scale hillslope model built for rangelands. One storm falls on one slope profile. The engine computes infiltration, runoff, interrill erosion, and concentrated-flow erosion, then reports soil loss and sediment yield for that profile. It is not a cropland watershed network model and it is not an average-annual USLE replacement unless you drive it with a long storm sequence.

The lab’s pinned engine is rhem_v2.3.exe (CLIGEN version). The public face of the model is the RHEM Web Tool at ARS Tucson (v2.5 in 2026). Hernandez et al. (2017) in Water Resources Research is the process paper for V2.3.

2. Get the software

Most users should start at the RHEM Web Tool. ARS lists that application on the software catalog; the web tool itself is not a desktop installer. This lab’s CLI binary is the Fortran engine that sits behind that site. Source for the CLIGEN engine is in the lab tree under installs\RHEM\rhem_engine.

On this host the tree is already at C:\Grok\Models\installs\RHEM (zip in archive\downloads\RHEM.zip, engine sample\rhem_v2.3.exe). If you are repeating the lab path, you can skip the download and use that folder.

3. The lab install

PieceWhereFirst-run role
rhem_v2.3.exe sample\ (also copied into the run folder) Local CLI engine. Batch mode is -b kin.fil.
scenario_input_cli_verify.par api_verify\ Hillslope parameters: length, slope, erodibility, cover.
storm_input_cli_verify.pre api_verify\ CSIP/CLIGEN storm list. Convert before the local exe will read it.
csip_pre_to_local.py scripts\ Converts the CSIP .pre to the local storm-list format.

tools\test_all_models.ps1 calls rhem_local_cli.ps1 against cli_local. The tutorial wrapper below uses a disposable folder so that standing output stays untouched.

4. Novice path: run a 10-year storm subset

Copy the engine and the .par file, convert the first ten years of storms, write kin.fil, then start the engine in batch mode.

python C:\Grok\Models\tools\run_rhem_tutorial_verify.py

That wrapper is the verified path. The engine line it runs is:

.\rhem_v2.3.exe -b kin.fil

The local exe does not read the CSIP .pre as-is. Convert it first. kin.fil is one line: parameter file, storm file, output file, a label, then timestep and flags.

5. Confirm the run

Open rhem_tutorial.out and find the annual-average block.

CheckWhereThis verification (14 Sep 2026)
Average runoff Avg-Runoff(mm/year) 171.54033 mm/yr
Average soil loss Avg-Soil-Loss(ton/ha/year) 2.88282 t/ha/yr
Average sediment yield Avg-SY(ton/ha/year) 2.81812 t/ha/yr

The automated test is test_tutorial_run inside tools\run_rhem_tutorial_verify.py. It requires average soil loss equal to 2.88282 t/ha/yr within 0.001. That is the same number test_all_models.ps1 reads from the standing 10-year cli_local output, pointed at a new folder.

6. This verification’s figure

The 14 Sep 2026 run used the west-Illinois CLI verify storms, years 1–10, on a 30 m, 10% plane. Average runoff is 171.54 mm/yr. Average soil loss is 2.88 t/ha/yr. Average sediment yield is 2.82 t/ha/yr.

Bar chart of RHEM average runoff, soil loss, and sediment yield from the 14 September 2026 run
Output of installs\RHEM\tutorial_run_20260914. Three annual-average numbers from rhem_tutorial.out.

Model Input and Output

Each bubble is one file type. Solid bubbles are required (at least one must be present). Dashed bubbles are optional. Same-type files that only change location or ID are shown once, with how few and how many a run can hold.

RHEM parameter and storm files on the left, rhem_v2.3.exe in the center, summary output on the right
RHEM batch mode is one .par, one .pre, one kin.fil, and one .out. Left: input types. Center: executable. Right: output types.

Executable

rhem_v2.3.exe

Required. How many: exactly 1. This run: 1. Example: rhem_v2.3.exe.

This is the local Fortran engine (CLIGEN version). One copy. Start it with -b kin.fil in the folder that holds the parameter and storm files.

Input files

*.par hillslope parameters

Required. How many: exactly 1. This run: 1. Example: scenario_input_cli_verify.par.

This is the hillslope parameter file: length, slope, erodibility, cover, and particle sizes. One .par file per scenario. Open the example file in the verification folder to see that layout on disk.

*.pre storm list

Required. How many: exactly 1. This run: 1. Example: storms_local.pre.

This is the storm list the local engine reads: one row per event after CSIP conversion. One .pre file per run. Open the example file in the verification folder to see that layout on disk.

kin.fil

Required. How many: exactly 1. This run: 1. Example: kin.fil.

This is the batch control line: parameter file, storm file, output file, label, and flags. One kin.fil per batch. Open the example file in the verification folder to see that layout on disk.

Output files

*.out annual summary

Optional. How many: 0 to 1. This run: 1. Example: rhem_tutorial.out.

This is the annual-average summary. One .out file. Avg-Soil-Loss is the number the tutorial checks. Open the example file in the verification folder to see that layout on disk.

run_stdout.txt

Optional. How many: 0 to 1. This run: 1. Example: run_stdout.txt.

This is console text captured from rhem_v2.3.exe. One capture. The science numbers live in the .out file. Open the example file in the verification folder to see that layout on disk.

7. After the first success

Once that block prints, you can lengthen the storm list, change LEN and SL in the .par file, or use the Web Tool for cover and soil parameter estimation. Building a new rangeland site from NRI data is a different lesson. This one stops at a verified local CLI run.

Lab install tree: C:\Grok\Models. Vendor manuals: Permanent Media/MODELS/Documentation.