Workshops

CSIRO intro | copyright | queries | user guide | publications | bug info | data
program code | feedback | search | tour | around the world | workshops
CRCCH

TUTORIAL
Exercise 1 | Exercise 2 | Exercise 3 | Exercise 4 | Exercise 5

Online Tutorial
Exercise 5, Basic Dynamic Water Balance Modelling

In this session, we introduce you to the following programs:
  • _dynamic - fully dynamic water, carbon, sediment and solute balance model
  • _profile - graphical interface used to view soil profiles of water, salt or root carbon status
  • _slice - takes the output from _profile and produces a catchment map of water, salt or root carbon status at a particular time


5.1 We are now ready to run our first dynamic simulation.

Perform the following tasks:

  • run _simgen.
  • load parameter file sub.run1.par.
  • press Run simulation; this will take several minutes to run.

5.2 Now let's examine the results from run1.

Perform the following tasks:

  • using the editor, open file sub.run1.log; this lists all of the simulation input parameters you used and provides a short water balance summary at the end.
  • run _chart.
  • under the Files button, select file sub.run1.tbal; this contains the gross daily water balance values for the whole catchment.
  • plot Gross rainfall in pane 1.
  • plot Plant transpiration -Overstorey in pane 2.
  • plot Soil evaporation in pane 3.
  • plot Total discharge in pane 4.
  • plot Storage in pane 5.
  • show the legends.
  • change the style of the rainfall graph to Filled Histogram, using the Select and Style buttons.
  • hide _chart (ie. don't quit).

5.3 Let's introduce some complexity and set up run2. This time, we will introduce two vegetation layers and start the simulation with different initial conditions.

Perform the following tasks:

  • in _simgen, make the following changes/additions to file sub.run1.par:

    run identifier run2
    initial theta values delete entries
    restart .fin file sub.run1.fin
    vegetation file sub2.veg
    number of vegetation types 2
    o/storey vegetation file index 1
    u/storey vegetation file index 2
    o/storey LAI value 2.5
    u/storey LAI value 1.0
    litter LAI value 0.1

  • save the modified parameter file as sub.run2.par.
  • run _dynamic again, using this modified input file.

5.4 Now let's examine the results from run2.

Perform the following tasks:

  • using the editor, open file sub.run2.log; note how this is a bit different to file sub.run1.log.
  • re-activate _chart.
  • in pane 3, add Plant transpiration - Overstorey from file sub.run2.tbal.
  • in pane 3, also add Plant transpiration - Understorey from file sub.run2.tbal.
  • in pane 4, add Total discharge from file sub.run2.tbal.
  • in pane 5, add Storage from file sub.run2.tbal.
  • compare results, then quit _chart.

5.5 Now, let's set up run3 and learn how to request special data dumps.

Perform the following tasks:

  • in _simgen, make the following changes/additions:

    run identifier run3
    sbal dumps 500
    650
    tvmc dumps 21 7
    27 3

  • save the parameter file as sub.run3.par.
  • run _dynamic again, using input file sub.run3.par.

5.6 Let's evaluate the results from run3.

Perform the following tasks:

  • run _display using basename sub.
  • under the Simulation button, select file sub_y.run3.sbal.0500.
  • from the scroll list of file attributes, select each of the options shown.
  • if necessary, customise .ctb files to suit the attributes you are plotting.
  • now select file sub_y.run3.sbal.0650.
  • from the scroll list of file attributes, select Soil moisture storage.
  • now, in a separate window, run _chart.
  • reduce the sizes of the _display and _chart windows so that both are visible on the screen.
  • in _chart, plot the Total discharge and Storage values stored in file sub.run3.tbal.
  • after you have studied the results carefully, clear all of the data plotted in _chart.
  • now, let's plot some temporally varying soil moisture data in _chart, using data dumped from two different elements.
  • in pane 1, plot the theta values for element 21 7 at z=0.01, 1.0 and 2.0 m (this data is stored in file sub.run3.tvmc.021.007).
  • in pane 2, plot the same data for element 27 3 (this data is stored in file sub.run3.tvmc.027.003).
  • turn legends on.
  • colour code the data plotted in both panes (eg. make both z=1.0 m curves yellow).
  • set ymin to 0.0 on both graphs, using the Zoom button.
  • quit _display and _chart.

5.7 We will now set up run4; this time we will look at how to introduce spatially variable vegetation and soils. First, let's set up the distributed parameter files for vegetation type.

Perform the following tasks:

  • run _display, using basename sub.
  • plot the catchment boundary.
  • in one file, digitise 2 vegetation polygons (covering the top half and bottom half of the catchment); results should be written to file sub.dat.a.
  • quit _display.
  • rename file sub.dat.a to sub.vegpol; in so doing, you attach a meaningful filename to important data.
  • run _overlay, specifying sub.vegpol as input and sub.over.vegtypes as output.
  • ascribe values of 1 and 2 to polygons 1 and 2, respectively.
  • specify 1 as the default value.
  • run _overlay again, specifying sub.vegpol as input and sub.under.vegtypes as output.
  • ascribe values of 3 and 4 to polygons 1 and 2, respectively.
  • use 3 as the default value.

5.8 Now let's set up distributed values for LAI.

Perform the following tasks:

  • run _display, using basename sub.
  • plot the catchment boundary.
  • in one file, digitise 2 LAI polygons (this time, covering the left and right sides of the catchment); again output should be written to sub.dat.a as you renamed this file previously.
  • quit _display.
  • rename file sub.dat.a to sub.laipol.
  • run _overlay, specifying sub.laipol as input and sub.over.laivals as output.
  • ascribe values of 2.5 and 3.5 to polygons 1 and 2, respectively.
  • use 3.0 as the default value.
  • run _overlay again, specifying sub.laipol as input and sub.under.laivals as output.
  • ascribe values of 0.5 and 1.0 to polygons 1 and 2, respectively.
  • use 0.75 as the default value.

5.9 Finally, let's set up distributed values for soil profile.

Perform the following tasks:

  • run _display, using basename sub.
  • plot the catchment boundary.
  • in one file, digitise 2 soil profile polygons (separated by a diagonal across the catchment).
  • rename the output file to sub.nodepol.
  • run _overlay, specifying sub.nodepol as input and sub.nodetypes as output.
  • ascribe values of 1 and 2 to polygons 1 and 2, respectively.
  • use 1 as the default value.

5.10 At this stage, we have only built one nodes file, called sub1.nodes. If we are going to have spatially distributed soil profile, we must build at least one other nodes file. So, let's build a second one.

Perform the following tasks:

  • using the editor, build a new .nodes file called sub2.nodes.
  • construct a 2 m deep, 3 layer soil profile that looks like this:

       0	 	1
       0.001	1
       0.01		1
       0.1		1
       0.3		2
       0.5		2
       0.7		2
       1.0		3
       1.3		3
       1.7		3
       2.0		3	
    

5.11 We have two soil tables at the moment (sub1.soil and sub2.soil). For the next simulation we need to build a third (this will be called sub3.soil).

Perform the following tasks:

  • run _soil, using option (1) and basename sub3.
  • use the values tabulated below and default values elsewhere:

    Parameter sub3
    residual soil moisture content 0.05
    saturated soil moisture content 0.35
    saturated hydraulic conductivity 0.2
    lc 0.1
    C 1.001
    Max. Dq 0.1
    Driest y -400
    Number of points in table 200

5.12 Now we can create a parameter file for run4. We will request some extra dump data files this time around.

Perform the following tasks:

  • in _simgen again, modify file sub.run3.par, making the following changes/additions:

    run identifier run4
    vegetation file name sub3.veg
    number of vegetation types 4
    o/storey vegetation overlay file sub.over.vegtypes
    u/storey vegetation overlay file sub.under.vegtypes
    o/storey LAI overlay file sub.over.laivals
    u/storey LAI overlay file sub.under.laivals
    restart .fin file delete entry
    initial theta values 0.8
    0.8
    0.8
    0.8
    soil files add: sub3.soil
    nodes files add: sub2.nodes
    nodes overlay file sub.nodetypes
    pprf dumps 500
    650
    sevt dumps 500
    650

  • save the parameter file as sub.run4.par.
  • run _dynamic again, using input file sub.run4.par.

5.13 Let's now examine the results of run4 and study the new dump data which we requested. Here, we will introduce a new graphical display program, called _profile.

Perform the following tasks:

  • run _profile; a graphical display program designed to view soil moisture profiles.
  • under the Files button, load files sub.run4.pprf.0500 and sub.run4.pprf.0650.
  • arrange the display window to give 2x2 panes.
  • in pane 1, plot the theta profile for element number 15.
  • in pane 2, plot the theta profile for element number 70.
  • in pane 2, plot the psi profile for element number 15.
  • in pane 4, plot the psi profile for element number 70.
  • quit _profile.
  • run _display.
  • sequentially map the various choices available in the .sevt dumps for days 500 and 650.

5.14 The .pprf files can also be converted into spatial maps, using program _slice. Let's learn how to do this.

Perform the following tasks:

  • run _slice, using basename sub.
  • specify run4.pprf.0500 as input.
  • request slices of theta at 0.5, 1.0 and 2.0 m.
  • note that the resulting data has been written to file sub_a.run4.pprf.0500, sub_b.run4.pprf.0500 and sub_c.run4.pprf.0500.
  • run _display.
  • under the Simulation button, sequentially map the three slices of theta stored in the three files you have created.
  • prepare a custimised .ctb file if necessary.
  • repeat the above exercise, using run4.pprf.0650 as input.

5.15 Now, let's start preparing run5 and consider how to impose LAI updates on a catchment simulation. We will begin by building two LAI updates files, one for the overstorey and another for the understorey.

Perform the following tasks:

  • using the editor, build a file called sub.over.laiupdates.
  • recall that we currently have two overstorey LAI polygons defined; for each LAI update time, the updates file must include an updated LAI value and an extra value for catchment elements not covered by a polygon.
  • currently, the initial overstorey LAI values for polygons 1 and 2 are 2.5 and 3.5, respectively.
  • so, in sub.over.laiupdates, enter the following data:

     150	3.0	4.0	3.5  
     300	3.5	4.5	4.0     
     450	4.0	5.0	4.5
     600	3.5	4.5	4.0
    

  • using the editor, build a file called sub.under.laiupdates.
  • currently, the initial understorey LAI values for polygons 1 and 2 are 0.5 and 1.0, respectively.
  • so, in sub.under.laiupdates, enter the following data:

     175	0.6	1.1	3.5
     325	0.7	1.2	4.0    
     475	0.8	1.3	4.5
     625	0.6	1.2	4.0
    

  • OK, that does it!

5.16 Now that the two LAI updates files have been built, we can return to _simgen and prepare a new parameter file for run5.

Perform the following tasks:

  • in _simgen again, modify file sub.run4.par, making the following changes/additions:

    run identifier run5
    o/storey LAI update file sub.over.laiupdates
    u/storey LAI update file sub.under.laiupdates
    restart .fin file sub.run4.fin
    initial theta values delete entries

  • save the parameter file as sub.run5.par.
  • run _dynamic again, using input file sub.run5.par.
  • review the reults using _chart and _display when finished.


TUTORIAL
Exercise 1 | Exercise 2 | Exercise 3 | Exercise 4 | Exercise 5

Menubar
last modified on 16 August 1997