hdiff output

r30398/key.f90 2016-05-05 21:30:12.623621915 +0100 r30397/key.f90 2016-05-05 21:30:18.491700308 +0100
 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, STEALTHYT, LJADDT 55:      &        MALONALDEHYDE, MLPNEWREG, DJWRBT, STEALTHYT
 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
150:       INTEGER :: INTCONMAX=10, NCPCONMAX=10150:       INTEGER :: INTCONMAX=10, NCPCONMAX=10
151:       DOUBLE PRECISION, ALLOCATABLE :: EPSALPHA(:), DISTREF(:)151:       DOUBLE PRECISION, ALLOCATABLE :: EPSALPHA(:), DISTREF(:)
152:       DOUBLE PRECISION, ALLOCATABLE :: CPDISTREF(:)152:       DOUBLE PRECISION, ALLOCATABLE :: CPDISTREF(:)
153:       DOUBLE PRECISION, ALLOCATABLE :: MIN1REDO(:), MIN2REDO(:)153:       DOUBLE PRECISION, ALLOCATABLE :: MIN1REDO(:), MIN2REDO(:)
154:       DOUBLE PRECISION, ALLOCATABLE :: CONDISTREF(:), CONDISTREFLOCAL(:), CONDISTREFON(:), CONDISTREFLOCALON(:)154:       DOUBLE PRECISION, ALLOCATABLE :: CONDISTREF(:), CONDISTREFLOCAL(:), CONDISTREFON(:), CONDISTREFLOCALON(:)
155:       DOUBLE PRECISION, ALLOCATABLE :: CONCUT(:), CONCUTLOCAL(:)155:       DOUBLE PRECISION, ALLOCATABLE :: CONCUT(:), CONCUTLOCAL(:)
156:       DOUBLE PRECISION, ALLOCATABLE :: CONDISTREFFIX(:), CONCUTFIX(:)156:       DOUBLE PRECISION, ALLOCATABLE :: CONDISTREFFIX(:), CONCUTFIX(:)
157:       DOUBLE PRECISION, ALLOCATABLE :: CPCONDISTREF(:)157:       DOUBLE PRECISION, ALLOCATABLE :: CPCONDISTREF(:)
158:       DOUBLE PRECISION, ALLOCATABLE :: INTNEBIMAGES(:)158:       DOUBLE PRECISION, ALLOCATABLE :: INTNEBIMAGES(:)
159:       DOUBLE PRECISION, ALLOCATABLE :: CONGEOM(:,:)159:       DOUBLE PRECISION, ALLOCATABLE :: CONGEOM(:,:)
160:       DOUBLE PRECISION, ALLOCATABLE :: LJADDEPS(:,:) 
161:       LOGICAL, ALLOCATABLE :: CONACTIVE(:)160:       LOGICAL, ALLOCATABLE :: CONACTIVE(:)
162:       LOGICAL, ALLOCATABLE :: ATOMACTIVE(:)161:       LOGICAL, ALLOCATABLE :: ATOMACTIVE(:)
163:       INTEGER, ALLOCATABLE :: NITSTART(:)162:       INTEGER, ALLOCATABLE :: NITSTART(:)
164:       DOUBLE PRECISION, ALLOCATABLE :: RPMASSES(:), XMINA(:), XMINB(:)163:       DOUBLE PRECISION, ALLOCATABLE :: RPMASSES(:), XMINA(:), XMINB(:)
165:       DOUBLE PRECISION, ALLOCATABLE :: RBOPS(:,:)164:       DOUBLE PRECISION, ALLOCATABLE :: RBOPS(:,:)
166:       DOUBLE PRECISION, ALLOCATABLE :: SAVES(:), SAVEF(:)165:       DOUBLE PRECISION, ALLOCATABLE :: SAVES(:), SAVEF(:)
167: !     LOGICAL, ALLOCATABLE :: CONTEST(:,:)166: !     LOGICAL, ALLOCATABLE :: CONTEST(:,:)
168:       INTEGER, ALLOCATABLE :: ORDERI(:), ORDERJ(:), REPPOW(:)167:       INTEGER, ALLOCATABLE :: ORDERI(:), ORDERJ(:), REPPOW(:)
169:       INTEGER, ALLOCATABLE :: CONI(:), CONJ(:), CONION(:), CONJON(:)168:       INTEGER, ALLOCATABLE :: CONI(:), CONJ(:), CONION(:), CONJON(:)
170:       INTEGER, ALLOCATABLE :: CONIFIX(:), CONJFIX(:), REPIFIX(:), REPJFIX(:)169:       INTEGER, ALLOCATABLE :: CONIFIX(:), CONJFIX(:), REPIFIX(:), REPJFIX(:)


r30398/keywords.f 2016-05-05 21:30:12.819624534 +0100 r30397/keywords.f 2016-05-05 21:30:23.879771804 +0100
694:          ! ds656> substrate field(s)694:          ! ds656> substrate field(s)
695:          MIEFT=.FALSE.695:          MIEFT=.FALSE.
696:          MIEF_PBCT=.FALSE.696:          MIEF_PBCT=.FALSE.
697:          MIEF_CUTT=.FALSE.697:          MIEF_CUTT=.FALSE.
698:          MIEF_BOX(1:3) = 1.0D9698:          MIEF_BOX(1:3) = 1.0D9
699:          MIEF_RCUT= 1.0D9699:          MIEF_RCUT= 1.0D9
700:          !700:          !
701:          ! UNDOCUMENTED keywords/parameters701:          ! UNDOCUMENTED keywords/parameters
702:          ! 702:          ! 
703:          TWISTT=.FALSE.703:          TWISTT=.FALSE.
704:          LJADDT=.FALSE. 
705:          INVERTPT=.FALSE.704:          INVERTPT=.FALSE.
706:          DNEBEFRAC=0.0D0705:          DNEBEFRAC=0.0D0
707:          MORPHT=.FALSE.706:          MORPHT=.FALSE.
708:          GREATCIRCLET=.FALSE.707:          GREATCIRCLET=.FALSE.
709:          MAXTSENERGY=1.0D100708:          MAXTSENERGY=1.0D100
710:          MAXBARRIER=1.0D100709:          MAXBARRIER=1.0D100
711:          MAXMAXBARRIER=1.0D100710:          MAXMAXBARRIER=1.0D100
712:          ReoptimiseEndpoints=.False.711:          ReoptimiseEndpoints=.False.
713:          ANGLEAXIS=.FALSE.712:          ANGLEAXIS=.FALSE.
714:          NFAILMAX=2713:          NFAILMAX=2
3502:             LANCZOST=.TRUE.3501:             LANCZOST=.TRUE.
3503:             IF (NITEMS.GT.1) THEN3502:             IF (NITEMS.GT.1) THEN
3504:                CALL READF(ACCLAN)3503:                CALL READF(ACCLAN)
3505:             ENDIF3504:             ENDIF
3506:             IF (NITEMS.GT.2) THEN3505:             IF (NITEMS.GT.2) THEN
3507:                CALL READF(SHIFTLAN)3506:                CALL READF(SHIFTLAN)
3508:             ENDIF3507:             ENDIF
3509:             IF (NITEMS.GT.3) THEN3508:             IF (NITEMS.GT.3) THEN
3510:                CALL READF(CUTLAN)3509:                CALL READF(CUTLAN)
3511:             ENDIF3510:             ENDIF
3512: ! 
3513: !  Addressable LJ 
3514: ! 
3515:          ELSE IF (WORD.EQ.'LJADD') THEN 
3516:             LJADDT=.TRUE. 
3517:             LUNIT=GETUNIT() 
3518:             OPEN(LUNIT,FILE='epsilon',STATUS='OLD') 
3519:             IF (.NOT.ALLOCATED(LJADDEPS)) ALLOCATE(LJADDEPS(NATOMS,NATOMS)) 
3520:             DO J1=1,NATOMS 
3521:                DO J2=1,NATOMS 
3522:                   READ(LUNIT,*) LJADDEPS(J2,J1) 
3523:                   PRINT '(2I6,G20.10)',J1,J2,LJADDEPS(J2,J1) 
3524:                ENDDO 
3525:             ENDDO 
3526:             CLOSE(LUNIT) 
3527:  
3528: ! Keyword for adding a general LJ site to PY ellipsoids3511: ! Keyword for adding a general LJ site to PY ellipsoids
3529: ! Coded by swo24 in July 20113512: ! Coded by swo24 in July 2011
3530: ! Keyword: LJGSITE ("LJ general site"), used in MULTISITEPY2 in multisitepy.f903513: ! Keyword: LJGSITE ("LJ general site"), used in MULTISITEPY2 in multisitepy.f90
3531: ! Syntax: LJGSITE sigma_0 epsilon3514: ! Syntax: LJGSITE sigma_0 epsilon
3532: ! Also requires: ljsites.xyz file as described in multisitepy.f903515: ! Also requires: ljsites.xyz file as described in multisitepy.f90
3533:          ELSE IF (WORD.EQ.'LJGSITE') THEN3516:          ELSE IF (WORD.EQ.'LJGSITE') THEN
3534: ! Turn on logical indicating that there is an LJ general site3517: ! Turn on logical indicating that there is an LJ general site
3535:             LJGSITET=.TRUE.3518:             LJGSITET=.TRUE.
3536: 3519: 
3537: ! Read parameters from data file3520: ! Read parameters from data file


r30398/ljadd.f 2016-05-05 21:30:13.007627045 +0100 r30397/ljadd.f 2016-05-05 21:30:24.107775345 +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/OPTIM/source/ljadd.f' in revision 30397
  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 KEY, 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:             R2(J1,J1)=0.0D0 
 59:             R8(J1,J1)=0.0D0 
 60:             R14(J1,J1)=0.0D0 
 61:             DO J2=J1+1,N 
 62:                R2(J2,J1)=(X(3*(J1-1)+1)-X(3*(J2-1)+1))**2 
 63:      1                  +(X(3*(J1-1)+2)-X(3*(J2-1)+2))**2 
 64:      2                  +(X(3*(J1-1)+3)-X(3*(J2-1)+3))**2 
 65:                R2(J2,J1)=1.0D0/R2(J2,J1) 
 66:                R6=R2(J2,J1)**3 
 67:                ENERGY=ENERGY+LJADDEPS(J2,J1)*R6*(R6-1.0D0) 
 68:                R8(J2,J1)=R2(J2,J1)**4 
 69:                R14(J2,J1)=R8(J2,J1)*R8(J2,J1)/R2(J2,J1) 
 70:                R2(J1,J2)=R2(J2,J1) 
 71:                XG(J2,J1)=-LJADDEPS(J2,J1)*24.0D0*(2.0D0*R6-1.0D0)*R2(J1,J2)*R6 
 72:                XG(J1,J2)=XG(J2,J1) 
 73:             ENDDO 
 74:          ENDDO  
 75:       ELSE 
 76:          DO J1=1,N 
 77:             J3=3*(J1-1) 
 78:             DO J2=J1+1,N 
 79:                J4=3*(J2-1) 
 80:                R2T=(X(J3+1)-X(J4+1))**2+(X(J3+2)-X(J4+2))**2+(X(J3+3)-X(J4+3))**2 
 81:                R2T=1.0D0/R2T 
 82:                R6=R2T**3 
 83:                ENERGY=ENERGY+LJADDEPS(J2,J1)*R6*(R6-1.0D0) 
 84:             ENDDO 
 85:          ENDDO 
 86:  
 87:       ENDIF 
 88:       ENERGY=4.0D0*ENERGY 
 89:  
 90:       IF (.NOT.GTEST) RETURN 
 91:       DO J1=1,N 
 92:          J3=3*J1 
 93:          DUMMYX=0.0D0 
 94:          DUMMYY=0.0D0 
 95:          DUMMYZ=0.0D0 
 96:          DO J4=1,N 
 97:             J2=3*J4 
 98:             XMUL2=XG(J4,J1) 
 99:             DUMMYX=DUMMYX+XMUL2*(X(J3-2)-X(J2-2)) 
100:             DUMMYY=DUMMYY+XMUL2*(X(J3-1)-X(J2-1)) 
101:             DUMMYZ=DUMMYZ+XMUL2*(X(J3)  -X(J2)) 
102:          ENDDO 
103:          V(J3-2)=DUMMYX 
104:          V(J3-1)=DUMMYY 
105:          V(J3)=DUMMYZ 
106:       ENDDO 
107:        
108:       IF (.NOT.STEST) RETURN 
109:       CALL LJADDS(G,F,R2,R14,R8,X,N) 
110:  
111:       RETURN 
112:       END 
113:  
114: C***************************************************************************** 
115:  
116:       SUBROUTINE LJADDS(G,F,R2,R14,R8,X,N) 
117:       USE MODHESS 
118:       USE KEY, ONLY : LJADDEPS 
119:       IMPLICIT NONE 
120:       INTEGER N, J1, J2, J3, J4, J5, J6 
121:       DOUBLE PRECISION G(N,N), R14(N,N), R8(N,N), 
122:      1                 R2(N,N), F(N,N),  
123:      2                 X(3*N),DUMMY 
124:  
125: C 
126: C  Calculate the g tensor. 
127: C 
128:       DO J1=1,N 
129:          G(J1,J1)=0.0D0 
130:          DO J2=J1+1,N 
131:             G(J2,J1)=-LJADDEPS(J2,J1)*24.0D0*(2.0D0*R14(J2,J1)-R8(J2,J1)) 
132:             G(J1,J2)=G(J2,J1) 
133:          ENDDO 
134:       ENDDO 
135:  
136:       DO J1=1,N 
137:          F(J1,J1)=0.0D0 
138:          DO J2=J1+1,N  
139:             F(J2,J1)=LJADDEPS(J2,J1)*672.0D0*R14(J2,J1)-LJADDEPS(J2,J1)*192.0D0*R8(J2,J1) 
140:             F(J1,J2)=F(J2,J1) 
141:          ENDDO 
142:       ENDDO 
143: C 
144: C  Now do the hessian. First are the entirely diagonal terms. 
145: C 
146:       DO J1=1,N 
147:          DO J2=1,3 
148:             J3=3*(J1-1)+J2 
149:             DUMMY=0.0D0 
150:             DO J4=1,N 
151:                DUMMY=DUMMY+F(J4,J1)*R2(J4,J1)* 
152:      1                 (X(J3)-X(3*(J4-1)+J2))**2 + G(J4,J1)    
153:             ENDDO 
154:             HESS(J3,J3)=DUMMY 
155:          ENDDO 
156:       ENDDO 
157: C 
158: C  Next are the terms where x_i and x_j are on the same atom 
159: C  but are different, e.g. y and z. 
160: C 
161:       DO J1=1,N 
162:          DO J2=1,3 
163:             J3=3*(J1-1)+J2 
164:             DO J4=J2+1,3 
165:                DUMMY=0.0D0 
166:                DO J5=1,N 
167:                   DUMMY=DUMMY + F(J5,J1)*R2(J5,J1)*  
168:      1           (X(J3)-X(3*(J5-1)+J2))*(X(3*(J1-1)+J4)-X(3*(J5-1)+J4))  
169:                ENDDO 
170:                HESS(3*(J1-1)+J4,J3)=DUMMY 
171:             ENDDO 
172:          ENDDO 
173:       ENDDO 
174: C 
175: C  Case III, different atoms, same cartesian coordinate. 
176: C 
177:       DO J1=1,N 
178:          DO J2=1,3 
179:             J3=3*(J1-1)+J2 
180:             DO J4=J1+1,N 
181:                HESS(3*(J4-1)+J2,J3)=-F(J4,J1)*R2(J4,J1)* 
182:      1                           (X(J3)-X(3*(J4-1)+J2))**2-G(J4,J1)  
183:             ENDDO 
184:          ENDDO 
185:       ENDDO 
186: C 
187: C  Case IV: different atoms and different cartesian coordinates. 
188: C 
189:       DO J1=1,N 
190:          DO J2=1,3 
191:             J3=3*(J1-1)+J2 
192:             DO J4=J1+1,N 
193:                DO J5=1,J2-1 
194:                   J6=3*(J4-1)+J5 
195:                   HESS(J6,J3)=-F(J4,J1)*R2(J4,J1) 
196:      1                    *(X(J3)-X(3*(J4-1)+J2)) 
197:      2                    *(X(3*(J1-1)+J5)-X(J6)) 
198:                   HESS(3*(J4-1)+J2,3*(J1-1)+J5)=HESS(J6,J3) 
199:                ENDDO 
200:             ENDDO 
201:          ENDDO 
202:       ENDDO 
203: C 
204: C  Symmetrise Hessian 
205: C 
206:       DO J1=1,3*N 
207:          DO J2=J1+1,3*N 
208:             HESS(J1,J2)=HESS(J2,J1) 
209:          ENDDO 
210:       ENDDO 
211:       RETURN 
212:       END 


r30398/potential.f 2016-05-05 21:30:13.203629664 +0100 r30397/potential.f 2016-05-05 21:30:24.303777981 +0100
979:             IF (PTEST) THEN979:             IF (PTEST) THEN
980:                WRITE(*,20) ' potential> Energy for last cycle=',ENERGY980:                WRITE(*,20) ' potential> Energy for last cycle=',ENERGY
981:                WRITE(ESTRING,20) ' potential> Energy for last cycle=',ENERGY981:                WRITE(ESTRING,20) ' potential> Energy for last cycle=',ENERGY
982:             ENDIF982:             ENDIF
983:          ELSE IF (ZSYM(NATOMS).EQ.'DZ') THEN983:          ELSE IF (ZSYM(NATOMS).EQ.'DZ') THEN
984:             CALL DZUGUTOV(NATOMS, COORDS, VNEW, ENERGY, GTEST, SSTEST,PARAM1,PARAM2,PARAM3,PARAM4,PARAM5,PARAM6,PARAM7)984:             CALL DZUGUTOV(NATOMS, COORDS, VNEW, ENERGY, GTEST, SSTEST,PARAM1,PARAM2,PARAM3,PARAM4,PARAM5,PARAM6,PARAM7)
985:             IF (PTEST) THEN985:             IF (PTEST) THEN
986:                WRITE(*,20) ' potential> Energy for last cycle=',ENERGY986:                WRITE(*,20) ' potential> Energy for last cycle=',ENERGY
987:                WRITE(ESTRING,20) ' potential> Energy for last cycle=',ENERGY987:                WRITE(ESTRING,20) ' potential> Energy for last cycle=',ENERGY
988:             ENDIF988:             ENDIF
989:          ELSE IF (LJADDT) THEN 
990:             CALL LJADD(NATOMS, COORDS, VNEW, ENERGY, GTEST, SSTEST) 
991:             IF (PTEST) THEN 
992:                WRITE(*,20) ' potential> Energy for last cycle=',ENERGY 
993:                WRITE(ESTRING,20) ' potential> Energy for last cycle=',ENERGY 
994:             ENDIF 
995:          ELSE IF (ZSYM(NATOMS).EQ.'AX') THEN989:          ELSE IF (ZSYM(NATOMS).EQ.'AX') THEN
996:             ZSTAR=PARAM1990:             ZSTAR=PARAM1
997:             IF (ZSTAR.EQ.0.0D0) THEN991:             IF (ZSTAR.EQ.0.0D0) THEN
998:                CALL LJDIFF(NATOMS, COORDS, VNEW, ENERGY, GTEST, SSTEST)992:                CALL LJDIFF(NATOMS, COORDS, VNEW, ENERGY, GTEST, SSTEST)
999:                P2=ENERGY; P3=0.0D0993:                P2=ENERGY; P3=0.0D0
1000:             ELSE994:             ELSE
1001:                CALL LJDIFF(NATOMS, COORDS, VNEW, ENERGY, GTEST, SSTEST) ! 2-body derivatives995:                CALL LJDIFF(NATOMS, COORDS, VNEW, ENERGY, GTEST, SSTEST) ! 2-body derivatives
1002:                CALL AXDIFF(NATOMS, COORDS, VNEW, ZSTAR, GTEST, SSTEST)  ! 3-body derivatives added996:                CALL AXDIFF(NATOMS, COORDS, VNEW, ZSTAR, GTEST, SSTEST)  ! 3-body derivatives added
1003:                CALL AXPAIRS (NATOMS, COORDS, P2, P3, ENERGY, ZSTAR)     ! AxTell energy997:                CALL AXPAIRS (NATOMS, COORDS, P2, P3, ENERGY, ZSTAR)     ! AxTell energy
1004:             ENDIF998:             ENDIF


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0