hdiff output

r30174/djwgr1.f90 2016-03-17 15:30:09.287400241 +0000 r30173/djwgr1.f90 2016-03-17 15:30:10.359411374 +0000
  1: !   OPTIM: A program for optimizing geometries and calculating reaction pathways  1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/OPTIM/source/djwgr1.f90' in revision 30173
  2: !   Copyright (C) 1999-2006 David J. Wales 
  3: !   This file is part of OPTIM. 
  4: !   OPTIM is free software; you can redistribute it and/or modify 
  5: !   it under the terms of the GNU General Public License as published by 
  6: !   the Free Software Foundation; either version 2 of the License, or 
  7: !   (at your option) any later version. 
  8: ! 
  9: !   OPTIM is distributed in the hope that it will be useful, 
 10: !   but WITHOUT ANY WARRANTY; without even the implied warranty of 
 11: !   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 12: !   GNU General Public License for more details. 
 13: ! 
 14: !   You should have received a copy of the GNU General Public License 
 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 
 17: ! 
 18: !  Energy and gradient for a genrigid setup example 
 19: ! 
 20: !  NATOMS = total number of sites 
 21: !  NRIGIDBODY = # rigid bodies 
 22: ! 
 23: SUBROUTINE DJWGR1(NATOMS,X,V,ENERGY,GTEST,SECT) 
 24: USE MODHESS 
 25: USE GENRIGID 
 26: IMPLICIT NONE 
 27: LOGICAL GTEST,SECT 
 28: 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 
 30: DOUBLE PRECISION FATT, DFATT, DDFATT, FREP, DFREP, DDFREP 
 31:  
 32: FATT(RHO,XDUMM)=-1.0D0 + (1.0D0 - EXP(RHO*(1.0D0 - XDUMM)))**2 
 33: DFATT(RHO,XDUMM)=2.0D0*(-EXP(2.0D0*RHO*(1.0D0-XDUMM)) + EXP(RHO*(1.0D0-XDUMM)))*RHO 
 34: DDFATT(RHO,XDUMM)=-2.0D0*(-2.0D0*EXP(2.0D0*RHO*(1.0D0-XDUMM)) + EXP(RHO*(1.0D0-XDUMM)))*RHO**2 
 35: FREP(SIGMA,XDUMM)=(SIGMA/XDUMM)**12 
 36: DFREP(SIGMA,XDUMM)=-12.0D0*(SIGMA/XDUMM)**12/XDUMM 
 37: DDFREP(SIGMA,XDUMM)=156.0D0*(SIGMA/XDUMM)**12/XDUMM**2 
 38:  
 39: ENERGY=0.0D0 
 40: IF (GTEST) V(1:3*NATOMS)=0.0D0 
 41: IF (SECT) HESS(1:3*NATOMS,1:3*NATOMS)=0.0D0 
 42:  
 43: RAD=5.0D0 
 44: RHO=3.0D0 
 45: SIGMA=(1.0D0+RAD*SQRT((5.0D0+SQRT(5.0D0))/2.0D0)) 
 46: EPSEFF=0.28D0 
 47:  
 48: DO J1=1,NRIGIDBODY 
 49:    DO J2=J1+1,NRIGIDBODY 
 50:       NPOS1=RIGIDGROUPS(NSITEPERBODY(J1)-1,J1) 
 51:       NPOS2=RIGIDGROUPS(NSITEPERBODY(J2)-1,J2) 
 52:       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) 
 53:       ENERGY=ENERGY+EPSEFF*FREP(SIGMA,DIST)  ! axial-axial repulsive term 
 54:       IF (GTEST) THEN 
 55:          DUMMY2=EPSEFF*DFREP(SIGMA,DIST) 
 56:          RDIST=1.0D0/DIST 
 57:          V(3*(NPOS1-1)+1)=V(3*(NPOS1-1)+1)+DUMMY2*(X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))*RDIST 
 58:          V(3*(NPOS1-1)+2)=V(3*(NPOS1-1)+2)+DUMMY2*(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))*RDIST 
 59:          V(3*(NPOS1-1)+3)=V(3*(NPOS1-1)+3)+DUMMY2*(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))*RDIST 
 60:          V(3*(NPOS2-1)+1)=V(3*(NPOS2-1)+1)-DUMMY2*(X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))*RDIST 
 61:          V(3*(NPOS2-1)+2)=V(3*(NPOS2-1)+2)-DUMMY2*(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))*RDIST 
 62:          V(3*(NPOS2-1)+3)=V(3*(NPOS2-1)+3)-DUMMY2*(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))*RDIST 
 63:       ENDIF 
 64:       NPOS1=RIGIDGROUPS(NSITEPERBODY(J1)-1,J1) 
 65:       NPOS2=RIGIDGROUPS(NSITEPERBODY(J2),J2) 
 66:       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) 
 67:       ENERGY=ENERGY+EPSEFF*FREP(SIGMA,DIST)  ! axial-axial repulsive term 
 68:       IF (GTEST) THEN 
 69:          DUMMY2=EPSEFF*DFREP(SIGMA,DIST) 
 70:          RDIST=1.0D0/DIST 
 71:          V(3*(NPOS1-1)+1)=V(3*(NPOS1-1)+1)+DUMMY2*(X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))*RDIST 
 72:          V(3*(NPOS1-1)+2)=V(3*(NPOS1-1)+2)+DUMMY2*(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))*RDIST 
 73:          V(3*(NPOS1-1)+3)=V(3*(NPOS1-1)+3)+DUMMY2*(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))*RDIST 
 74:          V(3*(NPOS2-1)+1)=V(3*(NPOS2-1)+1)-DUMMY2*(X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))*RDIST 
 75:          V(3*(NPOS2-1)+2)=V(3*(NPOS2-1)+2)-DUMMY2*(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))*RDIST 
 76:          V(3*(NPOS2-1)+3)=V(3*(NPOS2-1)+3)-DUMMY2*(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))*RDIST 
 77:       ENDIF 
 78:       NPOS1=RIGIDGROUPS(NSITEPERBODY(J1),J1) 
 79:       NPOS2=RIGIDGROUPS(NSITEPERBODY(J2)-1,J2) 
 80:       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) 
 81:       ENERGY=ENERGY+EPSEFF*FREP(SIGMA,DIST)  ! axial 2-axial repulsive term 
 82:       IF (GTEST) THEN 
 83:          DUMMY2=EPSEFF*DFREP(SIGMA,DIST) 
 84:          RDIST=1.0D0/DIST 
 85:          V(3*(NPOS1-1)+1)=V(3*(NPOS1-1)+1)+DUMMY2*(X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))*RDIST 
 86:          V(3*(NPOS1-1)+2)=V(3*(NPOS1-1)+2)+DUMMY2*(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))*RDIST 
 87:          V(3*(NPOS1-1)+3)=V(3*(NPOS1-1)+3)+DUMMY2*(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))*RDIST 
 88:          V(3*(NPOS2-1)+1)=V(3*(NPOS2-1)+1)-DUMMY2*(X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))*RDIST 
 89:          V(3*(NPOS2-1)+2)=V(3*(NPOS2-1)+2)-DUMMY2*(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))*RDIST 
 90:          V(3*(NPOS2-1)+3)=V(3*(NPOS2-1)+3)-DUMMY2*(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))*RDIST 
 91:       ENDIF 
 92:       IF (SECT) THEN 
 93:          DUMMY2=DFATT(RHO,DIST) 
 94:          DUMMY3=DDFATT(RHO,DIST) 
 95:          RDIST=1.0D0/DIST 
 96: !        HESS(3*(NPOS1-1)+1,3*(NPOS2-1)+1)= 
 97: !        HESS(3*(NPOS1-1)+2,3*(NPOS2-1)+1)= 
 98: !        HESS(3*(NPOS1-1)+3,3*(NPOS2-1)+1)= 
 99: !        HESS(3*(NPOS1-1)+1,3*(NPOS2-1)+2)= 
100: !        HESS(3*(NPOS1-1)+2,3*(NPOS2-1)+2)= 
101: !        HESS(3*(NPOS1-1)+3,3*(NPOS2-1)+2)= 
102: !        HESS(3*(NPOS1-1)+1,3*(NPOS2-1)+3)= 
103: !        HESS(3*(NPOS1-1)+2,3*(NPOS2-1)+3)= 
104: !        HESS(3*(NPOS1-1)+3,3*(NPOS2-1)+3)= 
105: !        HESS(3*(NPOS1-1)+1,3*(NPOS2-1)+1)= 
106: !        HESS(3*(NPOS1-1)+2,3*(NPOS2-1)+1)= 
107: !        HESS(3*(NPOS1-1)+3,3*(NPOS2-1)+1)= 
108: !        HESS(3*(NPOS1-1)+1,3*(NPOS2-1)+2)= 
109: !        HESS(3*(NPOS1-1)+2,3*(NPOS2-1)+2)= 
110: !        HESS(3*(NPOS1-1)+3,3*(NPOS2-1)+2)= 
111: !        HESS(3*(NPOS1-1)+1,3*(NPOS2-1)+3)= 
112: !        HESS(3*(NPOS1-1)+2,3*(NPOS2-1)+3)= 
113: !        HESS(3*(NPOS1-1)+3,3*(NPOS2-1)+3)= 
114:       ENDIF 
115: ! 
116: ! Sum over the attractive sites 
117: ! 
118:       DO J3=1,NSITEPERBODY(J1)-2     ! # Morse sites in rb J1 NSITEPERBODY(J1) 
119:          NPOS1=RIGIDGROUPS(J3,J1)    ! where is this site in the list? 
120:          DO J4=1,NSITEPERBODY(J2)-2  ! # Morse sites in rb J2 NSITEPERBODY(J2) 
121:             NPOS2=RIGIDGROUPS(J4,J2) ! where is this site in the list? 
122:             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) 
123:             ENERGY=ENERGY+FATT(RHO,DIST)  
124:             IF (GTEST) THEN 
125:                DUMMY2=DFATT(RHO,DIST) 
126:                RDIST=1.0D0/DIST 
127:                V(3*(NPOS1-1)+1)=V(3*(NPOS1-1)+1)+DUMMY2*(X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))*RDIST 
128:                V(3*(NPOS1-1)+2)=V(3*(NPOS1-1)+2)+DUMMY2*(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))*RDIST 
129:                V(3*(NPOS1-1)+3)=V(3*(NPOS1-1)+3)+DUMMY2*(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))*RDIST 
130:                V(3*(NPOS2-1)+1)=V(3*(NPOS2-1)+1)-DUMMY2*(X(3*(NPOS1-1)+1)-X(3*(NPOS2-1)+1))*RDIST 
131:                V(3*(NPOS2-1)+2)=V(3*(NPOS2-1)+2)-DUMMY2*(X(3*(NPOS1-1)+2)-X(3*(NPOS2-1)+2))*RDIST 
132:                V(3*(NPOS2-1)+3)=V(3*(NPOS2-1)+3)-DUMMY2*(X(3*(NPOS1-1)+3)-X(3*(NPOS2-1)+3))*RDIST 
133:             ENDIF 
134:             IF (SECT) THEN 
135:                DUMMY2=DFATT(RHO,DIST) 
136:                DUMMY3=DDFATT(RHO,DIST) 
137:                RDIST=1.0D0/DIST 
138: !              HESS(3*(NPOS1-1)+1,3*(NPOS2-1)+1)= 
139: !              HESS(3*(NPOS1-1)+2,3*(NPOS2-1)+1)= 
140: !              HESS(3*(NPOS1-1)+3,3*(NPOS2-1)+1)= 
141: !              HESS(3*(NPOS1-1)+1,3*(NPOS2-1)+2)= 
142: !              HESS(3*(NPOS1-1)+2,3*(NPOS2-1)+2)= 
143: !              HESS(3*(NPOS1-1)+3,3*(NPOS2-1)+2)= 
144: !              HESS(3*(NPOS1-1)+1,3*(NPOS2-1)+3)= 
145: !              HESS(3*(NPOS1-1)+2,3*(NPOS2-1)+3)= 
146: !              HESS(3*(NPOS1-1)+3,3*(NPOS2-1)+3)= 
147: !              HESS(3*(NPOS1-1)+1,3*(NPOS2-1)+1)= 
148: !              HESS(3*(NPOS1-1)+2,3*(NPOS2-1)+1)= 
149: !              HESS(3*(NPOS1-1)+3,3*(NPOS2-1)+1)= 
150: !              HESS(3*(NPOS1-1)+1,3*(NPOS2-1)+2)= 
151: !              HESS(3*(NPOS1-1)+2,3*(NPOS2-1)+2)= 
152: !              HESS(3*(NPOS1-1)+3,3*(NPOS2-1)+2)= 
153: !              HESS(3*(NPOS1-1)+1,3*(NPOS2-1)+3)= 
154: !              HESS(3*(NPOS1-1)+2,3*(NPOS2-1)+3)= 
155: !              HESS(3*(NPOS1-1)+3,3*(NPOS2-1)+3)= 
156:             ENDIF 
157:          ENDDO 
158:       ENDDO 
159:    ENDDO 
160: ENDDO 
161:  
162: END SUBROUTINE DJWGR1 


r30174/key.f90 2016-03-17 15:30:09.511402563 +0000 r30173/key.f90 2016-03-17 15:30:10.587413736 +0000
 15:      &        NRBTRIES, REDOTSIM, REDOBFGSSTEPS, RPIMAGES, RPDOF, SDOXYGEN, SDHYDROGEN, SDCHARGE, BOWMANPES, & 15:      &        NRBTRIES, REDOTSIM, REDOBFGSSTEPS, RPIMAGES, RPDOF, SDOXYGEN, SDHYDROGEN, SDCHARGE, BOWMANPES, &
 16:      &        INTCONSEP, PATOM1, PATOM2, INTREPSEP, NCONSTRAINTON, CPREPSEP, CPCONSEP, NCONGEOM, & 16:      &        INTCONSEP, PATOM1, PATOM2, INTREPSEP, NCONSTRAINTON, CPREPSEP, CPCONSEP, NCONGEOM, &
 17:      &        NCPREPULSIVE, NCPCONSTRAINT, MAXCONUSE, INTCONSTEPS, INTRELSTEPS, INTSTEPS1, INTLJSTEPS, & 17:      &        NCPREPULSIVE, NCPCONSTRAINT, MAXCONUSE, INTCONSTEPS, INTRELSTEPS, INTSTEPS1, INTLJSTEPS, &
 18:      &        NTRAPPOW, MAXINTIMAGE, CHECKDID, CHECKREPINTERVAL, INTFREEZEMIN, INTNTRIESMAX, INTIMAGEINCR, & 18:      &        NTRAPPOW, MAXINTIMAGE, CHECKDID, CHECKREPINTERVAL, INTFREEZEMIN, INTNTRIESMAX, INTIMAGEINCR, &
 19:      &        NCONSTRAINTFIX, INTIMAGECHECK, NREPULSIVEFIX, NRANROT, NENDDUP, LOCALPERMNEIGH, & 19:      &        NCONSTRAINTFIX, INTIMAGECHECK, NREPULSIVEFIX, NRANROT, NENDDUP, LOCALPERMNEIGH, &
 20:      &        LOCALPERMMAXSEP, NONEDAPBC, STRUC, QCHEMESNAO, QCHEMESNMO, QCHEMESNZERO, QCHEMESNELEC, PMPATHINR, & 20:      &        LOCALPERMMAXSEP, NONEDAPBC, STRUC, QCHEMESNAO, QCHEMESNMO, QCHEMESNZERO, QCHEMESNELEC, PMPATHINR, &
 21:      &        MULTISUNIT, MULTIFUNIT,NIMAGEINST,NGLJ,ST_TSSTEP,LANSTEP,NONFREEZE, & 21:      &        MULTISUNIT, MULTIFUNIT,NIMAGEINST,NGLJ,ST_TSSTEP,LANSTEP,NONFREEZE, &
 22:      &        MCPATHBINS,MCPATHEQUIL,MCPATHSTEPS,MCPATHPRTFRQ,MCPATHTS,MCPATHSCHECK,RPHSLICES,RPHQBINS, & 22:      &        MCPATHBINS,MCPATHEQUIL,MCPATHSTEPS,MCPATHPRTFRQ,MCPATHTS,MCPATHSCHECK,RPHSLICES,RPHQBINS, &
 23:      &        ITWIST, JTWIST, KTWIST, LTWIST, MCPATHSTART, MCPATHBLOCK, MCPATHOVER, NCPU, MCPATHDOBLOCK, MCMERGES, MCMERGEQ, & 23:      &        ITWIST, JTWIST, KTWIST, LTWIST, MCPATHSTART, MCPATHBLOCK, MCPATHOVER, NCPU, MCPATHDOBLOCK, MCMERGES, MCMERGEQ, &
 24:      &        MCMERGEI,GAUSSIANCHARGE,GAUSSIANMULTI,ITG03, REDOTS, QCIPERMCHECKINT, & 24:      &        MCMERGEI,GAUSSIANCHARGE,GAUSSIANMULTI,ITG03, REDOTS, QCIPERMCHECKINT, &
 25:      &        MLPIN, MLPOUT, MLPHIDDEN, MLPDATA, NMLP, N_TO_ALIGN, DJWRBID 25:      &        MLPIN, MLPOUT, MLPHIDDEN, MLPDATA, NMLP, N_TO_ALIGN
 26:  26: 
 27:       LOGICAL :: DTEST, MASST, RTEST, EFSTEPST, VECTORST, SUMMARYT, DUMPV, DUMPMAG, FREEZE, FREEZERANGE, GRADSQ, & 27:       LOGICAL :: DTEST, MASST, RTEST, EFSTEPST, VECTORST, SUMMARYT, DUMPV, DUMPMAG, FREEZE, FREEZERANGE, GRADSQ, &
 28:      &        PGRAD, VALUEST, ADMT, BFGSMINT, BFGSTST, CHECKINDEX, TOSI, CONTAINER, & 28:      &        PGRAD, VALUEST, ADMT, BFGSMINT, BFGSTST, CHECKINDEX, TOSI, CONTAINER, &
 29:      &        GAUSSIAN, CADPAC, PRESSURE, FTEST, DCHECK, CP2K, DFTP, CPMD, CPMDC, FREEZERES, DF1T, & 29:      &        GAUSSIAN, CADPAC, PRESSURE, FTEST, DCHECK, CP2K, DFTP, CPMD, CPMDC, FREEZERES, DF1T, &
 30:      &        VARIABLES, FIELDT, OHT, IHT, TDT, D5HT, TWOENDS, PV, FRACTIONAL, BLNT, HYBRIDMINT, & 30:      &        VARIABLES, FIELDT, OHT, IHT, TDT, D5HT, TWOENDS, PV, FRACTIONAL, BLNT, HYBRIDMINT, &
 31:      &        INDEXT, LANCZOST, NOSHIFT, GAMESSUS, GAMESSUK, PVTS, RIGIDBODY, CASTEP, ONETEP, QCHEM, QCHEMES, VASP, & 31:      &        INDEXT, LANCZOST, NOSHIFT, GAMESSUS, GAMESSUK, PVTS, RIGIDBODY, CASTEP, ONETEP, QCHEM, QCHEMES, VASP, &
 32:      &        BFGSSTEP, BULKT, HUPDATE, NOHESS, READV, NOIT, THOMSONT, SIO2T, SIO2C6T, BISECTT, BISECTDEBUG, & 32:      &        BFGSSTEP, BULKT, HUPDATE, NOHESS, READV, NOIT, THOMSONT, SIO2T, SIO2C6T, BISECTT, BISECTDEBUG, &
 33:      &        TOSIC6, TOSIPOL, FIXIMAGE, DFTBT, CHECKCONT, CHECKDT, SHIFTED, READSP, DUMPSP, NOFRQS, & 33:      &        TOSIC6, TOSIPOL, FIXIMAGE, DFTBT, CHECKCONT, CHECKDT, SHIFTED, READSP, DUMPSP, NOFRQS, &
 34:      &        ALLSTEPS, ALLVECTORS, MWVECTORS, WELCH, BINARY, READHESS, MOVIE, NORESET, TWOD, & 34:      &        ALLSTEPS, ALLVECTORS, MWVECTORS, WELCH, BINARY, READHESS, MOVIE, NORESET, TWOD, &
 35:      &        DOUBLET, REOPT, PARALLEL, LINEMIN, FIXD, KEEPINDEX, BSMIN, PRINTPTS, RKMIN, REPELTST,& 35:      &        DOUBLET, REOPT, PARALLEL, LINEMIN, FIXD, KEEPINDEX, BSMIN, PRINTPTS, RKMIN, REPELTST,&
 45:      &        QSPCFWT, QTIP4PFT, CFUSIONT, DUMPINTXYZ, DUMPINTEOS, INTLJT, INTTST, EYTRAPT, OHCELLT, MKTRAPT, & 45:      &        QSPCFWT, QTIP4PFT, CFUSIONT, DUMPINTXYZ, DUMPINTEOS, INTLJT, INTTST, EYTRAPT, OHCELLT, MKTRAPT, &
 46:      &        INTFREEZET, LPERMDIST, CHECKNEGATIVET, CHECKOVERLAPT, ACK1, ACK2, CONDATT, USERPOTT, & 46:      &        INTFREEZET, LPERMDIST, CHECKNEGATIVET, CHECKOVERLAPT, ACK1, ACK2, CONDATT, USERPOTT, &
 47:      &        CONCUTFRACT, CONCUTABST, ENDNUMHESS2, CHARMMDFTBT, PAIRCOLOURT, REVERSEUPHILLT, WHOLEDNEB, & 47:      &        CONCUTFRACT, CONCUTABST, ENDNUMHESS2, CHARMMDFTBT, PAIRCOLOURT, REVERSEUPHILLT, WHOLEDNEB, &
 48:      &        NONEBMAX, READMASST, ONEDAPBCT, ONEDPBCT, INVTONEDPBCT, INVTTWODPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, & 48:      &        NONEBMAX, READMASST, ONEDAPBCT, ONEDPBCT, INVTONEDPBCT, INVTTWODPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, &
 49:      &        THREEDPBCT, FOURDAPBCT, FOURDPBCT, MODEDOWNT, CHEMSHIFT, TTM3T, & 49:      &        THREEDPBCT, FOURDAPBCT, FOURDPBCT, MODEDOWNT, CHEMSHIFT, TTM3T, &
 50:      &        NOINVERSION, INVERTPT, KNOWVECS, PMPATHT, AAORIENTT, MULTIJOBT, QUIPARGSTRT, QUIPPARAMST, HESSDUMPT, & 50:      &        NOINVERSION, INVERTPT, KNOWVECS, PMPATHT, AAORIENTT, MULTIJOBT, QUIPARGSTRT, QUIPPARAMST, HESSDUMPT, &
 51:      &        CLASSICALRATEST, TSPLITTINGT, HESSREADT, INSTANTONOPTT,INSTANTONSTARTDUMPT,VARSTEPOPTT, MOLPRO, REAXFFT, & 51:      &        CLASSICALRATEST, TSPLITTINGT, HESSREADT, INSTANTONOPTT,INSTANTONSTARTDUMPT,VARSTEPOPTT, MOLPRO, REAXFFT, &
 52:      &        EIGENONLY,OVERCONV, GLJT,CLSTRINGT,CLSTRINGTST, PHI4MODT, EX1DT, MCPATHT, MCBIAST, RPHT, TWISTT, MCPATH2T, & 52:      &        EIGENONLY,OVERCONV, GLJT,CLSTRINGT,CLSTRINGTST, PHI4MODT, EX1DT, MCPATHT, MCBIAST, RPHT, TWISTT, MCPATH2T, &
 53:      &        PBST, SSHT, GAUSSIAN03, CPPNEBT, CUDAT, CUDATIMET, TRUSTMODET,MODELOST, METRICTENSOR, INTSPRINGACTIVET, & 53:      &        PBST, SSHT, GAUSSIAN03, CPPNEBT, CUDAT, CUDATIMET, TRUSTMODET,MODELOST, METRICTENSOR, INTSPRINGACTIVET, &
 54:      &        PERMGUESS, QCIPERMCHECK, DUMPFRQST, MULTIPOTT, MLP3T, MLPB3T, DUMPBESTPATH, ALIGNRBST, AVOID_COLLISIONS, MLPPROB, & 54:      &        PERMGUESS, QCIPERMCHECK, DUMPFRQST, MULTIPOTT, MLP3T, MLPB3T, DUMPBESTPATH, ALIGNRBST, AVOID_COLLISIONS, MLPPROB, &
 55:      &        MALONALDEHYDE, MLPNEWREG, DJWRBT 55:      &        MALONALDEHYDE
 56:  56: 
 57: ! bf269 > polymer in a pore (non-bonding (LJ) energy from neighbours is not subtracted) 57: ! bf269 > polymer in a pore (non-bonding (LJ) energy from neighbours is not subtracted)
 58:       LOGICAL :: PORE8T = .FALSE. ! add 8th power cylindrical pore to the potential? 58:       LOGICAL :: PORE8T = .FALSE. ! add 8th power cylindrical pore to the potential?
 59:       INTEGER :: PORE8_AXIS = 3 ! principal axis of the cylindric pore (1:x, 2:y, 3:z) 59:       INTEGER :: PORE8_AXIS = 3 ! principal axis of the cylindric pore (1:x, 2:y, 3:z)
 60:       DOUBLE PRECISION :: PORE8_ENERGY = 1.0d1 ! energy of the pore when radius = 1 60:       DOUBLE PRECISION :: PORE8_ENERGY = 1.0d1 ! energy of the pore when radius = 1
 61:       LOGICAL :: HARMPOLYT = .FALSE. ! add harmonic bonds between the beads 61:       LOGICAL :: HARMPOLYT = .FALSE. ! add harmonic bonds between the beads
 62:       DOUBLE PRECISION :: HARMPOLY_BONLEN = 0.0d0 ! equilibrium length of springs between beads 62:       DOUBLE PRECISION :: HARMPOLY_BONLEN = 0.0d0 ! equilibrium length of springs between beads
 63:       DOUBLE PRECISION :: HARMPOLY_K = 1.0d2 ! force constant of the springs 63:       DOUBLE PRECISION :: HARMPOLY_K = 1.0d2 ! force constant of the springs
 64:  64: 
 65: ! hk286 > generalised THOMSON problem 65: ! hk286 > generalised THOMSON problem


r30174/keywords.f 2016-03-17 15:30:09.743404978 +0000 r30173/keywords.f 2016-03-17 15:30:10.787415824 +0000
901:          CLIMBERINIT=.FALSE.901:          CLIMBERINIT=.FALSE.
902:          CLIMBERSTEPS=20902:          CLIMBERSTEPS=20
903:          CLIMBERCONV=0.2903:          CLIMBERCONV=0.2
904:          CLIMBERSPRING=5.0904:          CLIMBERSPRING=5.0
905: 905: 
906: !906: !
907: ! Neural network potential907: ! Neural network potential
908: !908: !
909:          MLP3T=.FALSE.909:          MLP3T=.FALSE.
910:          MLPB3T=.FALSE.910:          MLPB3T=.FALSE.
911:          MLPNEWREG=.FALSE. 
912:          MLPPROB=.FALSE.911:          MLPPROB=.FALSE.
913:          MLPDONE=.FALSE.912:          MLPDONE=.FALSE.
914:          MLPNORM=.FALSE.913:          MLPNORM=.FALSE.
915:          MLPLAMBDA=0.0D0914:          MLPLAMBDA=0.0D0
916:          MLPDATSTART=1915:          MLPDATSTART=1
917: 916: 
918:          MALONALDEHYDE=.FALSE.917:          MALONALDEHYDE=.FALSE.
919: 918: 
920:          CLSTRINGT=.FALSE.919:          CLSTRINGT=.FALSE.
921:          CLSTRINGTST=.FALSE.920:          CLSTRINGTST=.FALSE.
2250:             IF (NITEMS > 6) THEN2249:             IF (NITEMS > 6) THEN
2251:                CALL READF(EFIELD)2250:                CALL READF(EFIELD)
2252:                EFIELDT = .TRUE.2251:                EFIELDT = .TRUE.
2253:             ENDIF2252:             ENDIF
2254: 2253: 
2255:             NRBSITES = 32254:             NRBSITES = 3
2256:             ALLOCATE(RBSITE(NRBSITES,3))2255:             ALLOCATE(RBSITE(NRBSITES,3))
2257: 2256: 
2258:             NTSITES = (NATOMS/2-1)*NRBSITES + 42257:             NTSITES = (NATOMS/2-1)*NRBSITES + 4
2259: 2258: 
2260:          ELSE IF (WORD.EQ.'DJWRB') THEN 
2261:             DJWRBT=.TRUE. 
2262:             CALL READI(DJWRBID) 
2263:             IF (DJWRBID /= 1) THEN 
2264:                PRINT *, 'DJWRB id ',DJWRBID,' unknown' 
2265:                STOP 
2266:             ENDIF 
2267:  
2268: ! 2259: ! 
2269: ! DCHECK  turns ON/OFF warnings about short interatomic distances2260: ! DCHECK  turns ON/OFF warnings about short interatomic distances
2270: ! default ON2261: ! default ON
2271: ! 2262: ! 
2272:          ELSE IF (WORD.EQ.'DMBLPY') THEN2263:          ELSE IF (WORD.EQ.'DMBLPY') THEN
2273: 2264: 
2274:             DMBLPYT = .TRUE.2265:             DMBLPYT = .TRUE.
2275:             RBAAT   = .TRUE.2266:             RBAAT   = .TRUE.
2276:             CALL READF(YEPS)2267:             CALL READF(YEPS)
2277:             CALL READF(YKAPPA)2268:             CALL READF(YKAPPA)
3803:          IF (MLPNORM) THEN3794:          IF (MLPNORM) THEN
3804:             MLPMEAN(1:MLPIN)=MLPMEAN(1:MLPIN)/MLPDATA3795:             MLPMEAN(1:MLPIN)=MLPMEAN(1:MLPIN)/MLPDATA
3805:             WRITE(*,'(A)') 'keyword> Rescaling inputs by mean absolute values:'3796:             WRITE(*,'(A)') 'keyword> Rescaling inputs by mean absolute values:'
3806:             WRITE(*,'(6G20.10)') MLPMEAN(1:MLPIN)3797:             WRITE(*,'(6G20.10)') MLPMEAN(1:MLPIN)
3807:             DO J1=1,MLPIN3798:             DO J1=1,MLPIN
3808:                MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)3799:                MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)
3809:             ENDDO3800:             ENDDO
3810:          ENDIF3801:          ENDIF
3811:          DEALLOCATE(MLPMEAN)3802:          DEALLOCATE(MLPMEAN)
3812:          MLPDONE=.TRUE.3803:          MLPDONE=.TRUE.
3813:       ELSE IF (WORD.EQ.'MLPNEWREG') THEN 
3814:          MLPNEWREG=.TRUE. 
3815:       ELSE IF (WORD.EQ.'MLPPROB') THEN3804:       ELSE IF (WORD.EQ.'MLPPROB') THEN
3816:          MLPPROB=.TRUE.3805:          MLPPROB=.TRUE.
3817: ! 3806: ! 
3818: ! MLPNORM directs OPTIM to rescale the input data columns by dividing each one by the3807: ! MLPNORM directs OPTIM to rescale the input data columns by dividing each one by the
3819: ! average of the mean magnitude3808: ! average of the mean magnitude
3820: ! 3809: ! 
3821:       ELSE IF (WORD.EQ.'MLPNORM') THEN3810:       ELSE IF (WORD.EQ.'MLPNORM') THEN
3822:          MLPNORM=.TRUE.3811:          MLPNORM=.TRUE.
3823:          IF (MLPDONE) THEN3812:          IF (MLPDONE) THEN
3824:             LUNIT=GETUNIT()3813:             LUNIT=GETUNIT()


r30174/MLPB3.f90 2016-03-17 15:30:09.087398165 +0000 r30173/MLPB3.f90 2016-03-17 15:30:10.167409374 +0000
330:          ENDDO330:          ENDDO
331:       ENDDO331:       ENDDO
332:    ENDIF332:    ENDIF
333: ENDDO333: ENDDO
334: 334: 
335: 335: 
336: DUMMY1=0.0D0336: DUMMY1=0.0D0
337: DO J1=1,NMLP-1337: DO J1=1,NMLP-1
338:    DUMMY1=DUMMY1+X(J1)**2338:    DUMMY1=DUMMY1+X(J1)**2
339: ENDDO339: ENDDO
340: IF (MLPNEWREG) THEN 
341:    DO J1=1,NMLP-1 
342:       DUMMY1=DUMMY1+1.0D0/MAX(1.0D-100,X(J1)**2) 
343:    ENDDO 
344: ENDIF 
345: 340: 
346: ENERGY=ENERGY/MLPDATA + MLPLAMBDA*DUMMY1341: ENERGY=ENERGY/MLPDATA + MLPLAMBDA*DUMMY1
347: ! IF (DEBUG) WRITE(*,'(A,G20.10)') 'MLP3> objective function=',ENERGY342: ! IF (DEBUG) WRITE(*,'(A,G20.10)') 'MLP3> objective function=',ENERGY
348: 343: 
349: IF (MLPPROB) THEN344: IF (MLPPROB) THEN
350: !    CLOSE(LUNIT)345: !    CLOSE(LUNIT)
351: !    WRITE(*,'(A)') ' MLPB3> predicted probabilities written to file probabilities'346: !    WRITE(*,'(A)') ' MLPB3> predicted probabilities written to file probabilities'
352: !    PRINT '(A)',' MLPB3> finished writing probabilities'347: !    PRINT '(A)',' MLPB3> finished writing probabilities'
353:    CALL ROC(PSAVE,AREA)348:    CALL ROC(PSAVE,AREA)
354:    PRINT '(A,2G20.10)','energy, AUC=',ENERGY,AREA349:    PRINT '(A,2G20.10)','energy, AUC=',ENERGY,AREA
355: ENDIF350: ENDIF
356: IF (MLPPROB) DEALLOCATE(PSAVE)351: IF (MLPPROB) DEALLOCATE(PSAVE)
357: 352: 
358: IF (GTEST) V(1:NMLP)=V(1:NMLP)/MLPDATA 353: IF (GTEST) V(1:NMLP)=V(1:NMLP)/MLPDATA 
359: IF (GTEST) V(1:NMLP-1)=V(1:NMLP-1) + 2.0D0*MLPLAMBDA*X(1:NMLP-1)354: IF (GTEST) V(1:NMLP-1)=V(1:NMLP-1) + 2.0D0*MLPLAMBDA*X(1:NMLP-1)
360: IF (GTEST.AND.MLPNEWREG)  V(1:NMLP-1)=V(1:NMLP-1) - 2.0D0*MLPLAMBDA/X(1:NMLP-1)**3 
361: !355: !
362: ! Symmetrise Hessian here356: ! Symmetrise Hessian here
363: !357: !
364: IF (SECT) HESS(1:NMLP,1:NMLP)=HESS(1:NMLP,1:NMLP)/MLPDATA358: IF (SECT) HESS(1:NMLP,1:NMLP)=HESS(1:NMLP,1:NMLP)/MLPDATA
365: IF (SECT) THEN359: IF (SECT) THEN
366:    DO J1=1,NMLP-1360:    DO J1=1,NMLP-1
367:       HESS(J1,J1)=HESS(J1,J1)+2*MLPLAMBDA361:       HESS(J1,J1)=HESS(J1,J1)+2*MLPLAMBDA
368:       IF (MLPNEWREG) HESS(J1,J1)=HESS(J1,J1)+6.0D0*MLPLAMBDA/MAX(1.0D-100,X(J1)**4) 
369:    ENDDO362:    ENDDO
370:    DO J1=1,NMLP363:    DO J1=1,NMLP
371:       DO J2=1,J1-1364:       DO J2=1,J1-1
372:          HESS(J2,J1)=HESS(J1,J2)365:          HESS(J2,J1)=HESS(J1,J2)
373:       ENDDO366:       ENDDO
374:    ENDDO367:    ENDDO
375: ENDIF368: ENDIF
376: 369: 
377: END SUBROUTINE MLPB3370: END SUBROUTINE MLPB3
378: 371: 
387: AREA=0.0D0380: AREA=0.0D0
388: DO J1=0,NVALS381: DO J1=0,NVALS
389:    PTHRESH=J1/(1.0D0*NVALS)382:    PTHRESH=J1/(1.0D0*NVALS)
390:    TPRPREV=TPR383:    TPRPREV=TPR
391:    FPRPREV=FPR384:    FPRPREV=FPR
392:    TPR=0.0D0385:    TPR=0.0D0
393:    FPR=0.0D0386:    FPR=0.0D0
394:    NPOS=0.0D0387:    NPOS=0.0D0
395:    NNEG=0.0D0388:    NNEG=0.0D0
396:    DO J2=1,MLPDATA389:    DO J2=1,MLPDATA
397:       IF (MLPOUTCOME(J2).LT.1.5D0) THEN    ! positive outcome: survival390:       IF (MLPOUTCOME(J2).LT.1.5D0) THEN    ! positive outcome: triangle
398:          NPOS=NPOS+1.0D0391:          NPOS=NPOS+1.0D0
399:          IF (PSAVE(J2,1).GT.PTHRESH) THEN   ! positive classifier, correct392:          IF (PSAVE(J2,1).GT.PTHRESH) THEN   ! positive classifier, correct
400:             TPR=TPR+1.0D0393:             TPR=TPR+1.0D0
401:          ENDIF394:          ENDIF
402:       ELSE395:       ELSE
403:          NNEG=NNEG+1.0D0396:          NNEG=NNEG+1.0D0
404:          IF (PSAVE(J2,1).GT.PTHRESH) THEN ! positive classifier, but wrong397:          IF (PSAVE(J2,1).GT.PTHRESH) THEN ! positive classifier, but wrong
405:             FPR=FPR+1.0D0398:             FPR=FPR+1.0D0
406:          ENDIF399:          ENDIF
407:       ENDIF400:       ENDIF


r30174/potential.f 2016-03-17 15:30:09.963407280 +0000 r30173/potential.f 2016-03-17 15:30:10.991417939 +0000
1628:             END IF1628:             END IF
1629:          ELSE IF (MULTISITEPYT) THEN1629:          ELSE IF (MULTISITEPYT) THEN
1630:             CALL MULTISITEPY2 (COORDS, VNEW, ENERGY, GTEST)1630:             CALL MULTISITEPY2 (COORDS, VNEW, ENERGY, GTEST)
1631:             IF (SSTEST) THEN1631:             IF (SSTEST) THEN
1632:                CALL MULTISITEPYSECDER(COORDS,SSTEST)1632:                CALL MULTISITEPYSECDER(COORDS,SSTEST)
1633:             END IF1633:             END IF
1634:             IF (PTEST) THEN1634:             IF (PTEST) THEN
1635:                WRITE(*,10) ' potential> Energy for last cycle=',ENERGY,'         '1635:                WRITE(*,10) ' potential> Energy for last cycle=',ENERGY,'         '
1636:                WRITE(ESTRING,10) 'Energy for last cycle=',ENERGY,'         '1636:                WRITE(ESTRING,10) 'Energy for last cycle=',ENERGY,'         '
1637:             END IF1637:             END IF
1638:          ELSE IF (DJWRBT) THEN 
1639:             IF (DJWRBID.EQ.1) THEN 
1640:                CALL DJWGR1(NATOMS,COORDS,VNEW,ENERGY,GTEST,SSTEST) 
1641:             ENDIF 
1642:             IF (PTEST) THEN 
1643:                WRITE(*,10) ' potential> Energy for last cycle=',ENERGY,'         ' 
1644:                WRITE(ESTRING,10) 'Energy for last cycle=',ENERGY,'         ' 
1645:             ENDIF 
1646:          ELSE IF (NCAPT) THEN1638:          ELSE IF (NCAPT) THEN
1647:             CALL NEWCAPSID (COORDS,VNEW,ENERGY,GTEST,SSTEST)1639:             CALL NEWCAPSID (COORDS,VNEW,ENERGY,GTEST,SSTEST)
1648:             IF (PTEST) THEN1640:             IF (PTEST) THEN
1649:                WRITE(*,10) ' potential> Energy for last cycle=',ENERGY,'         '1641:                WRITE(*,10) ' potential> Energy for last cycle=',ENERGY,'         '
1650:                WRITE(ESTRING,10) 'Energy for last cycle=',ENERGY,'         '1642:                WRITE(ESTRING,10) 'Energy for last cycle=',ENERGY,'         '
1651:             END IF1643:             END IF
1652:          ELSE IF (NTIPT) THEN1644:          ELSE IF (NTIPT) THEN
1653:             CALL NEWTIP(COORDS,VNEW,ENERGY,GTEST,SSTEST)1645:             CALL NEWTIP(COORDS,VNEW,ENERGY,GTEST,SSTEST)
1654:             IF (PTEST) THEN1646:             IF (PTEST) THEN
1655:                WRITE(*,10) ' potential> Energy for last cycle=',ENERGY,'         '1647:                WRITE(*,10) ' potential> Energy for last cycle=',ENERGY,'         '


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0