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

