hdiff output

r31404/key.f90 2016-10-29 17:30:13.275403855 +0100 r31403/key.f90 2016-10-29 17:30:14.411419133 +0100
 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, MLPSTART, MLPOUT, MLPHIDDEN, MLPDATA, NMLP, N_TO_ALIGN, DJWRBID, STM, NHEXAMERS, & 25:      &        MLPIN, MLPSTART, MLPOUT, MLPHIDDEN, MLPDATA, NMLP, N_TO_ALIGN, DJWRBID, STM, NHEXAMERS, &
 26:      &        MLQIN, MLQSTART, MLQOUT, MLQDATA, NMLQ, & 26:      &        MLQIN, MLQSTART, MLQOUT, MLQDATA, NMLQ, &
 27:      &        QCIADDREP, QCIBONDS, QCISECOND, MAXNACTIVE, QCIIMAGE, NADDTARGET 27:      &        QCIADDREP, QCIBONDS, QCISECOND, MAXNACTIVE, QCIIMAGE
 28:  28: 
 29:       LOGICAL :: DTEST, MASST, RTEST, EFSTEPST, VECTORST, SUMMARYT, DUMPV, DUMPMAG, FREEZE, FREEZERANGE, GRADSQ, & 29:       LOGICAL :: DTEST, MASST, RTEST, EFSTEPST, VECTORST, SUMMARYT, DUMPV, DUMPMAG, FREEZE, FREEZERANGE, GRADSQ, &
 30:      &        PGRAD, VALUEST, ADMT, BFGSMINT, BFGSTST, CHECKINDEX, TOSI, CONTAINER, & 30:      &        PGRAD, VALUEST, ADMT, BFGSMINT, BFGSTST, CHECKINDEX, TOSI, CONTAINER, &
 31:      &        GAUSSIAN, CADPAC, PRESSURE, FTEST, DCHECK, CP2K, DFTP, CPMD, CPMDC, FREEZERES, DF1T, & 31:      &        GAUSSIAN, CADPAC, PRESSURE, FTEST, DCHECK, CP2K, DFTP, CPMD, CPMDC, FREEZERES, DF1T, &
 32:      &        VARIABLES, FIELDT, OHT, IHT, TDT, D5HT, TWOENDS, PV, FRACTIONAL, BLNT, HYBRIDMINT, & 32:      &        VARIABLES, FIELDT, OHT, IHT, TDT, D5HT, TWOENDS, PV, FRACTIONAL, BLNT, HYBRIDMINT, &
 33:      &        INDEXT, LANCZOST, NOSHIFT, GAMESSUS, GAMESSUK, PVTS, RIGIDBODY, CASTEP, ONETEP, QCHEM, QCHEMES, VASP, & 33:      &        INDEXT, LANCZOST, NOSHIFT, GAMESSUS, GAMESSUK, PVTS, RIGIDBODY, CASTEP, ONETEP, QCHEM, QCHEMES, VASP, &
 34:      &        BFGSSTEP, BULKT, HUPDATE, NOHESS, READV, NOIT, THOMSONT, SIO2T, SIO2C6T, BISECTT, BISECTDEBUG, & 34:      &        BFGSSTEP, BULKT, HUPDATE, NOHESS, READV, NOIT, THOMSONT, SIO2T, SIO2C6T, BISECTT, BISECTDEBUG, &
 35:      &        TOSIC6, TOSIPOL, FIXIMAGE, DFTBT, CHECKCONT, CHECKDT, SHIFTED, READSP, DUMPSP, NOFRQS, & 35:      &        TOSIC6, TOSIPOL, FIXIMAGE, DFTBT, CHECKCONT, CHECKDT, SHIFTED, READSP, DUMPSP, NOFRQS, &
 36:      &        ALLSTEPS, ALLVECTORS, MWVECTORS, WELCH, BINARY, READHESS, MOVIE, NORESET, TWOD, & 36:      &        ALLSTEPS, ALLVECTORS, MWVECTORS, WELCH, BINARY, READHESS, MOVIE, NORESET, TWOD, &
 37:      &        DOUBLET, REOPT, PARALLEL, LINEMIN, FIXD, KEEPINDEX, BSMIN, PRINTPTS, RKMIN, REPELTST,& 37:      &        DOUBLET, REOPT, PARALLEL, LINEMIN, FIXD, KEEPINDEX, BSMIN, PRINTPTS, RKMIN, REPELTST,&
 49:      &        CONCUTFRACT, CONCUTABST, ENDNUMHESS2, CHARMMDFTBT, PAIRCOLOURT, REVERSEUPHILLT, WHOLEDNEB, & 49:      &        CONCUTFRACT, CONCUTABST, ENDNUMHESS2, CHARMMDFTBT, PAIRCOLOURT, REVERSEUPHILLT, WHOLEDNEB, &
 50:      &        NONEBMAX, READMASST, ONEDAPBCT, ONEDPBCT, INVTONEDPBCT, INVTTWODPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, & 50:      &        NONEBMAX, READMASST, ONEDAPBCT, ONEDPBCT, INVTONEDPBCT, INVTTWODPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, &
 51:      &        THREEDPBCT, FOURDAPBCT, FOURDPBCT, MODEDOWNT, CHEMSHIFT, TTM3T, & 51:      &        THREEDPBCT, FOURDAPBCT, FOURDPBCT, MODEDOWNT, CHEMSHIFT, TTM3T, &
 52:      &        NOINVERSION, INVERTPT, KNOWVECS, PMPATHT, AAORIENTT, MULTIJOBT, QUIPARGSTRT, QUIPPARAMST, HESSDUMPT, & 52:      &        NOINVERSION, INVERTPT, KNOWVECS, PMPATHT, AAORIENTT, MULTIJOBT, QUIPARGSTRT, QUIPPARAMST, HESSDUMPT, &
 53:      &        CLASSICALRATEST, TSPLITTINGT, HESSREADT, INSTANTONOPTT,INSTANTONSTARTDUMPT,VARSTEPOPTT, MOLPRO, REAXFFT, & 53:      &        CLASSICALRATEST, TSPLITTINGT, HESSREADT, INSTANTONOPTT,INSTANTONSTARTDUMPT,VARSTEPOPTT, MOLPRO, REAXFFT, &
 54:      &        EIGENONLY,OVERCONV, GLJT,CLSTRINGT,CLSTRINGTST, PHI4MODT, EX1DT, MCPATHT, MCBIAST, RPHT, TWISTT, MCPATH2T, & 54:      &        EIGENONLY,OVERCONV, GLJT,CLSTRINGT,CLSTRINGTST, PHI4MODT, EX1DT, MCPATHT, MCBIAST, RPHT, TWISTT, MCPATH2T, &
 55:      &        PBST, SSHT, GAUSSIAN03, CPPNEBT, CUDAT, CUDATIMET, TRUSTMODET,MODELOST, METRICTENSOR, INTSPRINGACTIVET, & 55:      &        PBST, SSHT, GAUSSIAN03, CPPNEBT, CUDAT, CUDATIMET, TRUSTMODET,MODELOST, METRICTENSOR, INTSPRINGACTIVET, &
 56:      &        PERMGUESS, QCIPERMCHECK, DUMPFRQST, MULTIPOTT, MLP3T, MLPB3T, DUMPBESTPATH, ALIGNRBST, AVOID_COLLISIONS, MLPPROB, & 56:      &        PERMGUESS, QCIPERMCHECK, DUMPFRQST, MULTIPOTT, MLP3T, MLPB3T, DUMPBESTPATH, ALIGNRBST, AVOID_COLLISIONS, MLPPROB, &
 57:      &        MALONALDEHYDE, MLPNEWREG, DJWRBT, STEALTHYT, STEALTV, LJADDT, MLPB3NEWT, & 57:      &        MALONALDEHYDE, MLPNEWREG, DJWRBT, STEALTHYT, STEALTV, LJADDT, MLPB3NEWT, &
 58:      &        QCIPOTT, QCIPOT2T, QCIRADSHIFTT, QCINOREPINT, QCIAMBERT, SLERPT, NOTRANSROTT, MAXGAPT, BULKBOXT, GDSQT, FLATTESTT, & 58:      &        QCIPOTT, QCIPOT2T, QCIRADSHIFTT, QCINOREPINT, QCIAMBERT, SLERPT, NOTRANSROTT, MAXGAPT, BULKBOXT, GDSQT, FLATTESTT, &
 59:      &        MLQT, MLQPROB, LJADD2T 59:      &        MLQT, MLQPROB
 60:  60: 
 61: ! sy349 > for testing the flatpath after dneb 61: ! sy349 > for testing the flatpath after dneb
 62:       !LOGICAL, ALLOCATABLE :: FLATPATHT(:) 62:       !LOGICAL, ALLOCATABLE :: FLATPATHT(:)
 63:       LOGICAL FLATPATHT 63:       LOGICAL FLATPATHT
 64:  64: 
 65: ! bf269 > polymer in a pore (non-bonding (LJ) energy from neighbours is not subtracted) 65: ! bf269 > polymer in a pore (non-bonding (LJ) energy from neighbours is not subtracted)
 66:       LOGICAL :: PORE8T = .FALSE. ! add 8th power cylindrical pore to the potential? 66:       LOGICAL :: PORE8T = .FALSE. ! add 8th power cylindrical pore to the potential?
 67:       INTEGER :: PORE8_AXIS = 3 ! principal axis of the cylindric pore (1:x, 2:y, 3:z) 67:       INTEGER :: PORE8_AXIS = 3 ! principal axis of the cylindric pore (1:x, 2:y, 3:z)
 68:       DOUBLE PRECISION :: PORE8_ENERGY = 1.0d1 ! energy of the pore when radius = 1 68:       DOUBLE PRECISION :: PORE8_ENERGY = 1.0d1 ! energy of the pore when radius = 1
 69:       LOGICAL :: HARMPOLYT = .FALSE. ! add harmonic bonds between the beads 69:       LOGICAL :: HARMPOLYT = .FALSE. ! add harmonic bonds between the beads


r31404/keywords.f 2016-10-29 17:30:13.599408213 +0100 r31403/keywords.f 2016-10-29 17:30:14.679422737 +0100
722:          MIEFT=.FALSE.722:          MIEFT=.FALSE.
723:          MIEF_PBCT=.FALSE.723:          MIEF_PBCT=.FALSE.
724:          MIEF_CUTT=.FALSE.724:          MIEF_CUTT=.FALSE.
725:          MIEF_BOX(1:3) = 1.0D9725:          MIEF_BOX(1:3) = 1.0D9
726:          MIEF_RCUT= 1.0D9726:          MIEF_RCUT= 1.0D9
727:          !727:          !
728:          ! UNDOCUMENTED keywords/parameters728:          ! UNDOCUMENTED keywords/parameters
729:          ! 729:          ! 
730:          TWISTT=.FALSE.730:          TWISTT=.FALSE.
731:          LJADDT=.FALSE.731:          LJADDT=.FALSE.
732:          LJADD2T=.FALSE. 
733:          INVERTPT=.FALSE.732:          INVERTPT=.FALSE.
734:          DNEBEFRAC=0.0D0733:          DNEBEFRAC=0.0D0
735:          MORPHT=.FALSE.734:          MORPHT=.FALSE.
736:          GREATCIRCLET=.FALSE.735:          GREATCIRCLET=.FALSE.
737:          MAXTSENERGY=1.0D100736:          MAXTSENERGY=1.0D100
738:          MAXBARRIER=1.0D100737:          MAXBARRIER=1.0D100
739:          MAXMAXBARRIER=1.0D100738:          MAXMAXBARRIER=1.0D100
740:          ReoptimiseEndpoints=.False.739:          ReoptimiseEndpoints=.False.
741:          ANGLEAXIS=.FALSE.740:          ANGLEAXIS=.FALSE.
742:          NFAILMAX=2741:          NFAILMAX=2
3608:             LUNIT=GETUNIT()3607:             LUNIT=GETUNIT()
3609:             OPEN(LUNIT,FILE='epsilon',STATUS='OLD')3608:             OPEN(LUNIT,FILE='epsilon',STATUS='OLD')
3610:             IF (.NOT.ALLOCATED(LJADDEPS)) ALLOCATE(LJADDEPS(NATOMS,NATOMS))3609:             IF (.NOT.ALLOCATED(LJADDEPS)) ALLOCATE(LJADDEPS(NATOMS,NATOMS))
3611:             DO J1=1,NATOMS3610:             DO J1=1,NATOMS
3612:                DO J2=1,NATOMS3611:                DO J2=1,NATOMS
3613:                   READ(LUNIT,*) LJADDEPS(J2,J1)3612:                   READ(LUNIT,*) LJADDEPS(J2,J1)
3614:                   IF (DEBUG) PRINT '(2I6,G20.10)',J1,J2,LJADDEPS(J2,J1)3613:                   IF (DEBUG) PRINT '(2I6,G20.10)',J1,J2,LJADDEPS(J2,J1)
3615:                ENDDO3614:                ENDDO
3616:             ENDDO3615:             ENDDO
3617:             CLOSE(LUNIT)3616:             CLOSE(LUNIT)
3618:          ELSE IF (WORD.EQ.'LJADD2') THEN3617: 
3619:             LJADDT=.TRUE. 
3620:             LJADD2T=.TRUE. 
3621:             CALL READI(NADDTARGET) 
3622:             WRITE(*,'(A,I6)') 'keyword> Target cluster size is ',NADDTARGET 
3623:             IF (MOD(NATOMS,NADDTARGET).NE.0) THEN 
3624:                WRITE(*,'(A,I6)') 'keywords> ERROR, target cluster size is not a factor of the nummber of the atoms ',NATOMS 
3625:                STOP 
3626:             ENDIF 
3627:             LUNIT=GETUNIT() 
3628:             OPEN(LUNIT,FILE='epsilon',STATUS='OLD') 
3629:             IF (.NOT.ALLOCATED(LJADDEPS)) ALLOCATE(LJADDEPS(NADDTARGET,NADDTARGET)) 
3630:             DO J1=1,NADDTARGET 
3631:                DO J2=1,NADDTARGET 
3632:                   READ(LUNIT,*) LJADDEPS(J2,J1) 
3633:                   WRITE(*,'(2I6,G20.10)') J1,J2,LJADDEPS(J2,J1) 
3634:                ENDDO 
3635:             ENDDO 
3636:             CLOSE(LUNIT) 
3637: ! 
3638: ! Keyword for adding a general LJ site to PY ellipsoids3618: ! Keyword for adding a general LJ site to PY ellipsoids
3639: ! Coded by swo24 in July 20113619: ! Coded by swo24 in July 2011
3640: ! Keyword: LJGSITE ("LJ general site"), used in MULTISITEPY2 in multisitepy.f903620: ! Keyword: LJGSITE ("LJ general site"), used in MULTISITEPY2 in multisitepy.f90
3641: ! Syntax: LJGSITE sigma_0 epsilon3621: ! Syntax: LJGSITE sigma_0 epsilon
3642: ! Also requires: ljsites.xyz file as described in multisitepy.f903622: ! Also requires: ljsites.xyz file as described in multisitepy.f90
3643:          ELSE IF (WORD.EQ.'LJGSITE') THEN3623:          ELSE IF (WORD.EQ.'LJGSITE') THEN
3644: ! Turn on logical indicating that there is an LJ general site3624: ! Turn on logical indicating that there is an LJ general site
3645:             LJGSITET=.TRUE.3625:             LJGSITET=.TRUE.
3646: 3626: 
3647: ! Read parameters from data file3627: ! Read parameters from data file
4021:                   MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)4001:                   MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)
4022:                ENDDO4002:                ENDDO
4023:                DEALLOCATE(MLPMEAN)4003:                DEALLOCATE(MLPMEAN)
4024:             ENDIF4004:             ENDIF
4025:          ELSE IF (WORD.EQ.'MLQ') THEN4005:          ELSE IF (WORD.EQ.'MLQ') THEN
4026:             MLQT=.TRUE.4006:             MLQT=.TRUE.
4027:             CALL READI(MLQIN)      ! number of inputs (data items after outcome)4007:             CALL READI(MLQIN)      ! number of inputs (data items after outcome)
4028:             CALL READI(MLQSTART) ! starting position in data list, not counting outcome4008:             CALL READI(MLQSTART) ! starting position in data list, not counting outcome
4029:             CALL READI(MLQOUT)4009:             CALL READI(MLQOUT)
4030:             CALL READI(MLQDATA)4010:             CALL READI(MLQDATA)
4031:             IF (NITEMS.GT.4) CALL READF(MLQLAMBDA)4011:             IF (NITEMS.GT.5) CALL READF(MLQLAMBDA)
4032:             WRITE(*,'(A,4I8,G20.10)') ' keywords> MLQ Nin, Ninstart, Nout, Ndata, lambda=',4012:             WRITE(*,'(A,4I8,G20.10)') ' keywords> MLQ Nin, Ninstart, Nout, Ndata, lambda=',
4033:      &                                MLQIN,MLQSTART,MLQOUT,MLQDATA,MLQLAMBDA4013:      &                                MLQIN,MLQSTART,MLQOUT,MLQDATA,MLQLAMBDA
4034:             NMLQ=MLQOUT*(1+(MLQIN*(MLQIN+3))/2)4014:             NMLQ=MLQOUT*(1+(MLQIN*(MLQIN+3))/2)
4035:             WRITE(*,'(A,5I8,G20.10)') ' keywords> MLQ variables=',NMLQ4015:             WRITE(*,'(A,5I8,G20.10)') ' keywords> MLQ variables=',NMLQ
4036:             IF (NMLQ.NE.NATOMS) THEN4016:             IF (NMLQ.NE.NATOMS) THEN
4037:                PRINT '(A,2I8)', 'keywords> ERROR *** NATOMS,NMLQ=',NATOMS,NMLQ4017:                PRINT '(A,2I8)', 'keywords> ERROR *** NATOMS,NMLQ=',NATOMS,NMLQ
4038:                STOP4018:                STOP
4039:             ENDIF4019:             ENDIF
4040: 4020: 
4041:             LUNIT=GETUNIT()4021:             LUNIT=GETUNIT()


r31404/ljadd.f 2016-10-29 17:30:13.847411551 +0100 r31403/ljadd.f 2016-10-29 17:30:14.967426611 +0100
204: C204: C
205: C  Symmetrise Hessian205: C  Symmetrise Hessian
206: C206: C
207:       DO J1=1,3*N207:       DO J1=1,3*N
208:          DO J2=J1+1,3*N208:          DO J2=J1+1,3*N
209:             HESS(J1,J2)=HESS(J2,J1)209:             HESS(J1,J2)=HESS(J2,J1)
210:          ENDDO210:          ENDDO
211:       ENDDO211:       ENDDO
212:       RETURN212:       RETURN
213:       END213:       END
214: C 
215: C************************************************************************* 
216: C 
217: C  Subroutine LJADD2 calculates the cartesian gradient and second 
218: C  derivative matrix analytically for LJ with addressable epsilon values. Reduced units. 
219: C  This routine treats multiple copies of a target of cluster size NADDTARGET. 
220: C  The epsilon values are replicated via the MOD function. 
221: C 
222: C************************************************************************* 
223: C 
224:       SUBROUTINE LJADD2(N, X, V, ENERGY, GTEST, STEST) 
225:       USE KEY, ONLY : LJADDEPS, NADDTARGET 
226:       IMPLICIT NONE 
227:       INTEGER N, J1, J2, J3, J4, MJ1, MJ2 
228:       LOGICAL GTEST, STEST 
229:       DOUBLE PRECISION X(3*N), ENERGY, R6, 
230:      1                 V(3*N), R2(N,N), R2T, 
231:      2                 R8(N,N), G(N,N), XG(N,N), 
232:      3                 R14(N,N), F(N,N), DUMMY, DUMMYX, DUMMYY, DUMMYZ, DIST, XMUL2 
233: C 
234: C  Store distance matrices. 
235: C 
236: !     WRITE(MYUNIT,'(A)') 'coords in LJADD2:' 
237: !     WRITE(MYUNIT,'(3G20.10)') X(1:3*N) 
238:       ENERGY=0.0D0 
239:       IF (GTEST.AND.(.NOT.STEST)) THEN 
240:          DO J1=1,N 
241:             MJ1=MOD(J1,NADDTARGET)+1 
242:             J3=3*J1 
243:             XG(J1,J1)=0.0D0 
244:             DO J2=J1+1,N 
245:                MJ2=MOD(J2,NADDTARGET)+1 
246:                J4=3*J2 
247:                DIST=(X(J3-2)-X(J4-2))**2+(X(J3-1)-X(J4-1))**2+(X(J3)-X(J4))**2 
248:                DIST=1.0D0/DIST 
249:                R6=DIST**3 
250:                IF (MJ1.EQ.MJ2) THEN ! repulsive part only 
251:                   DUMMY=LJADDEPS(MJ2,MJ1)*R6*R6 
252:                ELSE 
253:                   DUMMY=LJADDEPS(MJ2,MJ1)*R6*(R6-1.0D0) 
254:                ENDIF 
255:                ENERGY=ENERGY+DUMMY 
256: !              WRITE(MYUNIT,'(A,2I8,2G20.10)') 'J1,J2,DUMMY,ENERGY=',J1,J2,DUMMY,ENERGY 
257:                DIST=DIST*R6 
258:                IF (MJ1.EQ.MJ2) THEN ! repulsive part only 
259:                   XG(J2,J1)=-LJADDEPS(MJ2,MJ1)*24.0D0*2.0D0*R6*DIST 
260:                ELSE 
261:                   XG(J2,J1)=-LJADDEPS(MJ2,MJ1)*24.0D0*(2.0D0*R6-1.0D0)*DIST 
262:                ENDIF 
263:                XG(J1,J2)=XG(J2,J1) 
264:             ENDDO 
265:          ENDDO 
266:       ELSEIF (GTEST) THEN 
267:          DO J1=1,N 
268:             MJ1=MOD(J1,NADDTARGET)+1 
269:             XG(J1,J1)=0.0D0 
270:             R2(J1,J1)=0.0D0 
271:             R8(J1,J1)=0.0D0 
272:             R14(J1,J1)=0.0D0 
273:             DO J2=J1+1,N 
274:                MJ2=MOD(J2,NADDTARGET)+1 
275:                R2(J2,J1)=(X(3*(J1-1)+1)-X(3*(J2-1)+1))**2 
276:      1                  +(X(3*(J1-1)+2)-X(3*(J2-1)+2))**2 
277:      2                  +(X(3*(J1-1)+3)-X(3*(J2-1)+3))**2 
278:                R2(J2,J1)=1.0D0/R2(J2,J1) 
279:                R6=R2(J2,J1)**3 
280:                IF (MJ1.EQ.MJ2) THEN ! repulsive part only 
281:                   DUMMY=LJADDEPS(MJ2,MJ1)*R6*R6 
282:                ELSE 
283:                   DUMMY=LJADDEPS(MJ2,MJ1)*R6*(R6-1.0D0) 
284:                ENDIF 
285:                ENERGY=ENERGY+DUMMY 
286:                R8(J2,J1)=R2(J2,J1)**4 
287:                R14(J2,J1)=R8(J2,J1)*R8(J2,J1)/R2(J2,J1) 
288:                R2(J1,J2)=R2(J2,J1) 
289:                IF (MJ1.EQ.MJ2) THEN ! repulsive part only 
290:                   XG(J2,J1)=-LJADDEPS(MJ2,MJ1)*24.0D0*2.0D0*R6*R2(J1,J2)*R6 
291:                ELSE 
292:                   XG(J2,J1)=-LJADDEPS(MJ2,MJ1)*24.0D0*(2.0D0*R6-1.0D0)*R2(J1,J2)*R6 
293:                ENDIF 
294:                XG(J1,J2)=XG(J2,J1) 
295:             ENDDO 
296:          ENDDO 
297:       ELSE 
298:          DO J1=1,N 
299:             MJ1=MOD(J1,NADDTARGET)+1 
300:             J3=3*(J1-1) 
301:             DO J2=J1+1,N 
302:                MJ2=MOD(J2,NADDTARGET)+1 
303:                J4=3*(J2-1) 
304:                R2T=(X(J3+1)-X(J4+1))**2+(X(J3+2)-X(J4+2))**2+(X(J3+3)-X(J4+3))**2 
305:                R2T=1.0D0/R2T 
306:                R6=R2T**3 
307:                IF (MJ1.EQ.MJ2) THEN ! repulsive part only 
308:                   ENERGY=ENERGY+LJADDEPS(MJ2,MJ1)*R6*R6 
309:                ELSE 
310:                   ENERGY=ENERGY+LJADDEPS(MJ2,MJ1)*R6*(R6-1.0D0) 
311:                ENDIF 
312:             ENDDO 
313:          ENDDO 
314:  
315:       ENDIF 
316:       ENERGY=4.0D0*ENERGY 
317:  
318:       IF (.NOT.GTEST) RETURN 
319:       DO J1=1,N 
320:          J3=3*J1 
321:          DUMMYX=0.0D0 
322:          DUMMYY=0.0D0 
323:          DUMMYZ=0.0D0 
324:          DO J4=1,N 
325:             J2=3*J4 
326:             XMUL2=XG(J4,J1) 
327:             DUMMYX=DUMMYX+XMUL2*(X(J3-2)-X(J2-2)) 
328:             DUMMYY=DUMMYY+XMUL2*(X(J3-1)-X(J2-1)) 
329:             DUMMYZ=DUMMYZ+XMUL2*(X(J3)  -X(J2)) 
330:          ENDDO 
331:          V(J3-2)=DUMMYX 
332:          V(J3-1)=DUMMYY 
333:          V(J3)=DUMMYZ 
334:       ENDDO 
335:  
336:       IF (.NOT.STEST) RETURN 
337:       CALL LJADDS2(G,F,R2,R14,R8,X,N) 
338:  
339:       RETURN 
340:       END 
341:  
342: C***************************************************************************** 
343:  
344:       SUBROUTINE LJADDS2(G,F,R2,R14,R8,X,N) 
345:       USE MODHESS 
346:       USE KEY, ONLY : LJADDEPS, NADDTARGET 
347:       IMPLICIT NONE 
348:       INTEGER N, J1, J2, J3, J4, J5, J6, MJ1, MJ2 
349:       DOUBLE PRECISION G(N,N), R14(N,N), R8(N,N), 
350:      1                 R2(N,N), F(N,N), 
351:      2                 X(3*N),DUMMY 
352:  
353: C 
354: C  Calculate the g tensor. 
355: C 
356:       DO J1=1,N 
357:          MJ1=MOD(J1,NADDTARGET)+1 
358:          G(J1,J1)=0.0D0 
359:          DO J2=J1+1,N 
360:             MJ2=MOD(J2,NADDTARGET)+1 
361:             IF (MJ1.EQ.MJ2) THEN ! repulsive part only 
362:                G(J2,J1)=-LJADDEPS(MJ2,MJ1)*24.0D0*2.0D0*R14(J2,J1) 
363:             ELSE 
364:                G(J2,J1)=-LJADDEPS(MJ2,MJ1)*24.0D0*(2.0D0*R14(J2,J1)-R8(J2,J1)) 
365:             ENDIF 
366:             G(J1,J2)=G(J2,J1) 
367:          ENDDO 
368:       ENDDO 
369:  
370:       DO J1=1,N 
371:          MJ1=MOD(J1,NADDTARGET)+1 
372:          F(J1,J1)=0.0D0 
373:          DO J2=J1+1,N 
374:             MJ2=MOD(J2,NADDTARGET)+1 
375:             IF (MJ1.EQ.MJ2) THEN ! repulsive part only 
376:                F(J2,J1)=LJADDEPS(MJ2,MJ1)*672.0D0*R14(J2,J1) 
377:             ELSE 
378:                F(J2,J1)=LJADDEPS(MJ2,MJ1)*672.0D0*R14(J2,J1)-LJADDEPS(MJ2,MJ1)*192.0D0*R8(J2,J1) 
379:             ENDIF 
380:             F(J1,J2)=F(J2,J1) 
381:          ENDDO 
382:       ENDDO 
383: C 
384: C  Now do the hessian. First are the entirely diagonal terms. 
385: C 
386:       DO J1=1,N 
387:          DO J2=1,3 
388:             J3=3*(J1-1)+J2 
389:             DUMMY=0.0D0 
390:             DO J4=1,N 
391:                DUMMY=DUMMY+F(J4,J1)*R2(J4,J1)* 
392:      1                 (X(J3)-X(3*(J4-1)+J2))**2 + G(J4,J1) 
393:             ENDDO 
394:             HESS(J3,J3)=DUMMY 
395:          ENDDO 
396:       ENDDO 
397: C 
398: C  Next are the terms where x_i and x_j are on the same atom 
399: C  but are different, e.g. y and z. 
400: C 
401:       DO J1=1,N 
402:          DO J2=1,3 
403:             J3=3*(J1-1)+J2 
404:             DO J4=J2+1,3 
405:                DUMMY=0.0D0 
406:                DO J5=1,N 
407:                   DUMMY=DUMMY + F(J5,J1)*R2(J5,J1)* 
408:      1           (X(J3)-X(3*(J5-1)+J2))*(X(3*(J1-1)+J4)-X(3*(J5-1)+J4)) 
409:                ENDDO 
410:                HESS(3*(J1-1)+J4,J3)=DUMMY 
411:             ENDDO 
412:          ENDDO 
413:       ENDDO 
414: C 
415: C  Case III, different atoms, same cartesian coordinate. 
416: C 
417:       DO J1=1,N 
418:          DO J2=1,3 
419:             J3=3*(J1-1)+J2 
420:             DO J4=J1+1,N 
421:                HESS(3*(J4-1)+J2,J3)=-F(J4,J1)*R2(J4,J1)* 
422:      1                           (X(J3)-X(3*(J4-1)+J2))**2-G(J4,J1) 
423:             ENDDO 
424:          ENDDO 
425:       ENDDO 
426: C 
427: C  Case IV: different atoms and different cartesian coordinates. 
428: C 
429:       DO J1=1,N 
430:          DO J2=1,3 
431:             J3=3*(J1-1)+J2 
432:             DO J4=J1+1,N 
433:                DO J5=1,J2-1 
434:                   J6=3*(J4-1)+J5 
435:                   HESS(J6,J3)=-F(J4,J1)*R2(J4,J1) 
436:      1                    *(X(J3)-X(3*(J4-1)+J2)) 
437:      2                    *(X(3*(J1-1)+J5)-X(J6)) 
438:                   HESS(3*(J4-1)+J2,3*(J1-1)+J5)=HESS(J6,J3) 
439:                ENDDO 
440:             ENDDO 
441:          ENDDO 
442:       ENDDO 
443: C 
444: C  Symmetrise Hessian 
445: C 
446:       DO J1=1,3*N 
447:          DO J2=J1+1,3*N 
448:             HESS(J1,J2)=HESS(J2,J1) 
449:          ENDDO 
450:       ENDDO 
451:       RETURN 
452:       END 
453:  
454:  


r31404/potential.f 2016-10-29 17:30:14.127415314 +0100 r31403/potential.f 2016-10-29 17:30:15.259430538 +0100
 67:          COMMON /PCALL/ NPCALL, ECALL, FCALL, SCALL, ETIME, FTIME, STIME 67:          COMMON /PCALL/ NPCALL, ECALL, FCALL, SCALL, ETIME, FTIME, STIME
 68:          LOGICAL KNOWE, KNOWG, KNOWH 68:          LOGICAL KNOWE, KNOWG, KNOWH
 69:          COMMON /KNOWN/ KNOWE, KNOWG, KNOWH 69:          COMMON /KNOWN/ KNOWE, KNOWG, KNOWH
 70:  70: 
 71:          DOUBLE PRECISION VPLUS(3*NATOMS), VMINUS(3*NATOMS), DIFF, EPLUS1, EPLUS2, EMINUS1, EMINUS2 71:          DOUBLE PRECISION VPLUS(3*NATOMS), VMINUS(3*NATOMS), DIFF, EPLUS1, EPLUS2, EMINUS1, EMINUS2
 72:          DOUBLE PRECISION :: CLIMBER_ENERGY,CLIMBER_GRADATOMS(3*NATOMS) 72:          DOUBLE PRECISION :: CLIMBER_ENERGY,CLIMBER_GRADATOMS(3*NATOMS)
 73:  73: 
 74:          ! double precision upperE, lowerE, deltaCoord, numericalGrad(3*NATOMS), RMSdiff 74:          ! double precision upperE, lowerE, deltaCoord, numericalGrad(3*NATOMS), RMSdiff
 75:          ! double precision dummyGrad(3*NATOMS), upperGrad(3*NATOMS), lowerGrad(3*NATOMS) 75:          ! double precision dummyGrad(3*NATOMS), upperGrad(3*NATOMS), lowerGrad(3*NATOMS)
 76:          ! double precision numericalSD, tempHess(3*NATOMS,3*NATOMS) 76:          ! double precision numericalSD, tempHess(3*NATOMS,3*NATOMS)
 77:          double precision HESSDUM(3*NATOMS,3*NATOMS) 77:          double precision HESSDUM(NATOMS,NATOMS)
 78:  78: 
 79:          ! sf344> NAB & AMBER additions 79:          ! sf344> NAB & AMBER additions
 80:          DOUBLE PRECISION,dimension(:),allocatable  ::  temphess 80:          DOUBLE PRECISION,dimension(:),allocatable  ::  temphess
 81:          DOUBLE PRECISION  :: GRAD1(3*NATOMS) 81:          DOUBLE PRECISION  :: GRAD1(3*NATOMS)
 82:          integer i,j,k 82:          integer i,j,k
 83:          ! hk286 - local rigid body 83:          ! hk286 - local rigid body
 84:          DOUBLE PRECISION :: XCOORDS(3*NATOMS), XRIGIDCOORDS(DEGFREEDOMS), XRIGIDGRAD(DEGFREEDOMS) 84:          DOUBLE PRECISION :: XCOORDS(3*NATOMS), XRIGIDCOORDS(DEGFREEDOMS), XRIGIDGRAD(DEGFREEDOMS)
 85:          DOUBLE PRECISION :: XRIGIDHESS(DEGFREEDOMS, DEGFREEDOMS) 85:          DOUBLE PRECISION :: XRIGIDHESS(DEGFREEDOMS, DEGFREEDOMS)
 86:          DOUBLE PRECISION,ALLOCATABLE :: FOCK(:,:), MOCOEFF(:,:) 86:          DOUBLE PRECISION,ALLOCATABLE :: FOCK(:,:), MOCOEFF(:,:)
 87:          DOUBLE PRECISION :: GRADATOMS(3*NATOMS) 87:          DOUBLE PRECISION :: GRADATOMS(3*NATOMS)
506: !               IF (.NOT.(ALLOCATED(HESS))) ALLOCATE(HESS(NMLQ,NMLQ))506: !               IF (.NOT.(ALLOCATED(HESS))) ALLOCATE(HESS(NMLQ,NMLQ))
507: !               CALL MLQ(COORDS, VNEW, ENERGY, .TRUE., .TRUE.)507: !               CALL MLQ(COORDS, VNEW, ENERGY, .TRUE., .TRUE.)
508: !               PRINT '(A,I8)','SIZE(HESS)=',SIZE(HESS)508: !               PRINT '(A,I8)','SIZE(HESS)=',SIZE(HESS)
509: !               HESSDUM(1:NMLQ,1:NMLQ)=HESS(1:NMLQ,1:NMLQ)509: !               HESSDUM(1:NMLQ,1:NMLQ)=HESS(1:NMLQ,1:NMLQ)
510: !               DO J1=1,NATOMS510: !               DO J1=1,NATOMS
511: !                  COORDS(J1)=COORDS(J1)+DIFF511: !                  COORDS(J1)=COORDS(J1)+DIFF
512: !                  CALL MLQ(COORDS,VPLUS,EPLUS,.FALSE.,.FALSE.)512: !                  CALL MLQ(COORDS,VPLUS,EPLUS,.FALSE.,.FALSE.)
513: !                  COORDS(J1)=COORDS(J1)-2.0D0*DIFF513: !                  COORDS(J1)=COORDS(J1)-2.0D0*DIFF
514: !                  CALL MLQ(COORDS,VMINUS,EMINUS,.FALSE.,.FALSE.)514: !                  CALL MLQ(COORDS,VMINUS,EMINUS,.FALSE.,.FALSE.)
515: !                  COORDS(J1)=COORDS(J1)+DIFF515: !                  COORDS(J1)=COORDS(J1)+DIFF
516: !                  IF ((ABS(VNEW(J1)).NE.0.0D0).AND. 516: !                  WRITE(*,'(A,I5,2F20.10)') 'anal and num ',J1,VNEW(J1),(EPLUS-EMINUS)/(2.0D0*DIFF)
517: !    &                (ABS(100.0D0*(VNEW(J1)-(EPLUS-EMINUS)/(2.0D0*DIFF))/VNEW(J1)).GT.1.0D0)) THEN 
518: !                     WRITE(*,'(A,I5,2F20.10,A)') 'anal and num ',J1,VNEW(J1),(EPLUS-EMINUS)/(2.0D0*DIFF),'   X' 
519: !                  ELSE 
520: !                     WRITE(*,'(A,I5,2F20.10)') 'anal and num ',J1,VNEW(J1),(EPLUS-EMINUS)/(2.0D0*DIFF) 
521: !                  ENDIF 
522: !               ENDDO517: !               ENDDO
523: !               PRINT*,'analytic and numerical second derivatives:'518: !               PRINT*,'analytic and numerical second derivatives:'
524: !               DO J1=1,NATOMS519: !               DO J1=1,NATOMS
525: !                  COORDS(J1)=COORDS(J1)+DIFF520: !                  COORDS(J1)=COORDS(J1)+DIFF
526: !                  CALL MLQ(COORDS,VPLUS,EPLUS,.TRUE.,.FALSE.)521: !                  CALL MLQ(COORDS,VPLUS,EPLUS,.TRUE.,.FALSE.)
527: !                  COORDS(J1)=COORDS(J1)-2.0D0*DIFF522: !                  COORDS(J1)=COORDS(J1)-2.0D0*DIFF
528: !                  CALL MLQ(COORDS,VMINUS,EMINUS,.TRUE.,.FALSE.)523: !                  CALL MLQ(COORDS,VMINUS,EMINUS,.TRUE.,.FALSE.)
529: !                  COORDS(J1)=COORDS(J1)+DIFF524: !                  COORDS(J1)=COORDS(J1)+DIFF
530: !                  DO J2=1,NATOMS525: !                  DO J2=1,NATOMS
531: !                     IF ((ABS(HESS(J1,J2)).NE.0.0D0).AND. 526: !                     IF ((ABS(HESS(J1,J2)).NE.0.0D0).AND. 
532: !    &                   (ABS(100.0D0*(HESS(J1,J2)-(VPLUS(J2)-VMINUS(J2))/(2.0D0*DIFF))/HESS(J1,J2)).GT.1.0D0)) THEN527: !     &                   (ABS(100.0D0*(HESS(J1,J2)-(VPLUS(J2)-VMINUS(J2))/(2.0D0*DIFF))/HESS(J1,J2)).GT.1.0D0)) THEN
533: !                     WRITE(*,'(2I5,2G20.10,A)') J1,J2,HESS(J1,J2),(VPLUS(J2)-VMINUS(J2))/(2.0D0*DIFF),'   X'528: !                     WRITE(*,'(2I5,2G20.10,A)') J1,J2,HESS(J1,J2),(VPLUS(J2)-VMINUS(J2))/(2.0D0*DIFF),'   X'
534: !                     ELSE529: !                     ELSE
535: !                        WRITE(*,'(2I5,2G20.10,A)') J1,J2,HESS(J1,J2),(VPLUS(J2)-VMINUS(J2))/(2.0D0*DIFF)530: !                        WRITE(*,'(2I5,2G20.10,A)') J1,J2,HESS(J1,J2),(VPLUS(J2)-VMINUS(J2))/(2.0D0*DIFF)
536: !                     ENDIF531: !                     ENDIF
537: !                  ENDDO532: !                  ENDDO
538: !               ENDDO533: !               ENDDO
539: !               STOP534: !               STOP
540:             ELSE535:             ELSE
541:                CALL FUNCTIONAL( COORDS, VNEW, ENERGY, GTEST, STEST)536:                CALL FUNCTIONAL( COORDS, VNEW, ENERGY, GTEST, STEST)
542:             ENDIF537:             ENDIF
1009:             IF (PTEST) THEN1004:             IF (PTEST) THEN
1010:                WRITE(*,20) ' potential> Energy for last cycle=',ENERGY1005:                WRITE(*,20) ' potential> Energy for last cycle=',ENERGY
1011:                WRITE(ESTRING,20) ' potential> Energy for last cycle=',ENERGY1006:                WRITE(ESTRING,20) ' potential> Energy for last cycle=',ENERGY
1012:             ENDIF1007:             ENDIF
1013:          ELSE IF (ZSYM(NATOMS).EQ.'DZ') THEN1008:          ELSE IF (ZSYM(NATOMS).EQ.'DZ') THEN
1014:             CALL DZUGUTOV(NATOMS, COORDS, VNEW, ENERGY, GTEST, SSTEST,PARAM1,PARAM2,PARAM3,PARAM4,PARAM5,PARAM6,PARAM7)1009:             CALL DZUGUTOV(NATOMS, COORDS, VNEW, ENERGY, GTEST, SSTEST,PARAM1,PARAM2,PARAM3,PARAM4,PARAM5,PARAM6,PARAM7)
1015:             IF (PTEST) THEN1010:             IF (PTEST) THEN
1016:                WRITE(*,20) ' potential> Energy for last cycle=',ENERGY1011:                WRITE(*,20) ' potential> Energy for last cycle=',ENERGY
1017:                WRITE(ESTRING,20) ' potential> Energy for last cycle=',ENERGY1012:                WRITE(ESTRING,20) ' potential> Energy for last cycle=',ENERGY
1018:             ENDIF1013:             ENDIF
1019:          ELSE IF (LJADD2T) THEN 
1020:             CALL LJADD2(NATOMS, COORDS, VNEW, ENERGY, GTEST, SSTEST) 
1021: !                DIFF=1.0D-4 
1022: !                PRINT*,'analytic and numerical gradients:' 
1023: !                IF (.NOT.(ALLOCATED(HESS))) ALLOCATE(HESS(3*NATOMS,3*NATOMS)) 
1024: !                CALL LJADD2(NATOMS, COORDS, VNEW, ENERGY, .TRUE., .TRUE.) 
1025: !                PRINT '(A,I8)','SIZE(HESS)=',SIZE(HESS) 
1026: !                HESSDUM(1:3*NATOMS,1:3*NATOMS)=HESS(1:3*NATOMS,1:3*NATOMS) 
1027: !                DO J1=1,NATOMS 
1028: !                   COORDS(J1)=COORDS(J1)+DIFF 
1029: !                   CALL LJADD2(NATOMS,COORDS,VPLUS,EPLUS,.FALSE.,.FALSE.) 
1030: !                   COORDS(J1)=COORDS(J1)-2.0D0*DIFF 
1031: !                   CALL LJADD2(NATOMS,COORDS,VMINUS,EMINUS,.FALSE.,.FALSE.) 
1032: !                   COORDS(J1)=COORDS(J1)+DIFF 
1033: !                   IF ((ABS(VNEW(J1)).NE.0.0D0).AND. 
1034: !     &                (ABS(100.0D0*(VNEW(J1)-(EPLUS-EMINUS)/(2.0D0*DIFF))/VNEW(J1)).GT.1.0D0)) THEN 
1035: !                      WRITE(*,'(A,I5,2F20.10,A)') 'anal and num ',J1,VNEW(J1),(EPLUS-EMINUS)/(2.0D0*DIFF),'   X' 
1036: !                   ELSE 
1037: !                      WRITE(*,'(A,I5,2F20.10)') 'anal and num ',J1,VNEW(J1),(EPLUS-EMINUS)/(2.0D0*DIFF) 
1038: !                   ENDIF 
1039: !                ENDDO 
1040: !                PRINT*,'analytic and numerical second derivatives:' 
1041: !                DO J1=1,NATOMS 
1042: !                   COORDS(J1)=COORDS(J1)+DIFF 
1043: !                   CALL LJADD2(NATOMS,COORDS,VPLUS,EPLUS,.TRUE.,.FALSE.) 
1044: !                   COORDS(J1)=COORDS(J1)-2.0D0*DIFF 
1045: !                   CALL LJADD2(NATOMS,COORDS,VMINUS,EMINUS,.TRUE.,.FALSE.) 
1046: !                   COORDS(J1)=COORDS(J1)+DIFF 
1047: !                   DO J2=1,NATOMS 
1048: !                      IF ((ABS(HESS(J1,J2)).NE.0.0D0).AND. 
1049: !     &                   (ABS(100.0D0*(HESS(J1,J2)-(VPLUS(J2)-VMINUS(J2))/(2.0D0*DIFF))/HESS(J1,J2)).GT.1.0D0)) THEN 
1050: !                      WRITE(*,'(2I5,2G20.10,A)') J1,J2,HESS(J1,J2),(VPLUS(J2)-VMINUS(J2))/(2.0D0*DIFF),'   X' 
1051: !                      ELSE 
1052: !                         WRITE(*,'(2I5,2G20.10,A)') J1,J2,HESS(J1,J2),(VPLUS(J2)-VMINUS(J2))/(2.0D0*DIFF) 
1053: !                      ENDIF 
1054: !                   ENDDO 
1055: !                ENDDO 
1056: !                STOP 
1057:  
1058:             IF (PTEST) THEN 
1059:                WRITE(*,20) ' potential> Energy for last cycle=',ENERGY 
1060:                WRITE(ESTRING,20) ' potential> Energy for last cycle=',ENERGY 
1061:             ENDIF 
1062:          ELSE IF (LJADDT) THEN1014:          ELSE IF (LJADDT) THEN
1063:             CALL LJADD(NATOMS, COORDS, VNEW, ENERGY, GTEST, SSTEST)1015:             CALL LJADD(NATOMS, COORDS, VNEW, ENERGY, GTEST, SSTEST)
1064:             IF (PTEST) THEN1016:             IF (PTEST) THEN
1065:                WRITE(*,20) ' potential> Energy for last cycle=',ENERGY1017:                WRITE(*,20) ' potential> Energy for last cycle=',ENERGY
1066:                WRITE(ESTRING,20) ' potential> Energy for last cycle=',ENERGY1018:                WRITE(ESTRING,20) ' potential> Energy for last cycle=',ENERGY
1067:             ENDIF1019:             ENDIF
1068:          ELSE IF (ZSYM(NATOMS).EQ.'AX') THEN1020:          ELSE IF (ZSYM(NATOMS).EQ.'AX') THEN
1069:             ZSTAR=PARAM11021:             ZSTAR=PARAM1
1070:             IF (ZSTAR.EQ.0.0D0) THEN1022:             IF (ZSTAR.EQ.0.0D0) THEN
1071:                CALL LJDIFF(NATOMS, COORDS, VNEW, ENERGY, GTEST, SSTEST)1023:                CALL LJDIFF(NATOMS, COORDS, VNEW, ENERGY, GTEST, SSTEST)


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0