Page 410 - Handbook Of Multiphase Flow Assurance
P. 410

Computer code (Makogon, 1994, 1997)              409

                  END
            C
            C-------------------------------------------------------------------
            C
                  SUBROUTINE ZSAMPLE
                  IMPLICIT REAL*8(A-H,O-Z)
                  COMMON /chain / monodata(100,100),monocount(99),nbackbone
                  COMMON /ESAVE / Eold,Epold,Epoly(99,99),Ep(99,99),Esurf(99),Es(99)
                  COMMON /SPACE / xms(1000), yms(1000), zms(1000)
                  COMMON /ZSAVE / zrun(100),epolymer,Erun
                  COMMON /NATOMS/ Norgn, Nwatrs, M1, M2, M3, M4
                  COMMON /NHB   / nhb(100),nhbpoly,nhbcurr(100)

            c  zrun(1..3) - x,y,z(norgn)
            c  zrun(4)    - R^2 end-to-end
            c  zrun(5)    - H bonds between polymer segments
            c  zrun(6)    - H bonds between polymer and surface
            c  zrun(7)    - Total energy
            c  zrun(8)    - Epoly
            c  zrun(9)    - Esurf
            C ... accumulate positions of backbone atoms
                  zrun(1) = zrun(1)+xms(Norgn)
                  zrun(2) = zrun(2)+yms(Norgn)
                  zrun(3) = zrun(3)+zms(Norgn)
                  zrun(4) = zrun(4)+ (
                & (xms(M1)-xms(M2))*(xms(M1)-xms(M2))+(yms(M1)-yms(M2))*
                &  (yms(M1)-yms(M2))+(zms(M1)-zms(M2))*(zms(M1)-zms(M2)) )
                  zrun(5) = zrun(5)+nhbpoly
                  zrun(7) = zrun(7)+Eold
                  zrun(8) = zrun(8)+Epold
                  zrun(9) = zrun(9)+Eold-Epold

                  do 10 i=1,nbackbone
                  zrun(6) = zrun(6)+nhbcurr(i)
              10  zrun(i+10)=zrun(i+10)+zms(i)

            C accumulate polymer intramolecular energy
                  Epolymer=Epolymer+Epold

                  RETURN
                  END
            C
            C-------------------------------------------------------------------
            C
                  SUBROUTINE SUMMARY
   405   406   407   408   409   410   411   412   413   414   415