1      logical function pre_equiv(csa,isml,isgm,msa,nsa,iequi,msm,nsm)
2c
3c $Id$
4c
5      implicit none
6c
7#include "mafdecls.fh"
8#include "util.fh"
9c
10      integer msa,msm,nsa,nsm
11      character*16 csa(msa)
12      integer isml(msa),isgm(msa),iequi(msm,4)
13c
14      integer i,j,ia,ja,number
15c
16      do 1 i=1,msm
17      iequi(i,1)=0
18      iequi(i,2)=0
19      iequi(i,3)=0
20      iequi(i,4)=0
21    1 continue
22c
23      do 2 i=1,nsa
24      if(iequi(isml(i),1).eq.0) iequi(isml(i),1)=i
25      iequi(isml(i),2)=i
26    2 continue
27c
28      do 3 i=1,nsm-1
29      do 4 j=i+1,nsm
30      if(iequi(j,3).eq.0) then
31      if(iequi(i,2)-iequi(i,1).eq.iequi(j,2)-iequi(j,1)) then
32      do 5 ia=iequi(i,1),iequi(i,2)
33      ja=ia+iequi(j,1)-iequi(i,1)
34      if(csa(ia).ne.csa(ja)) goto 4
35    5 continue
36      iequi(j,3)=i
37      endif
38      endif
39    4 continue
40    3 continue
41c
42      do 6 i=1,msm
43      iequi(i,4)=iequi(i,1)
44      iequi(i,1)=0
45      iequi(i,2)=0
46    6 continue
47c
48      do 7 i=1,nsa
49      if(iequi(isml(i),1).eq.0) iequi(isml(i),1)=isgm(i)
50      iequi(isml(i),2)=isgm(i)
51    7 continue
52c
53      do 8 i=1,nsm
54      number=1
55      do 9 j=1,nsm
56      if(iequi(j,3).eq.i) number=number+1
57    9 continue
58      if(number.gt.1) write(*,1000) number,i
59 1000 format(/,i5,' equivalent solute molecules ',i5)
60    8 continue
61c
62      pre_equiv=.true.
63      return
64c
65c 9999 continue
66c      pre_equiv=.false.
67      return
68      end
69