hdiff output

r30243/commons.f90 2016-07-06 15:36:28.591941690 +0100 r30242/commons.f90 2016-07-06 15:36:30.403966190 +0100
 32:      &        MYEUNIT, MYMUNIT, MYBUNIT, MYRUNIT, MYPUNIT, NFREEZETYPEA, & 32:      &        MYEUNIT, MYMUNIT, MYBUNIT, MYRUNIT, MYPUNIT, NFREEZETYPEA, &
 33:      &        TBPSTEPS, TBPCI, TBPBASIN, NTSITES, NRBGROUP, NZERO, PTMCDS_FRQ, PTMCDUMPENERFRQ, MONITORINT, NBLOCKS, & 33:      &        TBPSTEPS, TBPCI, TBPBASIN, NTSITES, NRBGROUP, NZERO, PTMCDS_FRQ, PTMCDUMPENERFRQ, MONITORINT, NBLOCKS, &
 34:      &        BINARY_EXAB_FRQ, NRESMIN, USERES, EXEQ, NONEDAPBC, STRUC, CHEMSHIFTITER, GRIDSIZE, MFETRUNS, BESTINVERT, GCNATOMS, & 34:      &        BINARY_EXAB_FRQ, NRESMIN, USERES, EXEQ, NONEDAPBC, STRUC, CHEMSHIFTITER, GRIDSIZE, MFETRUNS, BESTINVERT, GCNATOMS, &
 35:      &        GCINT, GCRELAX, MTARGETS, & 35:      &        GCINT, GCRELAX, MTARGETS, &
 36:      &        INTCONSEP, INTREPSEP, NCONSTRAINTON, CPREPSEP, CPCONSEP, NCONGEOM, & 36:      &        INTCONSEP, INTREPSEP, NCONSTRAINTON, CPREPSEP, CPCONSEP, NCONGEOM, &
 37:      &        NCPREPULSIVE, NCPCONSTRAINT, MAXCONUSE, INTCONSTEPS, INTRELSTEPS, INTSTEPS1, INTLJSTEPS, & 37:      &        NCPREPULSIVE, NCPCONSTRAINT, MAXCONUSE, INTCONSTEPS, INTRELSTEPS, INTSTEPS1, INTLJSTEPS, &
 38:      &        NTRAPPOW, MAXINTIMAGE, CHECKREPINTERVAL, INTFREEZEMIN, INTNTRIESMAX, INTIMAGEINCR, & 38:      &        NTRAPPOW, MAXINTIMAGE, CHECKREPINTERVAL, INTFREEZEMIN, INTNTRIESMAX, INTIMAGEINCR, &
 39:      &        NCONSTRAINTFIX, INTIMAGECHECK, NREPULSIVEFIX, INTIMAGE, NREPULSIVE, & 39:      &        NCONSTRAINTFIX, INTIMAGECHECK, NREPULSIVEFIX, INTIMAGE, NREPULSIVE, &
 40:      &        NNREPULSIVE, NCONSTRAINT, INTMUPDATE, DUMPINTEOSFREQ, DUMPINTXYZFREQ, & 40:      &        NNREPULSIVE, NCONSTRAINT, INTMUPDATE, DUMPINTEOSFREQ, DUMPINTXYZFREQ, &
 41:      &        LOCALPERMNEIGH, LOCALPERMMAXSEP, MAXNACTIVE, QCIPERMCHECKINT, & 41:      &        LOCALPERMNEIGH, LOCALPERMMAXSEP, MAXNACTIVE, QCIPERMCHECKINT, &
 42:      &        MLPIN, MLPOUT, MLPHIDDEN, MLPDATA, NMLP, DJWRBID, NHEXAMERS 42:      &        MLPIN, MLPOUT, MLPHIDDEN, MLPDATA, NMLP, DJWRBID
 43:   43:  
 44:       DOUBLE PRECISION RHO, GAMMA, SIG, SCEPS, SCC, TOLB, T12FAC, XMOVERENORM, RESIZE, QTSALLIS, & 44:       DOUBLE PRECISION RHO, GAMMA, SIG, SCEPS, SCC, TOLB, T12FAC, XMOVERENORM, RESIZE, QTSALLIS, &
 45:      &                 CQMAX, RADIUS, BQMAX,  MAXBFGS, DECAYPARAM, SYMTOL1, SYMTOL2, SYMTOL3, SYMTOL4, SYMTOL5, PGSYMTOLS(3),& 45:      &                 CQMAX, RADIUS, BQMAX,  MAXBFGS, DECAYPARAM, SYMTOL1, SYMTOL2, SYMTOL3, SYMTOL4, SYMTOL5, PGSYMTOLS(3),&
 46:      &                 ECONV, TOLD, TOLE, SYMREM(120,3,3), GMAX, CUTOFF, PCUT, EXPFAC, EXPD, CENTX, CENTY, CENTZ, & 46:      &                 ECONV, TOLD, TOLE, SYMREM(120,3,3), GMAX, CUTOFF, PCUT, EXPFAC, EXPD, CENTX, CENTY, CENTZ, &
 47:      &                 BOXLX, BOXLY, BOXLZ, BOX3D(3), PCUTOFF, SUPSTEP, SQUEEZER, SQUEEZED, COOPCUT, STOCKMU, STOCKLAMBDA, & 47:      &                 BOXLX, BOXLY, BOXLZ, BOX3D(3), PCUTOFF, SUPSTEP, SQUEEZER, SQUEEZED, COOPCUT, STOCKMU, STOCKLAMBDA, &
 48:      &                 TFAC(3), RMS, TEMPS, SACCRAT, CEIG, PNEWJUMP, EAMP, DISTFAC, ODDCHARGE, COULQ, COULSWAP, & 48:      &                 TFAC(3), RMS, TEMPS, SACCRAT, CEIG, PNEWJUMP, EAMP, DISTFAC, ODDCHARGE, COULQ, COULSWAP, &
 49:      &                 COULTEMP, APP, AMM, APM, XQP, XQM, ALPHAP, ALPHAM, ZSTAR, K_COMP, DGUESS, GUIDECUT, EFAC,&  49:      &                 COULTEMP, APP, AMM, APM, XQP, XQM, ALPHAP, ALPHAM, ZSTAR, K_COMP, DGUESS, GUIDECUT, EFAC,& 
 50:      &                 TRENORM, HISTMIN, HISTMAX, HISTFAC, EPSSPHERE, FINALCUTOFF, SHELLPROB, RINGROTSCALE, & 50:      &                 TRENORM, HISTMIN, HISTMAX, HISTFAC, EPSSPHERE, FINALCUTOFF, SHELLPROB, RINGROTSCALE, &
 51:      &                 HISTFACMUL, HPERCENT, AVOIDDIST, MAXERISE, MAXEFALL, TSTART, MATDIFF, STICKYSIG, SDTOL, & 51:      &                 HISTFACMUL, HPERCENT, AVOIDDIST, MAXERISE, MAXEFALL, TSTART, MATDIFF, STICKYSIG, SDTOL, &
 52:      &                 MinimalTemperature, MaximalTemperature, SwapProb, hdistconstraint, COREFRAC, TSTAR, & 52:      &                 MinimalTemperature, MaximalTemperature, SwapProb, hdistconstraint, COREFRAC, TSTAR, &


r30243/djwgr1.f90 2016-07-06 15:36:28.947946504 +0100 r30242/djwgr1.f90 2016-07-06 15:36:30.763971084 +0100
 15: !   along with this program; if not, write to the Free Software 15: !   along with this program; if not, write to the Free Software
 16: !   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 16: !   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 17: ! 17: !
 18: !  Energy and gradient for a genrigid setup example 18: !  Energy and gradient for a genrigid setup example
 19: ! 19: !
 20: !  NATOMS = total number of sites 20: !  NATOMS = total number of sites
 21: !  NRIGIDBODY = # rigid bodies 21: !  NRIGIDBODY = # rigid bodies
 22: ! 22: !
 23: SUBROUTINE DJWGR1(NATOMS,X,V,ENERGY,GTEST) 23: SUBROUTINE DJWGR1(NATOMS,X,V,ENERGY,GTEST)
 24: USE GENRIGID 24: USE GENRIGID
 25: USE COMMONS, ONLY : NHEXAMERS 
 26: IMPLICIT NONE 25: IMPLICIT NONE
 27: LOGICAL GTEST 26: LOGICAL GTEST
 28: INTEGER NATOMS, J1, J2, J3, J4, NPOS1, NPOS2 27: INTEGER NATOMS, J1, J2, J3, J4, NPOS1, NPOS2
 29: DOUBLE PRECISION X(3*NATOMS), V(3*NATOMS), ENERGY, DUMMY2, DUMMY3, DUMMY, DIST, SIGMA, XDUMM, RHO, RDIST, RAD, EPSEFF 28: DOUBLE PRECISION X(3*NATOMS), V(3*NATOMS), ENERGY, DUMMY2, DUMMY3, DUMMY, DIST, SIGMA, XDUMM, RHO, RDIST, RAD, EPSEFF
 30: DOUBLE PRECISION RADHEX, SIGMAHEX, SIGMAPH 29: DOUBLE PRECISION FATT, DFATT, FREP, DFREP
 31: DOUBLE PRECISION FATT, DFATT, FREP, DFREP, FREPHEX, DFREPHEX, FREPPH, DFREPPH 
 32: ! 30: !
 33: ! Derivatives of the pairwise site-site terms in terms of distance 31: ! Derivatives of the pairwise site-site terms in terms of distance
 34: ! 32: !
 35: FATT(RHO,XDUMM)=-1.0D0 + (1.0D0 - EXP(RHO*(1.0D0 - XDUMM)))**2 33: FATT(RHO,XDUMM)=-1.0D0 + (1.0D0 - EXP(RHO*(1.0D0 - XDUMM)))**2
 36: DFATT(RHO,XDUMM)=2.0D0*(-EXP(2.0D0*RHO*(1.0D0-XDUMM)) + EXP(RHO*(1.0D0-XDUMM)))*RHO 34: DFATT(RHO,XDUMM)=2.0D0*(-EXP(2.0D0*RHO*(1.0D0-XDUMM)) + EXP(RHO*(1.0D0-XDUMM)))*RHO
 37: FREP(SIGMA,XDUMM)=(SIGMA/XDUMM)**12 35: FREP(SIGMA,XDUMM)=(SIGMA/XDUMM)**12
 38: DFREP(SIGMA,XDUMM)=-12.0D0*(SIGMA/XDUMM)**12/XDUMM 36: DFREP(SIGMA,XDUMM)=-12.0D0*(SIGMA/XDUMM)**12/XDUMM
 39: FREPHEX(SIGMA,XDUMM)=(SIGMAHEX/XDUMM)**12 
 40: DFREPHEX(SIGMA,XDUMM)=-12.0D0*(SIGMAHEX/XDUMM)**12/XDUMM 
 41: FREPPH(SIGMA,XDUMM)=(SIGMAPH/XDUMM)**12 
 42: DFREPPH(SIGMA,XDUMM)=-12.0D0*(SIGMAPH/XDUMM)**12/XDUMM 
 43:  37: 
 44: ENERGY=0.0D0 38: ENERGY=0.0D0
 45: IF (GTEST) V(1:3*NATOMS)=0.0D0 39: IF (GTEST) V(1:3*NATOMS)=0.0D0
 46: ! 40: !
 47: ! 5 Morse plus two axial site pentamers from 41: ! 5 Morse plus two axial site pentamers from
 48: ! S.N. Fejer, T. James, J. Hernandez-Rojas and D.J. Wales, Phys. Chem. Chem. Phys., 11, 2098-2104 (2009).  42: ! S.N. Fejer, T. James, J. Hernandez-Rojas and D.J. Wales, Phys. Chem. Chem. Phys., 11, 2098-2104 (2009). 
 49: ! Energy Landscapes for Shells Assembled from Pentagonal and Hexagonal Pyramids  43: ! Energy Landscapes for Shells Assembled from Pentagonal and Hexagonal Pyramids 
 50: ! 44: !
 51: RAD=5.0D0 45: RAD=5.0D0
 52: RADHEX=RAD*2.0*0.5877852522924731D0  ! 2 * Sin[36] to give the same edge length 
 53:  
 54: RHO=3.0D0 46: RHO=3.0D0
 55: SIGMA=(1.0D0+RAD*SQRT((5.0D0+SQRT(5.0D0))/2.0D0)) 47: SIGMA=(1.0D0+RAD*SQRT((5.0D0+SQRT(5.0D0))/2.0D0))
 56: SIGMAHEX=(1.0D0+RADHEX*SQRT((5.0D0+SQRT(5.0D0))/2.0D0)) 48: EPSEFF=0.28D0
 57: SIGMAPH=0.5D0*(SIGMA + SIGMAHEX) 
 58: EPSEFF=0.4D0 
 59:  49: 
 60: DO J1=1,NRIGIDBODY 50: DO J1=1,NRIGIDBODY
 61:    DO J2=J1+1,NRIGIDBODY 51:    DO J2=J1+1,NRIGIDBODY
 62: ! 52: !
 63: ! Three different sorts of axial repulsion 53: ! Three different sorts of axial repulsion
 64: ! Same for all hexamers and pentamers. 
 65: ! 54: !
 66:       NPOS1=RIGIDGROUPS(1,J1) 55:       NPOS1=RIGIDGROUPS(NSITEPERBODY(J1)-1,J1)
 67:       NPOS2=RIGIDGROUPS(1,J2) 56:       NPOS2=RIGIDGROUPS(NSITEPERBODY(J2)-1,J2)
 68:       DIST=SQRT((X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))**2+(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))**2+(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))**2) 57:       DIST=SQRT((X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))**2+(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))**2+(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))**2)
 69:       ENERGY=ENERGY+EPSEFF*FREP(SIGMA,DIST)  ! axial-axial repulsive term 58:       ENERGY=ENERGY+EPSEFF*FREP(SIGMA,DIST)  ! axial-axial repulsive term
 70:       IF (GTEST) THEN 59:       IF (GTEST) THEN
 71:          IF (J1.LE.NRIGIDBODY-NHEXAMERS) THEN ! J1 is a pentamer 60:          DUMMY2=EPSEFF*DFREP(SIGMA,DIST)
 72:             IF (J2.LE.NRIGIDBODY-NHEXAMERS) THEN ! J2 is a pentamer 
 73:                DUMMY2=EPSEFF*DFREP(SIGMA,DIST) 
 74:             ELSE ! J2 is a hexamer 
 75:                DUMMY2=EPSEFF*DFREPPH(SIGMAPH,DIST) 
 76:             ENDIF 
 77:          ELSE ! J2 is a hexamer, and J2 > J1 is also a hexamer 
 78:             DUMMY2=EPSEFF*DFREPHEX(SIGMAHEX,DIST) 
 79:          ENDIF 
 80:          RDIST=1.0D0/DIST 61:          RDIST=1.0D0/DIST
 81:          CALL DJWGR1GRAD(NATOMS,NPOS1,NPOS2,DUMMY2,RDIST,X,V) 62:          V(3*(NPOS1-1)+1)=V(3*(NPOS1-1)+1)+DUMMY2*(X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))*RDIST
  63:          V(3*(NPOS1-1)+2)=V(3*(NPOS1-1)+2)+DUMMY2*(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))*RDIST
  64:          V(3*(NPOS1-1)+3)=V(3*(NPOS1-1)+3)+DUMMY2*(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))*RDIST
  65:          V(3*(NPOS2-1)+1)=V(3*(NPOS2-1)+1)-DUMMY2*(X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))*RDIST
  66:          V(3*(NPOS2-1)+2)=V(3*(NPOS2-1)+2)-DUMMY2*(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))*RDIST
  67:          V(3*(NPOS2-1)+3)=V(3*(NPOS2-1)+3)-DUMMY2*(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))*RDIST
 82:       ENDIF 68:       ENDIF
 83:       NPOS1=RIGIDGROUPS(1,J1) 69:       NPOS1=RIGIDGROUPS(NSITEPERBODY(J1)-1,J1)
 84:       NPOS2=RIGIDGROUPS(2,J2) 70:       NPOS2=RIGIDGROUPS(NSITEPERBODY(J2),J2)
 85:       DIST=SQRT((X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))**2+(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))**2+(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))**2) 71:       DIST=SQRT((X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))**2+(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))**2+(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))**2)
 86:       ENERGY=ENERGY+EPSEFF*FREP(SIGMA,DIST)  ! axial-axial repulsive term 72:       ENERGY=ENERGY+EPSEFF*FREP(SIGMA,DIST)  ! axial-axial repulsive term
 87:       IF (GTEST) THEN 73:       IF (GTEST) THEN
 88:          IF (J1.LE.NRIGIDBODY-NHEXAMERS) THEN ! J1 is a pentamer 74:          DUMMY2=EPSEFF*DFREP(SIGMA,DIST)
 89:             IF (J2.LE.NRIGIDBODY-NHEXAMERS) THEN ! J2 is a pentamer 
 90:                DUMMY2=EPSEFF*DFREP(SIGMA,DIST) 
 91:             ELSE ! J2 is a hexamer 
 92:                DUMMY2=EPSEFF*DFREPPH(SIGMAPH,DIST) 
 93:             ENDIF 
 94:          ELSE ! J2 is a hexamer, and J2 > J1 is also a hexamer 
 95:             DUMMY2=EPSEFF*DFREPHEX(SIGMAHEX,DIST) 
 96:          ENDIF 
 97:          RDIST=1.0D0/DIST 75:          RDIST=1.0D0/DIST
 98:          CALL DJWGR1GRAD(NATOMS,NPOS1,NPOS2,DUMMY2,RDIST,X,V) 76:          V(3*(NPOS1-1)+1)=V(3*(NPOS1-1)+1)+DUMMY2*(X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))*RDIST
  77:          V(3*(NPOS1-1)+2)=V(3*(NPOS1-1)+2)+DUMMY2*(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))*RDIST
  78:          V(3*(NPOS1-1)+3)=V(3*(NPOS1-1)+3)+DUMMY2*(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))*RDIST
  79:          V(3*(NPOS2-1)+1)=V(3*(NPOS2-1)+1)-DUMMY2*(X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))*RDIST
  80:          V(3*(NPOS2-1)+2)=V(3*(NPOS2-1)+2)-DUMMY2*(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))*RDIST
  81:          V(3*(NPOS2-1)+3)=V(3*(NPOS2-1)+3)-DUMMY2*(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))*RDIST
 99:       ENDIF 82:       ENDIF
100:       NPOS1=RIGIDGROUPS(2,J1) 83:       NPOS1=RIGIDGROUPS(NSITEPERBODY(J1),J1)
101:       NPOS2=RIGIDGROUPS(1,J2) 84:       NPOS2=RIGIDGROUPS(NSITEPERBODY(J2)-1,J2)
102:       DIST=SQRT((X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))**2+(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))**2+(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))**2) 85:       DIST=SQRT((X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))**2+(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))**2+(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))**2)
103:       ENERGY=ENERGY+EPSEFF*FREP(SIGMA,DIST)  ! axial 2-axial repulsive term 86:       ENERGY=ENERGY+EPSEFF*FREP(SIGMA,DIST)  ! axial 2-axial repulsive term
104:       IF (GTEST) THEN 87:       IF (GTEST) THEN
105:          IF (J1.LE.NRIGIDBODY-NHEXAMERS) THEN ! J1 is a pentamer 88:          DUMMY2=EPSEFF*DFREP(SIGMA,DIST)
106:             IF (J2.LE.NRIGIDBODY-NHEXAMERS) THEN ! J2 is a pentamer 
107:                DUMMY2=EPSEFF*DFREP(SIGMA,DIST) 
108:             ELSE ! J2 is a hexamer 
109:                DUMMY2=EPSEFF*DFREPPH(SIGMAPH,DIST) 
110:             ENDIF 
111:          ELSE ! J2 is a hexamer, and J2 > J1 is also a hexamer 
112:             DUMMY2=EPSEFF*DFREPHEX(SIGMAHEX,DIST) 
113:          ENDIF 
114:          RDIST=1.0D0/DIST 89:          RDIST=1.0D0/DIST
115:          CALL DJWGR1GRAD(NATOMS,NPOS1,NPOS2,DUMMY2,RDIST,X,V) 90:          V(3*(NPOS1-1)+1)=V(3*(NPOS1-1)+1)+DUMMY2*(X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))*RDIST
  91:          V(3*(NPOS1-1)+2)=V(3*(NPOS1-1)+2)+DUMMY2*(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))*RDIST
  92:          V(3*(NPOS1-1)+3)=V(3*(NPOS1-1)+3)+DUMMY2*(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))*RDIST
  93:          V(3*(NPOS2-1)+1)=V(3*(NPOS2-1)+1)-DUMMY2*(X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))*RDIST
  94:          V(3*(NPOS2-1)+2)=V(3*(NPOS2-1)+2)-DUMMY2*(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))*RDIST
  95:          V(3*(NPOS2-1)+3)=V(3*(NPOS2-1)+3)-DUMMY2*(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))*RDIST
116:       ENDIF 96:       ENDIF
117: ! 97: !
118: ! Sum over the attractive sites. 98: ! Sum over the attractive sites
119: ! Same for p-p, p-h, and h-h. 
120: ! 99: !
121:       DO J3=3,NSITEPERBODY(J1)     ! # Morse sites in rb J1 NSITEPERBODY(J1)100:       DO J3=1,NSITEPERBODY(J1)-2     ! # Morse sites in rb J1 NSITEPERBODY(J1)
122:          NPOS1=RIGIDGROUPS(J3,J1)    ! where is this site in the list?101:          NPOS1=RIGIDGROUPS(J3,J1)    ! where is this site in the list?
123:          DO J4=3,NSITEPERBODY(J2)  ! # Morse sites in rb J2 NSITEPERBODY(J2)102:          DO J4=1,NSITEPERBODY(J2)-2  ! # Morse sites in rb J2 NSITEPERBODY(J2)
124:             NPOS2=RIGIDGROUPS(J4,J2) ! where is this site in the list?103:             NPOS2=RIGIDGROUPS(J4,J2) ! where is this site in the list?
125:             DIST=SQRT((X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))**2+(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))**2+(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))**2)104:             DIST=SQRT((X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))**2+(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))**2+(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))**2)
126:             ENERGY=ENERGY+FATT(RHO,DIST) 105:             ENERGY=ENERGY+FATT(RHO,DIST) 
127:             IF (GTEST) THEN106:             IF (GTEST) THEN
128:                DUMMY2=DFATT(RHO,DIST)107:                DUMMY2=DFATT(RHO,DIST)
129:                RDIST=1.0D0/DIST108:                RDIST=1.0D0/DIST
130:                CALL DJWGR1GRAD(NATOMS,NPOS1,NPOS2,DUMMY2,RDIST,X,V)109:                V(3*(NPOS1-1)+1)=V(3*(NPOS1-1)+1)+DUMMY2*(X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))*RDIST
 110:                V(3*(NPOS1-1)+2)=V(3*(NPOS1-1)+2)+DUMMY2*(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))*RDIST
 111:                V(3*(NPOS1-1)+3)=V(3*(NPOS1-1)+3)+DUMMY2*(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))*RDIST
 112:                V(3*(NPOS2-1)+1)=V(3*(NPOS2-1)+1)-DUMMY2*(X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))*RDIST
 113:                V(3*(NPOS2-1)+2)=V(3*(NPOS2-1)+2)-DUMMY2*(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))*RDIST
 114:                V(3*(NPOS2-1)+3)=V(3*(NPOS2-1)+3)-DUMMY2*(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))*RDIST
131:             ENDIF115:             ENDIF
132:          ENDDO116:          ENDDO
133:       ENDDO117:       ENDDO
134:    ENDDO118:    ENDDO
135: ENDDO119: ENDDO
136: 120: 
137: END SUBROUTINE DJWGR1121: END SUBROUTINE DJWGR1
138:  
139: SUBROUTINE DJWGR1GRAD(NATOMS,NPOS1,NPOS2,DUMMY2,RDIST,X,V) 
140: USE MODHESS 
141: IMPLICIT NONE 
142: INTEGER NPOS1, NPOS2, NATOMS, J1, J2, J3, J4 
143: DOUBLE PRECISION X(3*NATOMS), DUMMY2, RDIST, DUMMY4, DUMMY5, V(3*NATOMS) 
144:  
145: DUMMY4=DUMMY2*RDIST 
146: J3=3*(NPOS1-1) 
147: J4=3*(NPOS2-1) 
148:  
149: DO J1=1,3 
150:    DUMMY5=DUMMY4*(X(J3+J1)-X(J4+J1)) 
151:    V(J3+J1)=V(J3+J1)+DUMMY5 
152:    V(J4+J1)=V(J4+J1)-DUMMY5 
153: ENDDO 
154:  
155: END SUBROUTINE DJWGR1GRAD 
156:  


r30243/finalio.f90 2016-07-06 15:36:29.287951101 +0100 r30242/finalio.f90 2016-07-06 15:36:31.131976033 +0100
 11: !   but WITHOUT ANY WARRANTY; without even the implied warranty of 11: !   but WITHOUT ANY WARRANTY; without even the implied warranty of
 12: !   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 12: !   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 13: !   GNU General Public License for more details. 13: !   GNU General Public License for more details.
 14: ! 14: !
 15: !   You should have received a copy of the GNU General Public License 15: !   You should have received a copy of the GNU General Public License
 16: !   along with this program; if not, write to the Free Software 16: !   along with this program; if not, write to the Free Software
 17: !   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 17: !   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 18: ! 18: !
 19: SUBROUTINE FINALIO 19: SUBROUTINE FINALIO
 20:   USE COMMONS 20:   USE COMMONS
 21:   USE GENRIGID, ONLY : RIGIDINIT, NRIGIDBODY, NSITEPERBODY 21:   USE GENRIGID, ONLY : RIGIDINIT
 22:   USE MODAMBER 22:   USE MODAMBER
 23:   USE MODAMBER9, ONLY : COORDS1,IH,M04,AMBFINALIO_NODE 23:   USE MODAMBER9, ONLY : COORDS1,IH,M04,AMBFINALIO_NODE
 24:   USE AMBER12_INTERFACE_MOD, ONLY : AMBER12_FINISH, AMBER12_WRITE_RESTART, AMBER12_WRITE_PDB, & 24:   USE AMBER12_INTERFACE_MOD, ONLY : AMBER12_FINISH, AMBER12_WRITE_RESTART, AMBER12_WRITE_PDB, &
 25:        AMBER12_WRITE_XYZ 25:        AMBER12_WRITE_XYZ
 26:   USE QMODULE 26:   USE QMODULE
 27:   USE MODCHARMM 27:   USE MODCHARMM
 28:   USE AMHGLOBALS, ONLY:NMRES,IRES 28:   USE AMHGLOBALS, ONLY:NMRES,IRES
 29:   USE BGUPMOD 29:   USE BGUPMOD
 30:   USE PERMU 30:   USE PERMU
 31:   USE MODHESS, ONLY : HESS, MASSWT 31:   USE MODHESS, ONLY : HESS, MASSWT
787:            ENDDO787:            ENDDO
788:         ENDDO788:         ENDDO
789:      ELSE789:      ELSE
790:         IF (CSMT.AND.(.NOT.SYMMETRIZECSM)) THEN790:         IF (CSMT.AND.(.NOT.SYMMETRIZECSM)) THEN
791:            WRITE(MYUNIT3,'(I6)') NATOMS791:            WRITE(MYUNIT3,'(I6)') NATOMS
792:            WRITE(MYUNIT3,'(A,I6,2(A,G20.10))') 'averaged structure for final solution ',J1, &792:            WRITE(MYUNIT3,'(A,I6,2(A,G20.10))') 'averaged structure for final solution ',J1, &
793:                 ' CSM=',QMINAV(J1),' CSM for reference structure=',QMIN(J1)793:                 ' CSM=',QMINAV(J1),' CSM for reference structure=',QMIN(J1)
794:            WRITE(MYUNIT3,30) (QMINPCSMAV(J1,J2),J2=1,3*(NATOMS-NS))794:            WRITE(MYUNIT3,30) (QMINPCSMAV(J1,J2),J2=1,3*(NATOMS-NS))
795:         ENDIF795:         ENDIF
796:         WRITE(MYUNIT2,30) (QMINP(J1,J2),J2=1,3*(NATOMS-NS))796:         WRITE(MYUNIT2,30) (QMINP(J1,J2),J2=1,3*(NATOMS-NS))
797: 30      FORMAT('LA ',3F20.10)797: 30      FORMAT('BE ',3F20.10)
798:      ENDIF798:      ENDIF
799:      799:      
800:      !|gd351>800:      !|gd351>
801:      IF (ASAOOS) THEN801:      IF (ASAOOS) THEN
802:         LUNIT=GETUNIT()802:         LUNIT=GETUNIT()
803:         OPEN(LUNIT,file='particles.xyz')803:         OPEN(LUNIT,file='particles.xyz')
804:         WRITE(LUNIT,*) NATOMS804:         WRITE(LUNIT,*) NATOMS
805:         WRITE(LUNIT,*) ' '805:         WRITE(LUNIT,*) ' '
806:         DO J2=1,NATOMS806:         DO J2=1,NATOMS
807:            WRITE(LUNIT,'(A,3F20.10)') 'H  ',(QMINP(J1,3*(J2-1)+J3),J3=1,3)807:            WRITE(LUNIT,'(A,3F20.10)') 'H  ',(QMINP(J1,3*(J2-1)+J3),J3=1,3)
1061:            CALL CAPSIDIO(QMINP(J1,3*(J2-1)+1),QMINP(J1,3*(J2-1)+2),QMINP(J1,3*(J2-1)+3),&1061:            CALL CAPSIDIO(QMINP(J1,3*(J2-1)+1),QMINP(J1,3*(J2-1)+2),QMINP(J1,3*(J2-1)+3),&
1062:                 QMINP(J1,3*(NATOMS/2+J2-1)+1),QMINP(J1,3*(NATOMS/2+J2-1)+2),QMINP(J1,3*(NATOMS/2+J2-1)+3),&1062:                 QMINP(J1,3*(NATOMS/2+J2-1)+1),QMINP(J1,3*(NATOMS/2+J2-1)+2),QMINP(J1,3*(NATOMS/2+J2-1)+3),&
1063:                 RBCOORDS,RAD,HEIGHT)1063:                 RBCOORDS,RAD,HEIGHT)
1064:            DO J3=1,51064:            DO J3=1,5
1065:               WRITE(LUNIT,'(A4,3F20.10)') 'C1 ',RBCOORDS(3*(J3-1)+1),RBCOORDS(3*(J3-1)+2),RBCOORDS(3*(J3-1)+3)1065:               WRITE(LUNIT,'(A4,3F20.10)') 'C1 ',RBCOORDS(3*(J3-1)+1),RBCOORDS(3*(J3-1)+2),RBCOORDS(3*(J3-1)+3)
1066:            ENDDO1066:            ENDDO
1067:            WRITE(LUNIT,'(A4,3F20.10)') 'C4  ',RBCOORDS(16),RBCOORDS(17),RBCOORDS(18)1067:            WRITE(LUNIT,'(A4,3F20.10)') 'C4  ',RBCOORDS(16),RBCOORDS(17),RBCOORDS(18)
1068:         ENDDO1068:         ENDDO
1069:      ENDDO1069:      ENDDO
1070:      CLOSE(LUNIT)1070:      CLOSE(LUNIT)
1071:  
1072:   ELSE IF (DJWRBT) THEN 
1073:      IF (DJWRBID.EQ.1) THEN 
1074:         LUNIT=GETUNIT() 
1075:         OPEN(UNIT=LUNIT,FILE='GRlowest.xyz',STATUS='UNKNOWN') 
1076:         DO J1=1,NSAVE 
1077:            NDUMMY=0 
1078:            WRITE(LUNIT,'(I6)') NATOMS 
1079:            WRITE(LUNIT,10) J1, QMIN(J1), FF(J1) 
1080:            DO J2=1,NRIGIDBODY 
1081:               IF (J2.LE.NRIGIDBODY-NHEXAMERS) THEN ! pentamer 
1082:                  DO J3=1,NSITEPERBODY(J2) 
1083:                     J4=NDUMMY+J3 
1084:                     WRITE (LUNIT,'(A4,3F18.10,A12,3F18.10)') 'LA ',QMINP(J1,3*(J4-1)+1),QMINP(J1,3*(J4-1)+2),QMINP(J1,3*(J4-1)+3) 
1085:                  ENDDO 
1086:               ELSE 
1087:                  DO J3=1,NSITEPERBODY(J2) 
1088:                     J4=NDUMMY+J3 
1089:                     WRITE (LUNIT,'(A4,3F18.10,A12,3F18.10)') 'LB ',QMINP(J1,3*(J4-1)+1),QMINP(J1,3*(J4-1)+2),QMINP(J1,3*(J4-1)+3) 
1090:                  ENDDO 
1091:               ENDIF 
1092:               NDUMMY=NDUMMY+NSITEPERBODY(J2) 
1093:            ENDDO 
1094:         ENDDO 
1095:         CLOSE(LUNIT) 
1096:      ENDIF 
1097:      1071:      
1098:   ELSE IF (DBPT .OR. DMBLPYT) THEN1072:   ELSE IF (DBPT .OR. DMBLPYT) THEN
1099:      1073:      
1100:      LUNIT=GETUNIT()1074:      LUNIT=GETUNIT()
1101:      IF (DBPT) OPEN(UNIT=LUNIT, FILE='dbp.xyz', STATUS='UNKNOWN')1075:      IF (DBPT) OPEN(UNIT=LUNIT, FILE='dbp.xyz', STATUS='UNKNOWN')
1102:      IF (DMBLPYT) OPEN(UNIT=LUNIT, FILE='dmblpy.xyz', STATUS='UNKNOWN')1076:      IF (DMBLPYT) OPEN(UNIT=LUNIT, FILE='dmblpy.xyz', STATUS='UNKNOWN')
1103:      1077:      
1104:      GTEST = .FALSE.1078:      GTEST = .FALSE.
1105:      DU    = (/0.D0, 1.D0, 0.D0/)1079:      DU    = (/0.D0, 1.D0, 0.D0/)
1106:      DO J1 = 1, NSAVE1080:      DO J1 = 1, NSAVE


r30243/io1.f 2016-07-06 15:36:29.651956025 +0100 r30242/io1.f 2016-07-06 15:36:31.523981331 +0100
695:               CASE DEFAULT695:               CASE DEFAULT
696:                   WRITE(MYUNIT,'(A,I4,A)') 'LBFGS minimisation on the GPU with ', NATOMS,' atoms. Potential not recognised. '696:                   WRITE(MYUNIT,'(A,I4,A)') 'LBFGS minimisation on the GPU with ', NATOMS,' atoms. Potential not recognised. '
697:           END SELECT697:           END SELECT
698:       ELSEIF (QCIPOTT.OR.INTCONSTRAINTT) THEN698:       ELSEIF (QCIPOTT.OR.INTCONSTRAINTT) THEN
699:          WRITE(MYUNIT,'(I4,A)') NATOMS,' QCI atoms'699:          WRITE(MYUNIT,'(I4,A)') NATOMS,' QCI atoms'
700:       ELSEIF (MKTRAPT) THEN700:       ELSEIF (MKTRAPT) THEN
701:          WRITE(MYUNIT,'(I4,A)') NATOMS,' MK trapped ions'701:          WRITE(MYUNIT,'(I4,A)') NATOMS,' MK trapped ions'
702:       ELSEIF (DJWRBT) THEN702:       ELSEIF (DJWRBT) THEN
703:          IF (DJWRBID.EQ.1) THEN703:          IF (DJWRBID.EQ.1) THEN
704:             WRITE(MYUNIT,'(3(I4,A))') NATOMS,' sites for ',NRIGIDBODY,' rigid bodies - DJW potential ',DJWRBID704:             WRITE(MYUNIT,'(3(I4,A))') NATOMS,' sites for ',NRIGIDBODY,' rigid bodies - DJW potential ',DJWRBID
705:             WRITE(MYUNIT,'(2(I4,A))') NRIGIDBODY-NHEXAMERS,' pentamers and ',NHEXAMERS,' hexamers' 
706:          ENDIF705:          ENDIF
707:       ELSEIF (MLP3T) THEN706:       ELSEIF (MLP3T) THEN
708:          WRITE(MYUNIT,'(I4,A)') NATOMS,' link weights for MLP3'707:          WRITE(MYUNIT,'(I4,A)') NATOMS,' link weights for MLP3'
709:       ELSE708:       ELSE
710:          WRITE(MYUNIT,'(I4,A)') NATOMS,' LJ atoms'709:          WRITE(MYUNIT,'(I4,A)') NATOMS,' LJ atoms'
711:       ENDIF710:       ENDIF
712:       IF (PYGPERIODICT.OR.PYBINARYT) CALL INITIALISEPYGPERIODIC711:       IF (PYGPERIODICT.OR.PYBINARYT) CALL INITIALISEPYGPERIODIC
713:       IF (LJCAPSIDT) CALL INITIALISELJCAPSIDMODEL712:       IF (LJCAPSIDT) CALL INITIALISELJCAPSIDMODEL
714:       IF (PYT) call py_input713:       IF (PYT) call py_input
715:       IF (INTMINT)  WRITE(MYUNIT,'(A)') 'Internal coordinate transformation will be used'714:       IF (INTMINT)  WRITE(MYUNIT,'(A)') 'Internal coordinate transformation will be used'


r30243/keywords.f 2016-07-06 15:36:30.015960943 +0100 r30242/keywords.f 2016-07-06 15:36:31.879986147 +0100
1107:       CUDATIMET=.FALSE.1107:       CUDATIMET=.FALSE.
1108:       GCBHT=.FALSE.1108:       GCBHT=.FALSE.
1109:       SEMIGRAND_MUT=.FALSE.1109:       SEMIGRAND_MUT=.FALSE.
1110:       USEROT=.FALSE.1110:       USEROT=.FALSE.
1111:       GCMU=0.0D01111:       GCMU=0.0D0
1112:       GCNATOMS=11112:       GCNATOMS=1
1113:       GCINT=1001113:       GCINT=100
1114:       GCRELAX=10*GCINT1114:       GCRELAX=10*GCINT
1115:       GCPLUS=0.5D01115:       GCPLUS=0.5D0
1116:       DJWRBT=.FALSE.1116:       DJWRBT=.FALSE.
1117:       NHEXAMERS=0 
1118: !1117: !
1119: ! Neural network potential1118: ! Neural network potential
1120: !1119: !
1121:       MLP3T=.FALSE.1120:       MLP3T=.FALSE.
1122:       MLPB3T=.FALSE.1121:       MLPB3T=.FALSE.
1123:       MLPNEWREG=.FALSE.1122:       MLPNEWREG=.FALSE.
1124:       MLPDONE=.FALSE.1123:       MLPDONE=.FALSE.
1125:       MLPNORM=.FALSE.1124:       MLPNORM=.FALSE.
1126:       MLPLAMBDA=0.0D01125:       MLPLAMBDA=0.0D0
1127:       1126:       
3100:          DIPOLE=.TRUE.3099:          DIPOLE=.TRUE.
3101:       ELSE IF (WORD.EQ.'DISTOPT') THEN3100:       ELSE IF (WORD.EQ.'DISTOPT') THEN
3102:          DISTOPT=.TRUE.3101:          DISTOPT=.TRUE.
3103:       ELSE IF (WORD.EQ.'DJWRB') THEN3102:       ELSE IF (WORD.EQ.'DJWRB') THEN
3104:          DJWRBT=.TRUE.3103:          DJWRBT=.TRUE.
3105:          CALL READI(DJWRBID)3104:          CALL READI(DJWRBID)
3106:          IF (DJWRBID /= 1) THEN3105:          IF (DJWRBID /= 1) THEN
3107:             PRINT *, 'DJWRB id ',DJWRBID,' unknown'3106:             PRINT *, 'DJWRB id ',DJWRBID,' unknown'
3108:             STOP3107:             STOP
3109:          ENDIF3108:          ENDIF
3110:          IF (NITEMS.GT.2) CALL READI(NHEXAMERS) 
3111: !3109: !
3112: !  NOT DOCUMENTED - INTENTIONAL3110: !  NOT DOCUMENTED - INTENTIONAL
3113: !3111: !
3114:       ELSE IF (WORD.EQ.'DL_POLY') THEN3112:       ELSE IF (WORD.EQ.'DL_POLY') THEN
3115:          DL_POLY=.TRUE.3113:          DL_POLY=.TRUE.
3116:          CALL READI(NATOMS)3114:          CALL READI(NATOMS)
3117: 3115: 
3118: ! vr274> Uses DMACRYS for potential calculations3116: ! vr274> Uses DMACRYS for potential calculations
3119:       ELSE IF (WORD.EQ.'DMACRYS') THEN3117:       ELSE IF (WORD.EQ.'DMACRYS') THEN
3120:          DMACRYST=.true.3118:          DMACRYST=.true.


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0