                        readme for comm directory
/*D
    CommIntro - This is the introductory manual page for the comm 
directory. The comm directory contains routines and macros for the 
low level communication (message passing) between parallel processors.
For high-level (i.e. much easier and no less efficient) communications, 
see the mesh directory (BCintro).

Description:
   The comm directory contains routines for the easy startup of 
parallel processors on a network of workstations or a parallel computer.
It is intended to provide a uniform interface for the user on top of
non-uniform machines.

   Standard message passing macros are also provided. These run on 
top of the native message passing environment. In this way an application 
code is not written for a single architecture but is portable.

Communication logging:
   The comm macros provide for several levels of communication logging,
controlled both by compile-time and run-time switches.  The compile-time
switches allow you to remove all of the logging code, thus ensuring the
smallest and fastest executable.  The run-time switches allow you to 
leave logging code in your executable, but to control whether it is 
executed.  Since this is a rather complicated area, the various options
are discussed here.

Compile-time flags:
. LOGEVENTS   - log events in alog/blog format.  These include the 
	        communication operations, including the global ops (as states)
. NOCOMMLOG   - do NOT keep track of the number of sends and recv, or the
                amount of data sent

Run-time flags:
. cloglevel   - level of logging:
$             0 - no logging
$             1 - event logs (to a file for postmortum use)
$             2 - print out for each send and recv
$   Or the bits together to get the combinations (ie, 3 is print + log).
	For cloglevel to work, LOGEVENTS must be defined and NOCOMMLOG must
	NOT be defined. The default value of cloglevel is 1.

D*/
