          LICENSE of VEC, SAPI, DIMS and Associated Programs

COPYRIGHT NOTICE:

Copyright (c) 1985-2002,
              Research group on Methods of Solving Crystal Structures,
              Institute of Physics, Chinese Academy of Sciences.
              All rights reserved.
Authors:
         VEC
             Wan Zheng-hua, Liu Yu-dong, Fu Zheng-qing, Li Yang,
             Cheng Ting-zhu, Li Fang-hua & Fan Hai-fu
         SAPI
             Zheng Chao-de, Gu Yuan-xin, Wan Zheng-hua, Yao Jia-xing &
             Fan Hai-fu
         DIMS
             Fu Zheng-qing, Li Yang, Liu Yu-dong & Fan Hai-fu

LICENSE AGREEMENT:

In consideration of being allowed to copy and/or use this software,
the user agrees to be bound by the terms and conditions of this License
Agreement as "Licensee."  This Agreement gives you, the LICENSEE,
certain rights and obligations.  By using the software, you indicate
that you have read, understood, and will comply with the following
terms and conditions.

Permission is hereby granted to use or copy these programs for academic
purpose, provided the text of this NOTICE (to include COPYRIGHT
NOTICE, LICENSE AGREEMENT, and DISCLAIMER) is retained with all
copies.  Permission to modify the code and to distribute modified code
is granted, provided the text of this NOTICE is retained, a notice
that the code was modified is included with the above COPYRIGHT NOTICE
and with the COPYRIGHT NOTICE in any modified files, and that this
file ("LICENSE") is distributed with the modified code.

Title to copyright to this software and its derivatives and to any
associated documentation shall at all times remain with Licensor and
LICENSEE agrees to preserve the same.  Nothing in this Agreement shall
be construed as conferring rights to use in advertising, publicity or
otherwise any trademark of the name of the Institute of Physics, Chinese
Academy of Sciences.

DISCLAIMER:

THIS SOFTWARE IS PROVIDED BY THE AUTHORS "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
