Page 382 - Handbook Of Multiphase Flow Assurance
P. 382

Computer code (Makogon, 1994, 1997)              381

            C-------------------------------------------------------------------
            C
                  SUBROUTINE NEWPOS
                  IMPLICIT REAL*8(A-H,O-Z)
                  COMMON /NATOMS/ Norgn, Nwatrs, M1, M2, M3, M4
                  COMMON /types / iatomtype(1000,2),nbondfound,natom,ngroups,ncall
                  COMMON /NWPOS / xn(1000), yn(1000), zn(1000)
                  COMMON /STEPS / Deltrn, Delrot, Delpiv, Acctrn, Accrot, Accpiv
                  COMMON /SPACE / xms(1000), yms(1000), zms(1000)
            C
            C       identify call type (translation move)
                  ncall=1
            C ... translate entire polymer
                  Xstep = Deltrn*ROULET()
                  Ystep = Deltrn*ROULET()
                  Zstep = Deltrn*ROULET()
            C
                  DO 100 I = 1, Natom
                  xn(I) = xms(I) + Xstep
                  yn(I) = yms(I) + Ystep
                  zn(I) = zms(I) + Zstep
             100  CONTINUE
                  CALL PBC
            C
                  RETURN
                  END
            C
            C-------------------------------------------------------------------
            C
                  SUBROUTINE PBC
                  IMPLICIT REAL*8(A-H,O-Z)
                  INTEGER A,AP
                  COMMON /BDIST / xmax, ymax, xmaxh, ymaxh
                  COMMON /side  / side, unitside
                  COMMON /diag  / diag
                  COMMON /PROPTY/ Bmax, Gmax, Rdel
                  COMMON /NATOMS/ Norgn, Nwatrs, M1, M2, M3, M4
                  COMMON /types / iatomtype(1000,2),nbondfound,natom,ngroups,ncall
                  COMMON /SPACE / xms(1000), yms(1000), zms(1000)
                  COMMON /SURF1 / a, ap
                  COMMON /NWPOS / xn(1000), yn(1000), zn(1000)
            C
            C  if chain goes over the top boundary, push it back in
            C
                       IF (zn(Norgn) .GT. Bmax) THEN
   377   378   379   380   381   382   383   384   385   386   387