SOI PHASES MODULE: Adding SOI capability to APSIM
Introduction
Many farming decisions are influenced by the long-range climate outlook and specifically by the phases of the SOI (Stone et al., 1996). Examples are, for instance,
There are many more of these decisions. In order to simulate the tactical and strategic responses to SOI conditions, the SOI module was developed that allows conditional systems simulations based on the SOI phases.
Implementation
The SOI Phases module requires an up to date list of soi phases. This is usually comes with your apsim installation as %apsuite\apsim\soi\sample\phases.soi. This source of this file is \\thor\public\met\phases.soi .
To make the module available to APSIM the following line should be added to the configuration (.con) file:
module = soi phases.soi [soi]
Manager Rules
The basic format of the SOI module syntax is:
Soi[<month> or <lag>] = <phase>
Where <month> is a month in either numeric format (1,2,3,4 .12) or 3-letter month abbreviation
(Jan,Feb,Mar .Dec). The full Date will also work, but remember the SOI Phases are monthly values.
Where <lag> is a negative or zero numerical value that indicates the number of months prior to the current
Date, that we are comparing the SOI Phase to. Eg: -1 is one month prior, -2 is two months prior
Where <phase> is the SOI Phase we are comparing to. There are five Phases, 1 to 5:
1 Consistently Negative SOI
2 Consistently Positive SOI
3 Rapidly Falling SOI
4 Rapidly Rising SOI
5 Consistently Near Zero SOI
Examples
! Sow Sorghum if the SOI Phase in February is Consistently Negative
If soi[Feb] = 1 then
Sorgum sow ..
Else
Cotton sow .
Endif
! Set the Soilwater if the current SOI Phase is Rapidly Rising
if soi[0] = 4 then
soilwat2 init
soilwat2 set sw = 0.344 0.347 0.369 0.33 0.34 0.33 0.345 (mm/mm)
endif
Other examples
If soi[-1'] = 1 then ß Notice the inverted commas around the negative value
If soi[15-Oct'] = 5 then
if (today = date('15-Oct') AND soi[-2'] = 3) then
Report Rules
The SOI Phases module is used in the Report module as it is in the Manager, with one exception.
Because the Report module doesn't use the Manager to parse its variables, lag values (negative numbers) should not be enclosed in inverted commas.
Examples
Module_names = soi
Variable_names = soi[Apr]
Variable_alias = soi
Units = -
Module_names = soi
Variable_names = soi[-2]
Variable_alias = soi[-2]
Units = -