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.
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
FQ_LOW,
indicating that the deer has completed the foraging sequence,
and the deer structure is then sent as a message to the new processor.