iMOD User Manual version 5.2 (html)

11.9Tutorial 8: Surface Flow Routing (SFR) and Flow Head Boundary (FHB) Package

This tutorial gives an introduction to a steady-state, surface water routing package (see section 12.28, and [Prudic et al.(2004)]). See for more detailed references regarding ISG-Edit (see section 6.10.3) and the ISG-file format regarding the SFR package (section 9.9). The tutorial also outlines the use of the FHB package (section 12.26) which facilitates a combination of constant head- and constant flux boundaries.


This is what you will do:

Required Data

For this tutorial you need the following iMOD Data Files/folders:

Getting Started

This IDF describes the upper most elevation of the model, the top of our single layered aquifer that declines from 512 m+MSL in the west towards 505 m+MSL in the east. We use this IDF to create the boundary IDF.

Creating the Boundary File BND.IDF

Note: {installfolder} refers to the full path of the directory you installed iMOD in (e.g. D:\iMOD).
Note: If you are a left-handed person and you converted your mouse button settings, ’left mouse button’ should be ’right mouse button’ and vice versa in these tutorials.

We will use this BND.IDF file to specify how the boundary conditions need to be. On the west we apply an open boundary condition with constant heads (511 m+MSL, that is 1 meter below the surface level TOP.IDF). On the east we apply an open boundary condition with a constant outflow flux boundary (-950 m\(^3\)/d; a negative number will be used to take water out of the groundwater system, use a positive number to insert water to the groundwater system instead). We will modify the BND.IDF via IDF-Edit, which has been part of Tutorial 2, make sure you have applied this tutorial already.

You can release the left mouse button to position the mouse on a different location without selecting the underlying cells. To continue selecting cells, you need to press the left mouse button again. If you need to remove some of the selected cells, click the Remove Cells from the IDF Edit Draw window. Restart selecting cells, click the Add Cells again from the IDF Edit Draw window. Below is an image of the final selected cells.


Figure 11.126: Image after selecting all cells of the most left column of the model.

Now we are going to change the values for those cells.

A constant head boundary is specified by a negative number, so all values less than zero are appropriate. However, whenever the FHB package is used and a constant head boundary needs to be combined with a constant flux boundary, it is necessary to specify a -2 for constant head cells. For constant flux boundaries we need to specify a +2. Let’s do that for the right boundary.

We’re almost done, we only need to change all the zero values in the BND.IDF to be 1.

We’re finished !

Specify the characteristic of the boundary

We need two other files that specify the actual constant head values and the constant flux rates. For this we need to copy the BND.IDF into a file called FHB_H.IDF, give the values that are -2 (in BND.IDF that represent a constant head boundary) the value 511 m+MSL.

Note: To estimate the flux over the edge of model, apply Darcy’s Law. In our case we have a head gradient of \(\Delta h=\) 7 m over distance \(d=\) 1500 m, a permeability of \(k=\) 60 m/d and an average thickness of \(T=\) 34 m, so the horizontal conductance \(c=k \times T=\) 2040 m\(^2\)/d. Filling these in in Darcy’s Law we come up with:

\begin{equation} \begin {array}{ll} q & =k \times T\frac {\Delta h}{d} \\ \\ & =60 \times 34 \times \frac {7}{1500} \\ \\ & =9.52 \rm {m}^2/\rm {d} \end {array} \end{equation}

The cell width is \(100\) m, so the total volume of water is \(Q=952\) m\(^3\)/d.

Secondly, we need to copy the BND.IDF to a file called FHB_Q.IDF and give the values that are +2 (in BND.IDF that represent a constant flux boundary) a value of -950 m\(^3\)/d (constant flux boundary). It is more-or-less a repetition of the previous steps, but let’s dot that together.

Let’s create the IDF file for the constant flux boundary as well.

Enter the IDF Edit to change the values.

Now for the constant flux boundary on the right.

Done regarding the boundary definition. We need to add this to the model via the iMOD Project Manager. For the Tutorial we have done already a small amount of work to fill in an iMOD Model Project file (*.PRJ). We need to add the BND.IDF, FHB_H.IDF and FHB_Q.IDF to the current PRJ file. We will do this after we have created the input for the SFR package.

Creating the SFR Package

In our model a stream flows from the west towards the east and splits halfway into two separate streams (see figure 11.127). We will model this stream in iMOD. First we need to create an ISG file that is capable of generating the SFR input.

The entered ISG file will be added to your iMOD Manager, but since it will be completely empty, you’ll not see anything appearing on the screen. So, let us create the stream network and the corresponding characteristics.

So because we cannot visualize the file SFR.IDF yet (it is still completely empty) we also selected the FHB_H.IDF in the iMOD Manager to use it as a guide to draw the stream network in the next steps.

Drawing the Stream Network

We are ready now to start drawing our stream network.

You’ll notice that a stream has been created in the menu field on the ISG Edit window called “Segment_1”. This was our first stream, let’s create another one.

and the final one:

When you did it right (I’m sure you did), the following stream network should be displayed on your graphical canvas.


Figure 11.127: Image of the 3 added ISG segments after turning on the labels Nodes, C.Section, Seg.Nodes, Clc.Pnts. and Direction.

So, what do we see?

First of all, each stream consists of segment nodes (red dots, Seg.Nodes). Each stream contains a single cross-section (green polygons, C.Section), and a calculation point at the beginning and end of a stream (blue rectangle with a cross, Clc.Pnts. and the start and end of a stream (blue dot, Nodes). Furthermore, as we draw the stream, the order in which the coordinates of each stream are entered by clicking the left mouse button, determines the direction of the flow (black arrow, Direction). In our case, the order of the coordinates is such that water is flowing from the west to the east and splits at the bifurcation in a north- and south branch. Finally, all segments are selected and therefore those are highlighted in cyan.

Characterizing the Stream Network

The next thing to do is to characterise the stream with appropriate water levels, bottom height, cross-sections and so on.

We will enter some data in the table. First of all, we will apply this SFR to a steady-state model, so the date and time are irrelevant in this case. We will leave it as it is.

We accept the default values for the remaining columns; the table should look similar to the figure below.


Figure 11.128: The ’Waterlevels’-tab in the ’ISG Attributes’ window for the Calculation point ’FROM’ for segment 1.

The next thing is to enter data for the downstream node.

We accept the default values for the remaining columns.

Even though we specified the width and depth of the stream already on the tab Waterlevels, we need to specify the Manning’s Resistance Coefficient MRC for the cross-section. In case you need to use a more sophisticated cross-section, you can specify that in the table on the tab Crosssections. We modify the table such that it will align with our entered width (\(w=\) 20 m) and maximal depth (\(d=\) 2 m), and assign a Manning’s Resistance Coefficient \(n=\) 0.03.

Note: Manning’s Resistance Coefficients \(n\) range roughly from \(n\)=0.01-0.06; some important values are given in table 11.5 (source:

Table 11.5: Manning’s Resistance Coefficients \(n\).

Surface Material Coefficient \(n\) Surface Material Coefficient \(n\)
Asphalt 0.016 Brick 0.015
Clay tile 0.014 Concrete (Cement) 0.012
Earth - clean 0.022 Earth channel - weedy 0.030
Floodplains - pasture 0.035 Floodplains - heavy brush 0.075
Metal - corrugated 0.022 Natural streams - clean / straight 0.030
Natural streams - major rivers 0.035 Natural channels, poor condition 0.060

After you did it correctly, the ISG Attributes window should look like the figure below.


Figure 11.129: The ’ISG Attributes’ window after entering the Manning’s Resistance Coefficient in the ’Crosssection’-tab for segment 1.

Bear in mind that iMOD stores all modifications in memory. To actually save your modification on disk, you need to save your data explicitly, let’s do that.

Okay, one third done! You need to apply the modifications to the other segments by applying the previous steps (95. to 120.) using the data from table 11.6.

Table 11.6: Parameters per Stream Segment.

Up Down Water Bottom Stream Bed Bed Q
stream stream Level Level Width Thickness Permeability Inflow
- - m+MSL m+MSL m m m/d m\(^3\)/s
1 511.0 510.0 20 1.0 1.0 13.9
1 508.0 507.0 20 1.0 1.0 0.0
2 508.0 507.0 15 1.0 1.0 0.0
2 504.0 503.0 15 1.0 1.0 0.0
3 508.0 507.0 5 1.0 1.0 0.0
3 504.0 503.0 5 1.0 1.0 0.0

Note: To compute the total steady-state influx of 13.9 m\(^3\)/s, we apply the simplified Manning’s Equation for a rectangular stream. The gradient of Segment_1 is \(S=\Delta h=\) 7 m over \(d=1500\) m; its width is \(w=\) 20 m, its depth is \(d=\) 1 m and its roughness is \(n=\) 0.03. Filling these in in the simplified Mannings’ Equation:

\begin{equation} \begin {array}{ll} Q & =\frac {1.0}{n} \times w \times y^\frac {5}{3} \times S^\frac {1}{2} \\ \\ & =45.5 \times 20.0 \times 1.0^\frac {5}{3} \times \left ( \frac {7.0}{1500.0}\right )^\frac {1}{2} \\ \\ & =1239393~\rm {m}^3/\rm {d} \\ \\ & =13.9~\rm {m}^3/\rm {s} \end {array} \end{equation}

Note: A nice functionality to check whether you didn’t make any typo’s entering the data is the profile option; this functionality is also very handy when you need to inspect the result of the simulation (more on that later). Let’s do that.


Figure 11.130: The ISG Profile window facilitates inspecting ISG-variables of selected segments.

Connecting the Stream Network

Now that we have given all streams their appropriate characteristics, the streams need to be connected. This can be done manually or automatically. When many streams are to be connected, this automatic option is very handy, it connects streams within a certain distance automatically. To give an idea of how easy streams can be connected manually, we will practice that right now.

When you did it right (I’m sure you did), the your display should look similar to the figure below.


Figure 11.131: Showing the connection (light grey arrow) to Segment 2 from Segment 1 (cyan line) by selecting the ’Connection’-option in the ’Show’-part of the ’ISG Edit’-window.

So, “Segment_1” flow into “Segment_2” , but in fact it also flows towards “Segment_3”. We call this a diversion. In order to achieve this, we need to define for “Segment_3” that its inflow is diverted from “Segment_1”. We can do that interactively using the Connect From button (  pictures/h5/editnodesfrom.png ), or specifying this explicitly in ISG Attributed window.

It is not necessary to specify a diversion for Segment_2 as it automatically receives 100-30=70% of the outflow of Segment_1.

I think we’re done with this ISG, let’s quit the ISG Edit window.

Defining the Model Project Now that we have created all necessary packages for our model, let’s get them together in a Model Project.

For a detailed exercise on how to create a Project-file from scratch, see Tutorial 4: Create your First Groundwater Flow Model, we will not exercise that here. The opened project file MODEL.PRJ contains all necessary parameter definitions.

The Project Manager will look as follows:


Figure 11.132: The Project Manager after loading the project file MODEL.PRJ.

We have a permeability of KHV=60 m/d, a bottom height of our aquifer of BOT=470 m+MSL, a uniform starting head of SHD=510 m+MSL, a uniform recharge of RCH=1 mm/d. Notice that we filled in the FHB- and SFR package for you.

Running the Model

Let’s run this model.

Note: There is an option to start a model simulation in the background so that you can continue working with iMOD once the model has been started. As this model is very, very small, we will run the model in the foreground and we have to wait until it has finished before we can continue working with iMOD - probably, reading this sentence was enough time for the model to be finished.

Once iMOD converts your model to MF2005 files, it creates a conventional ISG-file that can be used to transfer the results of the SFR package into iMOD. In this way we can use the existing functionalities in ISG-Edit (such as displaying time series, profiles) for the output of the model. Four items are converted to iMOD after the simulation has finished using the iMOD Batch function SFRTOISG (see section 8.3.10). This iMOD Batch function is part of the run-script (. \TUT_SFR \run.bat) and has been carried out already, so let’s see some results.

You probably notice that instead of three segments, we have now 35 segments.

The names of the individual segments still contain the original segment name, so it is easy to select all streams that belong to the same original stream.


Figure 11.133: Image after selecting all Segment 1 and 2 streams of SFR.ISG in the ISG Edit window.

Now we want to see the decline of the water level, or change in discharge per segment.

In this picture we observe that the computed surface water level is declining from west to east. We can see how the discharge distribution aligns with our predefined diversion fractions.


Figure 11.134: Stream levels in the ISG Profile window.


Figure 11.135: Stream discharges along segments 1 to 3.

In the graph we see that the inflow volume in “Segment_1” is 14 m\(^3\)/s, and the volumes for the “Segment_2” and “Segment_3” are 10 m\(^3\)/s (\(\approx \) 70%) and 4.25 m\(^3\)/s (\(\approx \) 30%), respectively.



Figure 11.136: Stream width and stream depth along segments 1 to 3.

Another (fancy) way to look at your results is to use a legend to colour the lines for a selected output item, such as water levels, discharges.

In this visual we observe that the surface water is indeed declining from west to east.


Figure 11.137: Stream levels visualised when using a colour legend.

It is easy to visualize the other model outcomes as well:

The legend is computed automatically based on the data of the ISG file. Each stream characteristic in the ISG file has its own legend. This can be modified by using the default Legend window that starts whenever you select the option Legendpictures/h6-h71/image948.png ) from the ISG Colouring window. For any transient simulation you might do in future, you can drag the slider in the ’Period’ part of the of the ’ISG colouring’-window to visualise stream characteristics for different periods.

Now it’s time to visualise the total exchange flux between the surface water and groundwater.


Figure 11.138: Visualising the computed fluxes between surface water and groundwater.

Regarding practising the visualisation of ISG’s it’s OK for now.

It would be nice if you try experimenting with different parameters of the SFR package, such as stream width, Manning’s Resistant Coefficients and/or implement an extraction in the model to see whether that effects the surface water level. To estimate the extraction rate, such that the surface water level might change with 0.10 m, use the following equation of the re-organised Manning’s Equation:

\begin{equation} y=\left [ \frac {Q \times n}{C \times w \times S^\frac {1}{2}} \right ]^\frac {3}{5} \end{equation}

If you apply this for stream “Segment_2” , the extraction need to be at least 3.3 m\(^3\)/s=285,000 m\(^3\)/d.

Enhance the model by an Eight Point Cross-Section

In the coming few steps we will enhance the model a bit more, adding a more complex cross-section and apply a q-width/depth relationship for a segment.

iMOD will open the Read CSV file window. Here you can specify what column from the CSV-file you want to use for each of the columns of the cross-section, such as “Distance” , “BottomLevel” and “MRC”. We leave the default values as shown below.


Figure 11.139: The ’Read CSV file’ window.

The SFR Package has the limitation that only eight-point cross section geometries can be assumed. Eight values each for the horizontal and vertical distances are specified for the segment. Vertical walls are assumed at the end of each cross section. Stream depth, width, and wetted perimeter (hydraulic radius) are computed from the cross section for a given flow using Manning’s equation and by dividing the cross section into three parts, one part for the points 1-2-3, a second part for the points 3-4-5-6 and a third part for the points 6-7-8. All those together form the total wetted perimeter and the area. As this can be rather complex, the SFR package uses an iterative procedure to estimate the total discharge (sum of the three parts) until the computed flow is more-or-less equal to the stream flow. This method may not solve for all geometries, especially wide, flat bottom geometries might cause problems, in those case an other option is advised to be used for computing the stream depth.


Figure 11.140: The cross-section as read from the CSV file (black dots) and the 8-points simplified cross-section (blue dots) after selecting ’Simplified’ in the ’ISG Attributes’-window, including the corresponding areas of the original and simplified cross-section.

From the figure above, it seems that the simplified cross-section has a more-or-less similar wetted area (108.46 m\(^2\)) compared to the original one (109.80 m\(^2\)). Actually, this simplification is done once the model is exported to the SFR package of MODFLOW2005, automatically.

Next thing is to modify the ISG file a little bit more such that it knows to use this eight-point cross-section.