Page 392 - Handbook Of Multiphase Flow Assurance
P. 392

Computer code (Makogon, 1994, 1997)              391

                  Eold=0.D0
                  do 60 i=1,nbackbone
              60  Eold=Eold+Esurf(i)

                  Eold=Eold+Epold
                  RETURN
                  END
            C
            C-------------------------------------------------------------------
            C
                  SUBROUTINE ENERGY(Ener)
                  IMPLICIT REAL*8(A-H,O-Z)
                  integer a, ap
                  integer*2 ncenter,ncenter2
                  COMMON /BDIST / xmax, ymax, xmaxh, ymaxh
                  COMMON /side / side, unitside
                  COMMON /diag / diag
                  COMMON /types / iatomtype(1000,2),nbondfound,natom,ngroups,ncall
                  COMMON /atoms / atomdata(1000,4),atomdata2(1000,4)
                  COMMON /chain / monodata(100,100),monocount(99),nbackbone
                  COMMON /bonds / ibonddata(1000,4),nbonds(1000)
                  COMMON /LJPAM / DD(6,1000), RR(6,1000), DHB(1000), RHB(1000)
                  COMMON /NATOMS/ Norgn, Nwatrs, M1, M2, M3, M4
                  COMMON /NHB  / nhb(100),nhbpoly,nhbcurr(100)
                  COMMON /NWPOS / xn(1000), yn(1000), zn(1000)
                  COMMON /POTPAM/ Casqof,Co,Rsqon,Rsqoff,Rcut,Pi, Tk,Temp
                  COMMON /WPOS / xw(6000,3), yw(6000,3), zw(6000,3), qw(3)
                  COMMON /SURF1 / a, ap
                  COMMON /center/ ncenter,ncenter2
                  COMMON /ESAVE / Eold,Epold,Epoly(99,99),Ep(99,99),Esurf(99),Es(99)
                  COMMON /ZSAVE / zrun(100),epolymer,Erun
            C
            C Calculate interaction of polymer with the surface.
            C Outer loop over all polymer segments
            C   set temporary surface energies to accepted values
                  do 100 i=1,nbackbone
              100 Es(i)=Esurf(i)
            c determine which segments were moved and need new energy calculation
                  ni = 1
                  nii= nbackbone
                  if(ncall.eq.3) then
                  ni = 1
                  nii= ncenter
                  if(ncenter.gt.nbackbone/2) then
                   ni = ncenter
   387   388   389   390   391   392   393   394   395   396   397