hdiff output

r30519/commons.f90 2016-07-06 15:36:38.864080573 +0100 r30518/commons.f90 2016-07-06 15:36:41.032109882 +0100
109:      &        HARMONICDONTMOVE, DUMPUNIQUE, FREEZESAVE, TBP, RBSYMT, PTMCDUMPSTRUCT, PTMCDUMPENERT, PYCOLDFUSION, MONITORT,&109:      &        HARMONICDONTMOVE, DUMPUNIQUE, FREEZESAVE, TBP, RBSYMT, PTMCDUMPSTRUCT, PTMCDUMPENERT, PYCOLDFUSION, MONITORT,&
110:      &        CHARMMDFTBT, PERMINVOPT, BLOCKMOVET, MAXERISE_SET, PYT, BINARY_EXAB, CHIROT, SANDBOXT, &110:      &        CHARMMDFTBT, PERMINVOPT, BLOCKMOVET, MAXERISE_SET, PYT, BINARY_EXAB, CHIROT, SANDBOXT, &
111:      &        RESERVOIRT, DISTOPT, ONEDAPBCT, ONEDPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, THREEDPBCT, RATIOT, &111:      &        RESERVOIRT, DISTOPT, ONEDAPBCT, ONEDPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, THREEDPBCT, RATIOT, &
112:      &        PTRANDOM, PTINTERVAL, PTSINGLE, PTSETS, CHEMSHIFT, CHEMSHIFT2, CSH, DEBUGss2029, UNIFORMMOVE, RANSEEDT, &112:      &        PTRANDOM, PTINTERVAL, PTSINGLE, PTSETS, CHEMSHIFT, CHEMSHIFT2, CSH, DEBUGss2029, UNIFORMMOVE, RANSEEDT, &
113:      &        TTM3T, NOINVERSION, RIGIDCONTOURT, UPDATERIGIDREFT, HYBRIDMINT, COMPRESSRIGIDT, MWFILMT, &113:      &        TTM3T, NOINVERSION, RIGIDCONTOURT, UPDATERIGIDREFT, HYBRIDMINT, COMPRESSRIGIDT, MWFILMT, &
114:      &        SUPPRESST, MFETT, POLIRT, QUIPT, SWPOTT, MWPOTT, REPMATCHT, GLJT, MLJT, READMASST, SPECMASST, NEWTSALLIST, &114:      &        SUPPRESST, MFETT, POLIRT, QUIPT, SWPOTT, MWPOTT, REPMATCHT, GLJT, MLJT, READMASST, SPECMASST, NEWTSALLIST, &
115:      &        PHI4MODELT, CUDAT, CUDATIMET, AMBER12T, ENERGY_DECOMPT, NEWMOVEST, DUMPMINT, MBPOLT, MOLECULART, GCBHT, SEMIGRAND_MUT, USEROT, & 115:      &        PHI4MODELT, CUDAT, CUDATIMET, AMBER12T, ENERGY_DECOMPT, NEWMOVEST, DUMPMINT, MBPOLT, MOLECULART, GCBHT, SEMIGRAND_MUT, USEROT, & 
116:      &        SAVEMULTIMINONLY, GRADPROBLEMT, INTLJT, CONDATT, QCIPERMCHECK, &116:      &        SAVEMULTIMINONLY, GRADPROBLEMT, INTLJT, CONDATT, QCIPERMCHECK, &
117:      &        INTCONSTRAINTT, INTFREEZET, CHECKCONINT, CONCUTABST, CONCUTFRACT, INTERPCOSTFUNCTION, &117:      &        INTCONSTRAINTT, INTFREEZET, CHECKCONINT, CONCUTABST, CONCUTFRACT, INTERPCOSTFUNCTION, &
118:      &        RBAAT, FREEZENODEST, DUMPINTEOS, DUMPINTXYZ, QCIPOTT, QCIPOT2T, INTSPRINGACTIVET, LPERMDIST, LOCALPERMDIST, QCIRADSHIFTT, &118:      &        RBAAT, FREEZENODEST, DUMPINTEOS, DUMPINTXYZ, QCIPOTT, QCIPOT2T, INTSPRINGACTIVET, LPERMDIST, LOCALPERMDIST, QCIRADSHIFTT, &
119:      &        MLP3T, MKTRAPT, MLPB3T, MULTIPOTT, QCIAMBERT, MLPNEWREG, DJWRBT, STEALTHYT, LJADDT119:      &        MLP3T, MKTRAPT, MLPB3T, MULTIPOTT, QCIAMBERT, MLPNEWREG, DJWRBT, STEALTHYT
120: !120: !
121:       DOUBLE PRECISION, ALLOCATABLE :: SEMIGRAND_MU(:) 121:       DOUBLE PRECISION, ALLOCATABLE :: SEMIGRAND_MU(:) 
122:       DOUBLE PRECISION, ALLOCATABLE:: ATMASS(:)122:       DOUBLE PRECISION, ALLOCATABLE:: ATMASS(:)
123:       DOUBLE PRECISION, ALLOCATABLE:: SPECMASS(:) 123:       DOUBLE PRECISION, ALLOCATABLE:: SPECMASS(:) 
124: 124: 
125: ! csw34> FREEZEGROUP variables125: ! csw34> FREEZEGROUP variables
126: !126: !
127:       INTEGER :: GROUPCENTRE127:       INTEGER :: GROUPCENTRE
128:       DOUBLE PRECISION :: GROUPRADIUS128:       DOUBLE PRECISION :: GROUPRADIUS
129:       CHARACTER (LEN=2) :: FREEZEGROUPTYPE129:       CHARACTER (LEN=2) :: FREEZEGROUPTYPE
608:       INTEGER :: NREPMAX=10, NCPREPMAX=10608:       INTEGER :: NREPMAX=10, NCPREPMAX=10
609:       INTEGER :: INTCONMAX=10, NCPCONMAX=10609:       INTEGER :: INTCONMAX=10, NCPCONMAX=10
610:       DOUBLE PRECISION, ALLOCATABLE :: EPSALPHA(:), DISTREF(:)610:       DOUBLE PRECISION, ALLOCATABLE :: EPSALPHA(:), DISTREF(:)
611:       DOUBLE PRECISION, ALLOCATABLE :: CPDISTREF(:)611:       DOUBLE PRECISION, ALLOCATABLE :: CPDISTREF(:)
612:       DOUBLE PRECISION, ALLOCATABLE :: MIN1REDO(:), MIN2REDO(:)612:       DOUBLE PRECISION, ALLOCATABLE :: MIN1REDO(:), MIN2REDO(:)
613:       DOUBLE PRECISION, ALLOCATABLE :: CONDISTREF(:), CONDISTREFLOCAL(:), CONDISTREFON(:), CONDISTREFLOCALON(:)613:       DOUBLE PRECISION, ALLOCATABLE :: CONDISTREF(:), CONDISTREFLOCAL(:), CONDISTREFON(:), CONDISTREFLOCALON(:)
614:       DOUBLE PRECISION, ALLOCATABLE :: CONCUT(:), CONCUTLOCAL(:)614:       DOUBLE PRECISION, ALLOCATABLE :: CONCUT(:), CONCUTLOCAL(:)
615:       DOUBLE PRECISION, ALLOCATABLE :: CONDISTREFFIX(:), CONCUTFIX(:)615:       DOUBLE PRECISION, ALLOCATABLE :: CONDISTREFFIX(:), CONCUTFIX(:)
616:       DOUBLE PRECISION, ALLOCATABLE :: CPCONDISTREF(:)616:       DOUBLE PRECISION, ALLOCATABLE :: CPCONDISTREF(:)
617:       DOUBLE PRECISION, ALLOCATABLE :: CONGEOM(:,:)617:       DOUBLE PRECISION, ALLOCATABLE :: CONGEOM(:,:)
618:       DOUBLE PRECISION, ALLOCATABLE :: LJADDEPS(:,:) 
619:       LOGICAL, ALLOCATABLE :: CONACTIVE(:)618:       LOGICAL, ALLOCATABLE :: CONACTIVE(:)
620:       LOGICAL, ALLOCATABLE :: ATOMACTIVE(:)619:       LOGICAL, ALLOCATABLE :: ATOMACTIVE(:)
621:       INTEGER, ALLOCATABLE :: ORDERI(:), ORDERJ(:), REPPOW(:)620:       INTEGER, ALLOCATABLE :: ORDERI(:), ORDERJ(:), REPPOW(:)
622:       INTEGER, ALLOCATABLE :: CONI(:), CONJ(:), CONION(:), CONJON(:)621:       INTEGER, ALLOCATABLE :: CONI(:), CONJ(:), CONION(:), CONJON(:)
623:       INTEGER, ALLOCATABLE :: CONIFIX(:), CONJFIX(:), REPIFIX(:), REPJFIX(:)622:       INTEGER, ALLOCATABLE :: CONIFIX(:), CONJFIX(:), REPIFIX(:), REPJFIX(:)
624:       INTEGER, ALLOCATABLE :: REPI(:), REPJ(:)623:       INTEGER, ALLOCATABLE :: REPI(:), REPJ(:)
625:       INTEGER, ALLOCATABLE :: CPCONI(:), CPCONJ(:)624:       INTEGER, ALLOCATABLE :: CPCONI(:), CPCONJ(:)
626:       INTEGER, ALLOCATABLE :: CPREPI(:), CPREPJ(:)625:       INTEGER, ALLOCATABLE :: CPREPI(:), CPREPJ(:)
627:       DOUBLE PRECISION, ALLOCATABLE :: REPCUT(:), NREPCUT(:), CPREPCUT(:), REPCUTFIX(:)626:       DOUBLE PRECISION, ALLOCATABLE :: REPCUT(:), NREPCUT(:), CPREPCUT(:), REPCUTFIX(:)
628:       INTEGER, ALLOCATABLE :: NREPI(:), NREPJ(:)627:       INTEGER, ALLOCATABLE :: NREPI(:), NREPJ(:)


r30519/keywords.f 2016-07-06 15:36:39.228085495 +0100 r30518/keywords.f 2016-07-06 15:36:41.388114699 +0100
1133: 1133: 
1134: !1134: !
1135: ! Neural network potential1135: ! Neural network potential
1136: !1136: !
1137:       MLP3T=.FALSE.1137:       MLP3T=.FALSE.
1138:       MLPB3T=.FALSE.1138:       MLPB3T=.FALSE.
1139:       MLPNEWREG=.FALSE.1139:       MLPNEWREG=.FALSE.
1140:       MLPDONE=.FALSE.1140:       MLPDONE=.FALSE.
1141:       MLPNORM=.FALSE.1141:       MLPNORM=.FALSE.
1142:       MLPLAMBDA=0.0D01142:       MLPLAMBDA=0.0D0
1143:  
1144:       LJADDT=.FALSE. 
1145:       1143:       
1146:       CALL FILE_OPEN('data', DATA_UNIT, .FALSE.)1144:       CALL FILE_OPEN('data', DATA_UNIT, .FALSE.)
1147:       1145:       
1148: !      OPEN (5,FILE='data',STATUS='OLD')1146: !      OPEN (5,FILE='data',STATUS='OLD')
1149: 1147: 
1150: !190   CALL INPUT(END,5)1148: !190   CALL INPUT(END,5)
1151: 190   CALL INPUT(END, DATA_UNIT)1149: 190   CALL INPUT(END, DATA_UNIT)
1152:       IF (.NOT. END) THEN1150:       IF (.NOT. END) THEN
1153:         CALL READU(WORD)1151:         CALL READU(WORD)
1154:       ENDIF1152:       ENDIF
4283:       ELSE IF (WORD.EQ.'JUMPMOVE') THEN4281:       ELSE IF (WORD.EQ.'JUMPMOVE') THEN
4284:          CALL READI(IX)4282:          CALL READI(IX)
4285:          JUMPMOVE(IX)=.TRUE.4283:          JUMPMOVE(IX)=.TRUE.
4286:          CALL READI(JUMPTO(IX))4284:          CALL READI(JUMPTO(IX))
4287:          JDUMP(JUMPTO(IX))=.TRUE.4285:          JDUMP(JUMPTO(IX))=.TRUE.
4288:          IF (NITEMS.GT.3) CALL READI(JUMPINT(IX))4286:          IF (NITEMS.GT.3) CALL READI(JUMPINT(IX))
4289: 4287: 
4290:       ELSE IF (WORD.EQ.'LB2') THEN4288:       ELSE IF (WORD.EQ.'LB2') THEN
4291:          LB2T=.TRUE.4289:          LB2T=.TRUE.
4292: !4290: !
4293: !  Addressable LJ 
4294: ! 
4295:          ELSE IF (WORD.EQ.'LJADD') THEN 
4296:             LJADDT=.TRUE. 
4297:             LUNIT=GETUNIT() 
4298:             OPEN(LUNIT,FILE='epsilon',STATUS='OLD') 
4299:             IF (.NOT.ALLOCATED(LJADDEPS)) ALLOCATE(LJADDEPS(NATOMS,NATOMS)) 
4300:             DO J1=1,NATOMS 
4301:                DO J2=1,NATOMS 
4302:                   READ(LUNIT,*) LJADDEPS(J2,J1) 
4303:                   WRITE(MYUNIT,'(2I6,G20.10)') J1,J2,LJADDEPS(J2,J1) 
4304:                ENDDO 
4305:             ENDDO 
4306:             CLOSE(LUNIT) 
4307: ! 
4308: ! LJAT4291: ! LJAT
4309: !4292: !
4310:       ELSE IF (WORD.EQ.'LJAT') THEN4293:       ELSE IF (WORD.EQ.'LJAT') THEN
4311:          LJATT=.TRUE.4294:          LJATT=.TRUE.
4312:          CALL READF(ZSTAR)4295:          CALL READF(ZSTAR)
4313:          LJATTOC=2.423D04296:          LJATTOC=2.423D0
4314:          IF (NITEMS.EQ.3) CALL READF(LJATTOC)4297:          IF (NITEMS.EQ.3) CALL READF(LJATTOC)
4315:       ELSE IF (WORD.EQ.'LOCALSAMPLE') THEN4298:       ELSE IF (WORD.EQ.'LOCALSAMPLE') THEN
4316:          LOCALSAMPLET=.TRUE.4299:          LOCALSAMPLET=.TRUE.
4317:          IF (NITEMS.EQ.2) THEN4300:          IF (NITEMS.EQ.2) THEN


r30519/ljadd.f 2016-07-06 15:36:39.592090416 +0100 r30518/ljadd.f 2016-07-06 15:36:41.728119283 +0100
  1: C   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/GMIN/source/ljadd.f' in revision 30518
  2: C   Copyright (C) 1999-2006 David J. Wales 
  3: C   This file is part of OPTIM. 
  4: C 
  5: C   OPTIM is free software; you can redistribute it and/or modify 
  6: C   it under the terms of the GNU General Public License as published by 
  7: C   the Free Software Foundation; either version 2 of the License, or 
  8: C   (at your option) any later version. 
  9: C 
 10: C   OPTIM is distributed in the hope that it will be useful, 
 11: C   but WITHOUT ANY WARRANTY; without even the implied warranty of 
 12: C   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 13: C   GNU General Public License for more details. 
 14: C 
 15: C   You should have received a copy of the GNU General Public License 
 16: C   along with this program; if not, write to the Free Software 
 17: C   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
 18: C 
 19: C 
 20: C************************************************************************* 
 21: C 
 22: C  Subroutine LJADD calculates the cartesian gradient and second 
 23: C  derivative matrix analytically for LJ with addressable epsilon values. Reduced units. 
 24: C 
 25: C************************************************************************* 
 26: C 
 27:       SUBROUTINE LJADD(N, X, V, ENERGY, GTEST, STEST) 
 28:       USE COMMONS, ONLY : LJADDEPS 
 29:       IMPLICIT NONE 
 30:       INTEGER N, J1, J2, J3, J4 
 31:       LOGICAL GTEST, STEST 
 32:       DOUBLE PRECISION X(3*N), ENERGY, R6, 
 33:      1                 V(3*N), R2(N,N), R2T, 
 34:      2                 R8(N,N), G(N,N), XG(N,N), 
 35:      3                 R14(N,N), F(N,N), DUMMY, DUMMYX, DUMMYY, DUMMYZ, DIST, XMUL2 
 36: C  
 37: C  Store distance matrices. 
 38: C 
 39:       ENERGY=0.0D0 
 40:       IF (GTEST.AND.(.NOT.STEST)) THEN 
 41:          DO J1=1,N 
 42:             J3=3*J1 
 43:             XG(J1,J1)=0.0D0 
 44:             DO J2=J1+1,N 
 45:                J4=3*J2 
 46:                DIST=(X(J3-2)-X(J4-2))**2+(X(J3-1)-X(J4-1))**2+(X(J3)-X(J4))**2 
 47:                DIST=1.0D0/DIST 
 48:                R6=DIST**3 
 49:                DUMMY=LJADDEPS(J2,J1)*R6*(R6-1.0D0) 
 50:                ENERGY=ENERGY+DUMMY 
 51:                DIST=DIST*R6 
 52:                XG(J2,J1)=-LJADDEPS(J2,J1)*24.0D0*(2.0D0*R6-1.0D0)*DIST 
 53:                XG(J1,J2)=XG(J2,J1) 
 54:             ENDDO 
 55:          ENDDO 
 56:       ELSEIF (GTEST) THEN 
 57:          DO J1=1,N 
 58:             XG(J1,J1)=0.0D0 
 59:             R2(J1,J1)=0.0D0 
 60:             R8(J1,J1)=0.0D0 
 61:             R14(J1,J1)=0.0D0 
 62:             DO J2=J1+1,N 
 63:                R2(J2,J1)=(X(3*(J1-1)+1)-X(3*(J2-1)+1))**2 
 64:      1                  +(X(3*(J1-1)+2)-X(3*(J2-1)+2))**2 
 65:      2                  +(X(3*(J1-1)+3)-X(3*(J2-1)+3))**2 
 66:                R2(J2,J1)=1.0D0/R2(J2,J1) 
 67:                R6=R2(J2,J1)**3 
 68:                ENERGY=ENERGY+LJADDEPS(J2,J1)*R6*(R6-1.0D0) 
 69:                R8(J2,J1)=R2(J2,J1)**4 
 70:                R14(J2,J1)=R8(J2,J1)*R8(J2,J1)/R2(J2,J1) 
 71:                R2(J1,J2)=R2(J2,J1) 
 72:                XG(J2,J1)=-LJADDEPS(J2,J1)*24.0D0*(2.0D0*R6-1.0D0)*R2(J1,J2)*R6 
 73:                XG(J1,J2)=XG(J2,J1) 
 74:             ENDDO 
 75:          ENDDO  
 76:       ELSE 
 77:          DO J1=1,N 
 78:             J3=3*(J1-1) 
 79:             DO J2=J1+1,N 
 80:                J4=3*(J2-1) 
 81:                R2T=(X(J3+1)-X(J4+1))**2+(X(J3+2)-X(J4+2))**2+(X(J3+3)-X(J4+3))**2 
 82:                R2T=1.0D0/R2T 
 83:                R6=R2T**3 
 84:                ENERGY=ENERGY+LJADDEPS(J2,J1)*R6*(R6-1.0D0) 
 85:             ENDDO 
 86:          ENDDO 
 87:  
 88:       ENDIF 
 89:       ENERGY=4.0D0*ENERGY 
 90:  
 91:       IF (.NOT.GTEST) RETURN 
 92:       DO J1=1,N 
 93:          J3=3*J1 
 94:          DUMMYX=0.0D0 
 95:          DUMMYY=0.0D0 
 96:          DUMMYZ=0.0D0 
 97:          DO J4=1,N 
 98:             J2=3*J4 
 99:             XMUL2=XG(J4,J1) 
100:             DUMMYX=DUMMYX+XMUL2*(X(J3-2)-X(J2-2)) 
101:             DUMMYY=DUMMYY+XMUL2*(X(J3-1)-X(J2-1)) 
102:             DUMMYZ=DUMMYZ+XMUL2*(X(J3)  -X(J2)) 
103:          ENDDO 
104:          V(J3-2)=DUMMYX 
105:          V(J3-1)=DUMMYY 
106:          V(J3)=DUMMYZ 
107:       ENDDO 
108:  
109:       IF (.NOT.STEST) RETURN 
110:       CALL LJADDS(G,F,R2,R14,R8,X,N) 
111:  
112:       RETURN 
113:       END 
114:  
115: C***************************************************************************** 
116:  
117:       SUBROUTINE LJADDS(G,F,R2,R14,R8,X,N) 
118:       USE MODHESS 
119:       USE COMMONS, ONLY : LJADDEPS 
120:       IMPLICIT NONE 
121:       INTEGER N, J1, J2, J3, J4, J5, J6 
122:       DOUBLE PRECISION G(N,N), R14(N,N), R8(N,N), 
123:      1                 R2(N,N), F(N,N),  
124:      2                 X(3*N),DUMMY 
125:  
126: C 
127: C  Calculate the g tensor. 
128: C 
129:       DO J1=1,N 
130:          G(J1,J1)=0.0D0 
131:          DO J2=J1+1,N 
132:             G(J2,J1)=-LJADDEPS(J2,J1)*24.0D0*(2.0D0*R14(J2,J1)-R8(J2,J1)) 
133:             G(J1,J2)=G(J2,J1) 
134:          ENDDO 
135:       ENDDO 
136:  
137:       DO J1=1,N 
138:          F(J1,J1)=0.0D0 
139:          DO J2=J1+1,N  
140:             F(J2,J1)=LJADDEPS(J2,J1)*672.0D0*R14(J2,J1)-LJADDEPS(J2,J1)*192.0D0*R8(J2,J1) 
141:             F(J1,J2)=F(J2,J1) 
142:          ENDDO 
143:       ENDDO 
144: C 
145: C  Now do the hessian. First are the entirely diagonal terms. 
146: C 
147:       DO J1=1,N 
148:          DO J2=1,3 
149:             J3=3*(J1-1)+J2 
150:             DUMMY=0.0D0 
151:             DO J4=1,N 
152:                DUMMY=DUMMY+F(J4,J1)*R2(J4,J1)* 
153:      1                 (X(J3)-X(3*(J4-1)+J2))**2 + G(J4,J1)    
154:             ENDDO 
155:             HESS(J3,J3)=DUMMY 
156:          ENDDO 
157:       ENDDO 
158: C 
159: C  Next are the terms where x_i and x_j are on the same atom 
160: C  but are different, e.g. y and z. 
161: C 
162:       DO J1=1,N 
163:          DO J2=1,3 
164:             J3=3*(J1-1)+J2 
165:             DO J4=J2+1,3 
166:                DUMMY=0.0D0 
167:                DO J5=1,N 
168:                   DUMMY=DUMMY + F(J5,J1)*R2(J5,J1)*  
169:      1           (X(J3)-X(3*(J5-1)+J2))*(X(3*(J1-1)+J4)-X(3*(J5-1)+J4))  
170:                ENDDO 
171:                HESS(3*(J1-1)+J4,J3)=DUMMY 
172:             ENDDO 
173:          ENDDO 
174:       ENDDO 
175: C 
176: C  Case III, different atoms, same cartesian coordinate. 
177: C 
178:       DO J1=1,N 
179:          DO J2=1,3 
180:             J3=3*(J1-1)+J2 
181:             DO J4=J1+1,N 
182:                HESS(3*(J4-1)+J2,J3)=-F(J4,J1)*R2(J4,J1)* 
183:      1                           (X(J3)-X(3*(J4-1)+J2))**2-G(J4,J1)  
184:             ENDDO 
185:          ENDDO 
186:       ENDDO 
187: C 
188: C  Case IV: different atoms and different cartesian coordinates. 
189: C 
190:       DO J1=1,N 
191:          DO J2=1,3 
192:             J3=3*(J1-1)+J2 
193:             DO J4=J1+1,N 
194:                DO J5=1,J2-1 
195:                   J6=3*(J4-1)+J5 
196:                   HESS(J6,J3)=-F(J4,J1)*R2(J4,J1) 
197:      1                    *(X(J3)-X(3*(J4-1)+J2)) 
198:      2                    *(X(3*(J1-1)+J5)-X(J6)) 
199:                   HESS(3*(J4-1)+J2,3*(J1-1)+J5)=HESS(J6,J3) 
200:                ENDDO 
201:             ENDDO 
202:          ENDDO 
203:       ENDDO 
204: C 
205: C  Symmetrise Hessian 
206: C 
207:       DO J1=1,3*N 
208:          DO J2=J1+1,3*N 
209:             HESS(J1,J2)=HESS(J2,J1) 
210:          ENDDO 
211:       ENDDO 
212:       RETURN 
213:       END 


r30519/minpermdist.f90 2016-07-06 15:36:39.964095396 +0100 r30518/minpermdist.f90 2016-07-06 15:36:42.120124582 +0100
604:       ELSE604:       ELSE
605:          RMATBEST(1:3,1:3)=-RMATBEST(1:3,1:3)605:          RMATBEST(1:3,1:3)=-RMATBEST(1:3,1:3)
606:       ENDIF606:       ENDIF
607:    ENDIF607:    ENDIF
608: ENDIF608: ENDIF
609: 609: 
610: !610: !
611: ! If GEOMDIFFTOL is set too small we could miss the best solution by exiting prematurely. 611: ! If GEOMDIFFTOL is set too small we could miss the best solution by exiting prematurely. 
612: ! Turn off the next line?!612: ! Turn off the next line?!
613: !613: !
614: IF (SQRT(DBEST).LT.GEOMDIFFTOL/1.0D2) GOTO 50614: ! IF (SQRT(DBEST).LT.GEOMDIFFTOL) GOTO 50
615: IF (OHCELLT.AND.(OPNUM.LT.48)) GOTO 25615: IF (OHCELLT.AND.(OPNUM.LT.48)) GOTO 25
616: IF (NCHOOSE2.LT.NORBIT2) GOTO 30616: IF (NCHOOSE2.LT.NORBIT2) GOTO 30
617: IF (NCHOOSE1.LT.NORBIT1) GOTO 65617: IF (NCHOOSE1.LT.NORBIT1) GOTO 65
618: IF (NCHOOSEB2.LT.NORBITB2) GOTO 31618: IF (NCHOOSEB2.LT.NORBITB2) GOTO 31
619: IF (NCHOOSEB1.LT.NORBITB1) GOTO 66619: IF (NCHOOSEB1.LT.NORBITB1) GOTO 66
620: 620: 
621: !621: !
622: !  Now try the enantiomer (or xz reflected structure for TWOD.OR.PULLT.OR.EFIELDT).622: !  Now try the enantiomer (or xz reflected structure for TWOD.OR.PULLT.OR.EFIELDT).
623: !623: !
624: IF ((NCHOOSE2.EQ.NORBIT2).AND.(NCHOOSE1.EQ.NORBIT1).AND.(INVERT.EQ.1)) THEN624: IF ((NCHOOSE2.EQ.NORBIT2).AND.(NCHOOSE1.EQ.NORBIT1).AND.(INVERT.EQ.1)) THEN


r30519/perc.f90 2016-07-06 15:36:40.316100204 +0100 r30518/perc.f90 2016-07-06 15:36:42.468129303 +0100
 31:   LOGICAL, ALLOCATABLE :: CON(:,:) 31:   LOGICAL, ALLOCATABLE :: CON(:,:)
 32:  32: 
 33:   IF(MODULART) THEN 33:   IF(MODULART) THEN
 34:     NSITES = MODULARCURRENTN  34:     NSITES = MODULARCURRENTN 
 35:   ELSE 35:   ELSE
 36:     NSITES = NATOMS 36:     NSITES = NATOMS
 37:   END IF 37:   END IF
 38:   IF (RIGID) THEN 38:   IF (RIGID) THEN
 39:     NSITES = NSITES/2 39:     NSITES = NSITES/2
 40:   ENDIF 40:   ENDIF
 41: ! WRITE(MYUNIT,'(A,2L5,3I6)') 'MODULART,RIGID,NSITES,NATOMS,MODULARCURRENTN=',MODULART,RIGID,NSITES,NATOMS,MODULARCURRENTN 
 42:  41: 
 43:   ALLOCATE(NDIST1(NSITES), CON(NSITES,NSITES)) 42:   ALLOCATE(NDIST1(NSITES), CON(NSITES,NSITES))
 44:  43: 
 45:   CON(1:NSITES,1:NSITES)=.FALSE. 44:   CON(1:NSITES,1:NSITES)=.FALSE.
 46:   DO J1=1,NSITES 45:   DO J1=1,NSITES
 47:     DO J2=J1+1,NSITES 46:     DO J2=J1+1,NSITES
 48:       DUMMY=(P(3*(J2-1)+1)-P(3*(J1-1)+1))**2+(P(3*(J2-1)+2)-P(3*(J1-1)+2))**2+(P(3*(J2-1)+3)-P(3*(J1-1)+3))**2 47:       DUMMY=(P(3*(J2-1)+1)-P(3*(J1-1)+1))**2+(P(3*(J2-1)+2)-P(3*(J1-1)+2))**2+(P(3*(J2-1)+3)-P(3*(J1-1)+3))**2
 49:       IF (DUMMY.LT.PERCCUT) THEN 48:       IF (DUMMY.LT.PERCCUT) THEN
 50:         CON(J2,J1)=.TRUE. 49:         CON(J2,J1)=.TRUE.
 51:         CON(J1,J2)=.TRUE. 50:         CON(J1,J2)=.TRUE.
 83:     IF (NDIST1(J1).LT.DMIN1) DMIN1=NDIST1(J1) 82:     IF (NDIST1(J1).LT.DMIN1) DMIN1=NDIST1(J1)
 84:     IF (NDIST1(J1).EQ.1000000) NUNCON1=NUNCON1+1 83:     IF (NDIST1(J1).EQ.1000000) NUNCON1=NUNCON1+1
 85:   ENDDO 84:   ENDDO
 86: !  PRINT *,'DMIN1,DMAX1,NUNCON1,NCYCLE,CHANGED=',DMIN1,DMAX1,NUNCON1,NCYCLE,CHANGED 85: !  PRINT *,'DMIN1,DMAX1,NUNCON1,NCYCLE,CHANGED=',DMIN1,DMAX1,NUNCON1,NCYCLE,CHANGED
 87:   IF (CHANGED) GOTO 5 86:   IF (CHANGED) GOTO 5
 88:   IF (DEBUG) WRITE(MYUNIT,'(3(A,I8))') 'perc> steps to atom 1 converged in ',NCYCLE-1, & 87:   IF (DEBUG) WRITE(MYUNIT,'(3(A,I8))') 'perc> steps to atom 1 converged in ',NCYCLE-1, &
 89:      &                    ' cycles; maximum=',DMAX1,' disconnected=',NUNCON1 88:      &                    ' cycles; maximum=',DMAX1,' disconnected=',NUNCON1
 90:   PERCT=.TRUE. 89:   PERCT=.TRUE.
 91:   IF (NUNCON1.GT.0) THEN 90:   IF (NUNCON1.GT.0) THEN
 92:      PERCT=.FALSE. 91:      PERCT=.FALSE.
 93: !    IF (DEBUG) WRITE(MYUNIT,'(3G20.10)') P(1:3*NATOMS) 92:      IF (DEBUG) WRITE(MYUNIT,'(3G20.10)') P(1:3*NATOMS)
 94:      IF (DEBUG) THEN 
 95:         DO J1=1,NSITES 
 96:            WRITE(MYUNIT,'(2I6,3G20.10)') J1,NDIST1(J1),P(3*(J1-1)+1),P(3*(J1-1)+2),P(3*(J1-1)+3) 
 97:         ENDDO 
 98:      ENDIF 
 99:   ENDIF 93:   ENDIF
100:  94: 
101: END SUBROUTINE PERC 95: END SUBROUTINE PERC


r30519/potential.f90 2016-07-06 15:36:40.664104910 +0100 r30518/potential.f90 2016-07-06 15:36:42.800133789 +0100
168:       CALL MSTRANS97(NATOMS, X, GRAD, EREAL, GRADT)168:       CALL MSTRANS97(NATOMS, X, GRAD, EREAL, GRADT)
169:       IF (FTEST) THEN169:       IF (FTEST) THEN
170:          RETURN170:          RETURN
171:       END IF171:       END IF
172:    ELSE IF (FRAUSIT) THEN172:    ELSE IF (FRAUSIT) THEN
173:       CALL RAD(X, GRAD, EREAL, GRADT)173:       CALL RAD(X, GRAD, EREAL, GRADT)
174:       CALL FRAUSI(NATOMS, X, GRAD, EREAL, GRADT, ANGST, NATOMS)174:       CALL FRAUSI(NATOMS, X, GRAD, EREAL, GRADT, ANGST, NATOMS)
175:       IF (FTEST) THEN175:       IF (FTEST) THEN
176:          RETURN176:          RETURN
177:       END IF177:       END IF
178:    ELSE IF (LJADDT) THEN 
179:       CALL LJADD(NATOMS, X, GRAD, EREAL, GRADT, SECT) 
180: !178: !
181: !  DIM Ne^+, Ne*, Ar^+, Ar*179: !  DIM Ne^+, Ne*, Ar^+, Ar*
182: !180: !
183:    ELSE IF ((NEON .OR. ARGON) .AND. (PLUS .OR. STAR)) THEN181:    ELSE IF ((NEON .OR. ARGON) .AND. (PLUS .OR. STAR)) THEN
184:       CALL RAD(X, GRAD, EREAL, GRADT)182:       CALL RAD(X, GRAD, EREAL, GRADT)
185: !      CALL RGNI(NATOMS, X, GRAD, EREAL, GRADT, h0, h1, ee, ev, w, NATOMS)183: !      CALL RGNI(NATOMS, X, GRAD, EREAL, GRADT, h0, h1, ee, ev, w, NATOMS)
186:       CALL RGNI(NATOMS, X, GRAD, EREAL, GRADT)184:       CALL RGNI(NATOMS, X, GRAD, EREAL, GRADT)
187: !185: !
188: !  DIM Ar^{2+}186: !  DIM Ar^{2+}
189: !187: !


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0