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
   393   394   395   396   397   398   399   400   401   402   403