If no available high or medium quality forage is found within a deer's maximum travel distance, the deer will be placed randomly at a suitable grid location along the maximum travel distance perimeter, as explained in Section 2. Since this area may be distributed across several processors, a message is sent to each processor containing grid locations along the maximum travel distance perimeter. For the parallel model, dmovelow was separated into two subroutines. The first subroutine (of the same name), which is called only by the processor on which the deer is located, determines the search area perimeter, sends a message to each processor containing a portion of the perimeter, and waits for message responses before determining a deer's new location. The second subroutine, find_forage_cell_low, is called from within dmovelow, and also from get_deer_msg for all other processors containing grid cells on the maximum travel distance perimeter.
This process of sending messages and waiting for responses is different from that of the high/medium quality forage search because of the fixed search area perimeter. The message, referred to as a low quality search message, contains the left and right column positions of the search area, the deer's maximum water level, and a row limit value. The row limit is set to the first row of the search area for all processors north of the sending processor, and is set to the last row of the search area for all processors south of the sending processor. Thus any processor containing a row limit boundary will search the entire top or bottom row of the search perimeter in addition to the two left and right columns. For example, in Figure 11, processors PN and PN both contain row limit values, and therefore must search the entire row of gray colored grid cells.
Figure 11: Low quality search area.
After sending a message to each processor containing locations within the search perimeter, PN will attempt to locate a suitable grid cell along the local portion of the search area perimeter, according to the rules described in Section 2. The processor must then wait for message responses from all other processors to which messages were sent. The message response to a low quality search message, referred to as a low quality location message, contains the randomly selected grid cell position and a value indicating whether the grid position is above or below the deer's maximum water depth.
After all message responses are received, the final grid cell position will
be selected based on water level, as described in Section 2.
If a suitable grid position is found, the deer's row and column locations
will be updated. If this location
is owned by another processor, the deer's graze field is set to the value
indicating that the deer has completed the foraging sequence,
and the deer structure is then sent as a message to the new processor.