Irrigation Using Manager Scripts (APSIM 7.5 only)

Apsim 7.5 introduced a number of new manager rules to control irrigation. They cover a number of common application scenarios and do not need any scripting experience to use. You can find them in the Management tool box under Manger .NET (common tasks).


The APSIM irrigate module allows the user to:

  • specify irrigation schedules spanning multiple years
  • configure an automatic irrigation schedule calculated on soil moisture
  • specify both schedules to be turned on or off at any time in a simulation
  • apply solutes in irrigation water for redistribution via the water balance module.

Apply Command

The ‘apply’ command allows you to apply an irrigation in a management component in your simulation (Manager module).

The simplest way to apply an irrigation is to use the ‘apply’ command of the irrigation module.

nb. This is very similar to the ‘apply’ command of the fertiliser module.

irrigation apply amount = 50 (mm)

There are some optional arguments that you can use with the apply command.

Irrigation to runoff like rain does

By default all the irrigation enters the soil.
It is left up to the user to take the efficiency of irrigation (water lost due to method of irrigation used) into account by decreasing the amount applied when irrigating using an apply command.

However there is an option to allow an irrigation to runoff in exactly the same way that rain does. This runoff amount is added to the existing output variable for rain called ‘runoff’.

You can specify this runoff to occur with the irrigation by using the ‘will_runoff’ argument. 0 means no runoff, 1 means runoff like rain does.

irrigation apply amount = 50 (mm), will_runoff = 1

If this argument is not provided, it defaults to 0 (the irrigation does not runoff)

Subsurface Irrigation

You can apply an irrigation to be a subsurface irrigation by using the optional ‘depth’ argument.

irrigation apply amount = 50 (mm), depth = 3000 (mm)

The SoilWater module will work out what layer of the soil that this depth corresponds to, and will put the water directly into this soil layer

Solutes in Irrigation

You can apply solutes with the irrigation by using the optional ‘no3’, ‘nh4’ and ‘cl’ arguments.

irrigation apply amount = 50 (mm), no3 = 50 (kg/ha), nh4 = 60 (kg/ha), cl = 70 (kg/ha)

nb. cl is chloride.

You can use this in conjunction with the depth argument.

irrigation apply amount = 50 (mm), depth = 3000 (mm), no3 = 50 (kg/ha), nh4 = 60 (kg/ha), cl = 70 (kg/ha)

nb. each one of these solutes is an optional argument. So you do not need to provide all three. You can provide just one or two of them if you want.

Resetting Schedules

Manual and automatic schedules can be enabled and disabled within a simulation via the message system. The syntax of a standard manager message to turn off the manual irrigation schedule would be as follows:

irrigation set manual_irrigation = off

Other related data is unaffected by this switch resetting and so, for example, the automatic irrigation scheduling can be set on and off for set windows in time using a pair of if statements in the manager file.
Parameters for the automatic irrigation calculations can be reset similarly:

irrigation set crit_fr_asw = 0.9 (0-1)

irrigation set asw_depth = 150 (mm)

Working with Irrigation Allocation Budgets

The following example shows how the allocation mechanisms are utilized in the APSIM Irrigate module.
Note that only automatic irrigation scheduling and remote scheduling (eg via the manager or operations modules) is taken into account.
The mechanism cannot be used in conjunction with a manual irrigation schedule.
The example shows an annual allocation set on the first of July each year, which is applied using automatic irrigation scheduling.

user_data_group.irrigate .parameters


automatic_irrigation = on            (on/off) ! switch schedule on or off

crit_fr_asw = 0.66                      (0-1) ! critical fraction of

! available soil water

! to trigger irrigation

asw_depth = 600                          (mm) ! depth for available

! soil water calculations


user_data_group.manager .start_of_day

if today = date(‘1_jul’) then

irrigation set allocation = 1000 (mm)


Working with Irrigation Efficiency

The following example shows how the irrigation efficiency is utilized in the APSIM Irrigate module.
The example shows an irrigation_efficiency setting of 75%.
This means that only 75% of the irrigation is actually being applied due to approximated losses due to evaporation, wind loss or runoff.

user_data_group.manager .start_of_day


irrigation.irrigation_efficiency = 0.75


if today = date(‘1_jul’) then

irrigation apply amount = 50


Using APSIM Irrigate with APSIM WaterStorage

There is an option to use APSIM Irrigate in conjunction with the APSIM WaterStorage module. Please also read the documentation for APSIM WaterStorage.

APSIM Irrigate works on a ‘mm’ basis, whereas APSIM WaterStorage works on real volumes (Ml). Hence, when an irrigation application is specified in mm, an ‘area of application’ must be provided in order to calculate the required volume of water from the specified source instance of WaterStorage. As mentioned previously, whenever WaterStorage is used in a simulation for supply of irrigation water, a variable called ‘crop_area’ (ha) must be specified in the manager logic.

Irrigations using water from WaterStorage can only be initiated by using the ‘irrigation apply’ action in manager. A new optional argument called ‘source’ is added to the ‘apply’ command line to trigger the use of water from WaterStorage. The required syntax is as follows:


if day = 10 then

irrigation apply amount=10 (mm), source = dam bore dam2 ()


The argument ‘source’ specifies the sources from which to obtain the irrigation water, in preferential order. In other words, in the above example, if the dam cannot fully supply the required water, the balance will be taken from the bore. If there is still a shortage of water, then dam2 will be asked next to supply water. There is no limit to the number of sources which can be specified.
When the irrigation water is applied to the soil, it will carry the solutes makeup of the water source being used.

Irrigation Module Outputs

The Irrigation module outputs the following variables.

Variable Name Description
irrigation Total amount of irrigation added to profile during any timestep (mm)
manual_irrigation Current state of the fixed irrigation schedule (on/off)
automatic_irrigation Current state of the automatic irrigation schedule (on/off)
crit_fr_asw Critical fraction of available soil water (ie. above a 15 bar lower limit) below which irrigation is automatically applied. (0-1)
asw_depth Depth to which available soil water fraction is calculated. (mm)
allocation Current amount of irrigation allocation available for use (mm)
allocation_ml Current amount of irrigation allocation available for use (ML)
carry_over Amount of irrigation allocation unused as at reset of allocation (mm) (Value will be zero for days on which allocation is not reset)
carry_over_ml Amount of irrigation allocation unused as at reset of allocation (ML)
irr_fasw Fraction of available soil water within the critical irrigation soil depth
irr_deficit Deficit of soil water within the critical irrigation soil depth (mm)
irrig_loss Losses resulting from and application of irrigation in conjunction with the irrigation_efficiency mechanism.
irrig_tot Total irrigation specified, not including losses due to irrigation efficiency (mm)
irrigation_XXX Applied quantity of solute XXX, (kg/ha)