#         C3 version 3.1.2:   Cluster Command & Control Suite
#           Oak Ridge National Laboratory, Oak Ridge, TN,
#     Authors:  M.Brim, R.Flanery, G.A.Geist, B.Luethke, S.L.Scott
#                 (C) 2001 All Rights Reserved
#
#                             NOTICE
#
# Permission to use, copy, modify, and distribute this software and
# its documentation for any purpose and without fee is hereby granted
# provided that the above copyright notice appear in all copies and
# that both the copyright notice and this permission notice appear in
# supporting documentation.
#
# Neither the Oak Ridge National Laboratory nor the Authors make any
# representations about the suitability of this software for any
# purpose.  This software is provided "as is" without express or
# implied warranty.

# The C3 tools were funded by the U.S. Department of Energy.


