Please read this information carefully before implementing the potential routine!
************************************************************************************


The potential routine <pot.f> consists of two subroutines

(i) inifit
(ii) swpot

Inifit simply reads the potential parameters from the files
<two.param> and <three.param>.  <two.param> contains the
parameters for the diatomic potentials, which are expressed as
Extended Rydberg functions. In <three.param> you find the parameters
for the three-body terms as proposed by Aguado and Paniagua
(J. Chem. Phys. 96 (1992) 1265). 
Inifit should be referenced before the potential is called for
the first time. All parameters are then stored in
the common blocks cparm and cint.

Swpot calculates the actual potential with these parameters.
It is called with call swpot(x,y,z,v), where x,y,z (Input)
are the three internuclear distances of the molecule F-H1-H2 :

       x = r(F-H1) y= r(H1-H2) z= r(F-H2)

On return the program will give you the potential v(x,y,z) in atomic units.

Further comments are included in the subroutines.

If you use the potential for a publication, please cite
K. Stark and H.-J. Werner, J. Chem. Phys, 104,6515 (1996)

	****************WARNING*********************

When you use an IBM computer, you might have problems with compiling
the routine <pot.f>. This is due to the variable dimension of
the arrays xex,xey,xez in the subroutine swpot. 
You can solve these problems in two ways.

i)Fix this adjustable dimension at the value 9, i.e., change the line
  "dimension xex(0:mmax),xey(0:mmax),xez(0:mmax)" in the subroutine swpot
  to
  "dimension xex(0:9),xey(0:9),xez(0:9)". 9 is the actual value 
  of mmax in this fit.


ii)Alternatively you can use the subroutine 
   "pot_deriv.f", which doesn't use these adjustable dimension.
   Furthermore, in this code the first derivatives of the potential energy
   with respect to the internuclear distances are calculated,too. The derivatives
   are often needed, e.g. in trajectory calculations.
   The organization of this code called "pot_deriv.f" is a bit different.

   When you start your main program, you have to initialize 
   the surface with a "call prepot" (prepot is the name of the subroutine).
   This procedure only reads the parameters and is comparable to "inifit".
   Any time you need the potential, call it by "call pote".
   "Pote" is an entry in the subroutine pote. 
   This is just another way not to read in the parameters every time you need
   the potential. No parameter list is need for "pote" provided
   you have a common-block

   common/potcm/r(3),pe,dpe(3)

   where r(3) are the three internuclear distances, i.e., r(1)=R(F-H(1)), 
   r(2)=r(H(1)-H(2)) and r(3)=R(F-H(2)) for the system F-H1-H2.
   pe is the potential energy in atomic units  at a given geometry R(1),R(2),R(3) and
   dpe(3) are the first derivatives of the potential energy with respect to
   the internuclear distances. 

If you have any problems or questions, here's my e-mail address :

stark@tc5.theochem.uni-stuttgart.de

Good luck for your calculations !

Klaus Stark
