GAMESS User License Agreement

All GAMESS requestors MUST agree to the following license 
aggrement which covers all versions of GAMESS (source code, 
and binaries for Windows, Macintosh and ChemOffice).
With regard to the ab initio quantum chemistry code GAMESS, 
together with its associated graphics and utility programs, 
with which you have supplied me a copy, I agree to the following 
conditions:

1. I will not supply a copy of the code to anyone outside my 
institution or corporation for any reason whatsoever. Instead, 
I will refer any requests for copies of the program to you at 
ISUQCG. This in no way limits my making of copies of the code 
for backup purposes, or for running on more than one computer 
system at my institution or home.

2. I understand that copyright or ownership rights to GAMESS 
are retained by ISUQCG and contributors to the GAMESS package. 
I will not incorporate any part of GAMESS into any other program 
system, either for sale or for non-profit distribution, without 
written permission from ISUQCG,

3. I understand that no large program such as GAMESS can be 
considered to be bug free, and accordingly the ISUQCG supplies 
the GAMESS software on an "as is" basis, with no additional 
responsibility or liability,

4. If results obtained with GAMESS are published in the 
scientific literature, I will reference the program from the 
article M.W.Schmidt, K.K.Baldridge, J.A.Boatz, S.T.Elbert, 
M.S.Gordon, J.H.Jensen, S.Koseki, N.Matsunaga, K.A.Nguyen, 
S.J.Su, T.L.Windus, M.Dupuis, J.A.Montgomery 
J. Comput. Chem. 14, 1347-1363 (1993). Using specific methods 
included in GAMESS may require citing additional articles, 
as described in the manual. I agree to honor the request to 
cite additional papers, as appropriate.

5. This license is considered a "Research Group" license. 
Thus anyone directly associated with your research group is 
covered by the license and may share your copy of GAMESS on 
all of your group's computer resources.
