Page 398 - Handbook Of Multiphase Flow Assurance
P. 398
Computer code (Makogon, 1994, 1997) 397
C ... check only closer hydrogen atom on water for HB angles
C
CALL HBIMGE(Xi,Yi,Xa,Ya,Za,Xah,Yah,Zah,Iw,K)
C
C ... get water-bond vector
Xh = xw(Iw,3) - xw(Iw,K)
Yh = yw(Iw,3) - yw(Iw,K)
Zh = zw(Iw,3) - zw(Iw,K)
Rhsq = Xh*Xh + Yh*Yh + Zh*Zh
C
C ... get hydrogen-acceptor distance
Rahsq = Xah*Xah + Yah*Yah + Zah*Zah
C
C ... cos**2 of HB angle
Chbsq = (Xh*Xah + Yh*Yah + Zh*Zah)**2/(Rhsq*Rahsq)
IF (Chbsq . LT. Casqof) RETURN
C
Rsqred = RRhb*RRhb/Rsq
Ehb = DDhb*Rsqred**5*(5.D0*Rsqred -6.D0)*Chbsq*Swtchr
C
RETURN
END
C
C-------------------------------------------------------------------
C
SUBROUTINE SWITCH(Xon,Xoff,xxx,Swtch)
IMPLICIT REAL*8(A-H,O-Z)
Top = ((Xoff-xxx)**2)*(Xoff +2.D0*xxx -3.D0*Xon)
Swtch = Top/(Xoff-Xon)**3
RETURN
END
C
C-------------------------------------------------------------------
C
SUBROUTINE HBIMGE(xi,yi,xa,ya,za,Xah,Yah,Zah,Iw,K)
IMPLICIT REAL*8(A-H,O-Z)
integer a, ap
COMMON /BDIST / xmax, ymax, xmaxh, ymaxh
COMMON /side / side, unitside
COMMON /diag / diag
COMMON /WPOS / xw(6000,3), yw(6000,3), zw(6000,3), qw(3)
COMMON /SURF1 / a, ap
DIMENSION xwxa(2), ywya(2), zwza(2)
C
C for hydrogen bonding, apply minimum imaging to all 3 atoms

