CF 10.0b3:

Added option to use surface flow receiver priority map which can be
used to give preference to certain cells (e.g. the locations of rain
gardens) when constructing the non-topographic surface flow tables for
simulating rooftop connectivity.

The priority map, specified with the 'priority' command line option,
should be an integer GRASS raster with value "1" indicating a priority
cell, all other cells should have nodata values.

An optional priority map weight can be specified on the command line,
using the 'weight' option.  The default weight is 3.  This means that
CF will value priority cells three times greater than non-priority
cells.  The priority weighting is multiplied by the distance of the
potential receiver to give a final rank when searching for pervious
cells to include in the surface flow table.

For example, consider a roof cell whose non-connected flow is to be
routed to the nearest rain garden.  With a priority weight of 3, a
pervious cell adjacent (i.e. sharing an edge, not a corner) to the
roof would receive a rank of 3, while a rain garden cell two cells
away from the roof would receive a rank of 2.  Two is less than three,
so the rain garden would receive the disconnected flow portion for the
roof, instead of the adjacent pervious cell.  The purpose of the
distance weighting is to ensure that rain gardens that are "too far
away" (e.g. across the street) do not recieve flow.  The optional
weight parameter can be used when the default weight of  three is too
large or two small.

Note that in order for a priority cell to receive flow it must have an
elevation less than the  ground surface elevation of the  roof/donor
cell.  This is primarily because the first use of priority maps is to
route to rain gardens, which by design are situated topographically
below the ground on which a house is sited.  This behavior could be
made optional in a future release with relative ease.