Library

5.1.6 Further Development Of The Array Version

Because of their identical structures, it is possible to build an integrated model which replicates the behaviour of the SAPLINGS, SMALL TREES and MEDIUM TREES modules. This is achieved by creating a large array (1×152). Each of the 152 elements represents one quarter of a year. There are 48 for saplings, 52 for small trees and 52 for medium trees. The module for harvestable trees is retained without change. The model integrating functionality of the three modules (SAPLINGS, SMALL TREES and MEDIUM TREES) is shown in Figure 5-20.

Key variables for the model Figure 5-20 are shown in Table 5-15.

This integrated model performs the same as the separate modules for SAPLINGS, SMALL TREES, MEDIUM TREES and HARVESTABLE TREES. This is readily confirmed by checking the following numbers and comparing with the corresponding results in the earlier modules:

Figure 5-20. TREES-ARRAY Model Simulated Over 60 Years—1-Qtr Timestep

Table 5-15. Key Variables in SMALL TREES-ARRAY Module—1-Qtr Timestep at Figure 5-20

Variable

Definition

Comment

Initial Small Trees- Array

0

Array Dimensions: 1..152

All 152 values, corresponding to each quarter of each of the 38 years of growing trees, are set to zero.

TREES-ARRAY

FOR (i = 1..152 |'Initial Trees—Array'[i])

Array Dimensions: 1..152

Plantings Array

50000/4*RANDOM(0.85, 1.00, 0.36)*1<<trees/qtr>>

Array Dimensions: 1..1

Losing Trees-Array

FOR (i = 1..152 |

'TREES-ARRAY'[i]/1<<qtr>>*'Culling Trees'[i])

Array Dimensions: 1..152

Culling Saplings-Array

{0.25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}

Array Dimensions: 1..48

Culling Small-Array

{0.33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}

Array Dimensions: 1..52

Culling Medium- Array

{0.33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}

Array Dimensions: 1..52

Culling Trees

CONCAT('Culling Saplings—Array',

'Culling Small-Array','Culling Medium-Array')

Array Dimensions: 1..152

This auxiliary variable combines each of the culling arrays into a single large array.

Shift Ageing

FOR(i=1..151 |

IF(ARRSUM('TREES-ARRAY')>=0<<trees>>,1,0)

*('TREES-ARRAY'[i]-'Losing Trees-Array'[i]

*1<<qtr>>)/1<<qtr>>)*

IF(ARRSUM('TREES-ARRAY')>0<<trees>>,1,0)

Each timestep, the array elements of TREES are aged. That is they are shifted to the next higher position in the array.

Becoming Harvestable-Array

FOR (i= 152..152 |

'TREES-ARRAY'[i]/1<<qtr>>)

The contents of the oldest array element are shifted out to provide input to HARVESTABLE TREES module.

Saplings

ARRSUM('TREES-ARRAY'[1..48])

The array elements corresponding to SAPLINGS in earlier modules are counted.

Small Trees

ARRSUM('TREES-ARRAY'[49..100])

The array elements corresponding to SMALL TREES in earlier modules are counted.

Medium Trees

ARRSUM('TREES-ARRAY'[101..152])

The array elements corresponding to MEDIUM TREES in earlier modules are counted.

HARVESTABLE TREES

0

Initial value = 0 <<trees>>

Harvesting

IF('HARVESTABLE TREES'>'Target Mature Trees',

('Target Annual Harvest'),

0<<trees/qtr>>)

A rudimentary management flight simulator interface is created to enable managers to experiment with the target number of mature trees and the target annual harvest, whilst not exceeding the capacity of the forest. This is shown in Figure 5-21. The module for calculating the size of the forest is shown in Figure 5-22.

Figure 5-21. Management Simulator Interface with Slide Controls and Time Graph Display
Figure 5-22. Forest Area Module