c subroutine potbo(rab,rbc,rac,v) c implicit real*8(a-h,o-z) common/b21/ de1,de2,de3,re1,re2,re3 > ,b1,b2,b3 common/b22/a11,a12,a13,a21,a22,a23,a31,a32,a33,a14,a24,a34 common/btanh/ref1,ref2,ref3,sl1,sl2,sl3,r01,r02,r03 common/repuls/a,n1,n2,n3 common/refine/agb,cgbx,cgby,cgbz,agw,cgwx,cgwy,cgwz, > xn0b,yn0b,zn0b,xn0w,yn0w,zn0w c x=rab y=rbc z=rac c if(x.le.0.d0)x=1.d-4 if(y.le.0.d0)y=1.d-4 if(z.le.0.d0)z=1.d-4 c c hyperbolic tangent damping functions c c w1=.5d0*(1d0+tanh(sl1*(x-ref1))) c w2=.5d0*(1d0+tanh(sl2*(y-ref2))) c w3=.5d0*(1d0+tanh(sl2*(z-ref3))) c ww=w1*w2*w3 c c diatomic terms and their corrections c v=0.d0 ex=exp(-b1*(x-re1)) ey=exp(-b2*(y-re2)) ez=exp(-b3*(z-re3)) vxx=-de1*ex*(a11+ex*(a12+ex*(a13+ex*a14))) vyy=-de2*ey*(a21+ey*(a22+ey*(a23+ey*a24))) vzz=-de3*ez*(a31+ez*(a32+ez*(a33+ez*a34))) tx=de1*ex**n1 ty=de2*ey**n2 tz=de3*ez**n3 vxx=vxx+a*tx vyy=vyy+a*ty vzz=vzz+a*tz vbiat=vxx+vyy+vzz c write(6,*)n1,n2,n3,tx,ty,tx c c the triatomic term and its corrections c call pol3(x,y,z,v3xyz) c c if(x.lt.re1)x=re1 c if(y.lt.re2)y=re2 c if(z.lt.re3)z=re3 c call pol3(x,y,z,v3re) c c vtriat=ww*v3xyz+(1.d0-ww)*v3re vcbar=exp(-cgbx*(ex-xn0b)*(ex-xn0b))* > exp(-cgby*(ey-yn0b)*(ey-yn0b))* > exp(-cgbz*(ez-zn0b)*(ez-zn0b)) vcwel=exp(-cgwx*(ex-xn0w)*(ex-xn0w))* > exp(-cgwy*(ey-yn0w)*(ey-yn0w))* > exp(-cgwz*(ez-zn0w)*(ez-zn0w)) vtriat=.9935d0*v3xyz + agb*vcbar + agw*vcwel c if(vcbar.gt..001d0.or.vcwel.gt..001d0)write(6,*)agb,vcbar,agw,vcwel v=vbiat+vtriat if(v.gt.331.d0)v=331.0d0+log(v-330.0d0) vshow=v+de2 c write(8,11)x,y,z,sx,sy,sz,vxx,vyy,vzz,vtriat,vshow 11 format(6f5.2,5f8.2) end