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