hdiff output

r31240/functional.f90 2016-10-05 14:30:10.153139268 +0100 r31239/functional.f90 2016-10-05 14:30:10.913149397 +0100
 17: !   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 17: !   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 18: ! 18: !
 19: SUBROUTINE FUNCTIONAL(Z,VNEW,POTEL,GTEST,STEST) 19: SUBROUTINE FUNCTIONAL(Z,VNEW,POTEL,GTEST,STEST)
 20: USE MODHESS 20: USE MODHESS
 21: USE COMMONS 21: USE COMMONS
 22: IMPLICIT NONE 22: IMPLICIT NONE
 23: LOGICAL GTEST, STEST 23: LOGICAL GTEST, STEST
 24: DOUBLE PRECISION Z(3*NATOMS), POTEL 24: DOUBLE PRECISION Z(3*NATOMS), POTEL
 25: DOUBLE PRECISION VNEW(3*NATOMS), G12, G11, DELTA, T 25: DOUBLE PRECISION VNEW(3*NATOMS), G12, G11, DELTA, T
 26:  26: 
 27: ! G11=Z(1) 27: G11=Z(1)
 28: G12=Z(1) 28: G12=Z(2)
 29: DELTA=PARAM1 29: DELTA=PARAM1
 30: T=PARAM2 30: T=PARAM2
 31: G11=PARAM3 
 32:  31: 
 33: ! PRINT '(A,2G20.10)','G11,G12=',G11,G12 32: PRINT '(A,2G20.10)','G11,G12=',G11,G12
 34: ! PRINT '(A,2G20.10)','delta,t=',delta,t 33: PRINT '(A,2G20.10)','delta,t=',delta,t
 35: ! PRINT '(A,G20.10)','sqrt arg=',-((-2.0D0 + g11)*g11) - g12**2 34: PRINT '(A,G20.10)','sqrt arg=',-((-2.0D0 + g11)*g11) - g12**2
 36:  
 37: IF (-((-2.0D0 + g11)*g11) - g12**2.LT.0.0D0) THEN 
 38:    PRINT '(A)','functional> ERROR *** negative square root argument' 
 39:    VNEW(1)=0.0D0 
 40:    HESS(1,1)=1.0D0 
 41:    RETURN 
 42: ENDIF 
 43:  35: 
 44: POTEL= (delta*(-2.0D0 + g11) + delta*g11 + (2.0D0 + 2.0D0*(-2 + g11)*g11 - g12**2*(-1.0D0 + Sqrt(-((-2.0D0 + g11)*g11) - g12**2)))/ & 36: POTEL= (delta*(-2.0D0 + g11) + delta*g11 + (2.0D0 + 2.0D0*(-2 + g11)*g11 - g12**2*(-1.0D0 + Sqrt(-((-2.0D0 + g11)*g11) - g12**2)))/ &
 45:   &            ((-1.0D0 + g11)**2 + g12**2) - 4.0D0*g12*t)/2.0D0 37:   &            ((-1.0D0 + g11)**2 + g12**2) - 4.0D0*g12*t)/2.0D0
 46:  38: 
 47: IF (GTEST) THEN 39: IF (GTEST) THEN
 48: !  VNEW(1)= delta - ((-1.0D0 + g11)*g12**2*(-1.0D0 + (-2.0D0 + g11)*g11 + g12**2 - 2.0D0*Sqrt(-((-2.0D0 + g11)*g11) - g12**2)))/ & 40:    VNEW(1)= delta - ((-1.0D0 + g11)*g12**2*(-1.0D0 + (-2.0D0 + g11)*g11 + g12**2 - 2.0D0*Sqrt(-((-2.0D0 + g11)*g11) - g12**2)))/ &
 49: !    &   (2.0D0*Sqrt(-((-2.0D0 + g11)*g11) - g12**2)*((-1.0D0 + g11)**2 + g12**2)**2) 41:      &   (2.0D0*Sqrt(-((-2.0D0 + g11)*g11) - g12**2)*((-1.0D0 + g11)**2 + g12**2)**2)
 50: !  VNEW(2)=((g12*(2.0D0 + (2.0D0*(-2.0D0 + g11)*g11 + 3.0D0*g12**2)/Sqrt(-((-2.0D0 + g11)*g11) - g12**2)))/ & 42:    VNEW(2)=((g12*(2.0D0 + (2.0D0*(-2.0D0 + g11)*g11 + 3.0D0*g12**2)/Sqrt(-((-2.0D0 + g11)*g11) - g12**2)))/ &
 51: !    & ((-1.0D0 + g11)**2 + g12**2) + & 
 52: !    &    (-4.0D0*(-1.0D0 + g11)**2*g12 + 2.0D0*g12**3.0D0*(-1.0D0 + Sqrt(-((-2.0D0 + g11)*g11) - g12**2)))/ & 
 53: !    &     ((-1.0D0 + g11)**2 + g12**2)**2 - 4.0D0*t)/2.0D0 
 54:    VNEW(1)=((g12*(2.0D0 + (2.0D0*(-2.0D0 + g11)*g11 + 3.0D0*g12**2)/Sqrt(-((-2.0D0 + g11)*g11) - g12**2)))/ & 
 55:      & ((-1.0D0 + g11)**2 + g12**2) + & 43:      & ((-1.0D0 + g11)**2 + g12**2) + &
 56:      &    (-4.0D0*(-1.0D0 + g11)**2*g12 + 2.0D0*g12**3.0D0*(-1.0D0 + Sqrt(-((-2.0D0 + g11)*g11) - g12**2)))/ & 44:      &    (-4.0D0*(-1.0D0 + g11)**2*g12 + 2.0D0*g12**3.0D0*(-1.0D0 + Sqrt(-((-2.0D0 + g11)*g11) - g12**2)))/ &
 57:      &     ((-1.0D0 + g11)**2 + g12**2)**2 - 4.0D0*t)/2.0D0 45:      &     ((-1.0D0 + g11)**2 + g12**2)**2 - 4.0D0*t)/2.0D0
 58: ENDIF 46: ENDIF
 59:  47: 
 60: IF (STEST) THEN 48: IF (STEST) THEN
 61:     HESS(1,1)=(-((g12**2*(-8*g11 + 4*g11**2 + 3*g12**2))/((2*g11 - g11**2 - g12**2)**1.5*(1 - 2*g11 + g11**2 + g12**2))) - & 49:    HESS(1,1)=-(g12**2*(-1 - 12*g11**5 + 2*g11**6 - 5*g12**2 - g12**2*(-3 + g12**2)*(g12**2 - 2*Sqrt(-((-2 + g11)*g11) - g12**2)) + & 
 62:      &    (2*g12**2*(2 + (2*(-2 + g11)*g11 + 3*g12**2)/Sqrt(-((-2 + g11)*g11) - g12**2)))/((-1 + g11)**2 + g12**2)**2 + & 50:      &       3*g11**4*(7 + g12**2 - 2*Sqrt(-((-2 + g11)*g11) - g12**2)) + 4*g11**3*(-1 - 3*g12**2 + &
 63:      &    (2 + (2*(-2 + g11)*g11 + 3*g12**2)/Sqrt(-((-2 + g11)*g11) - g12**2))/((-1 + g11)**2 + g12**2) + & 51:   &    6*Sqrt(-((-2 + g11)*g11) - g12**2)) + &
 64:      &    (-4*(-1 + g11)**2 - (2*g12**4)/Sqrt(-((-2 + g11)*g11) - g12**2) + 6*g12**2*(-1 + Sqrt(-((-2 + g11)*g11) - g12**2)))/((-1 + g11)**2 + g12**2)**2 - & 52:      &       4*g11*(3 + 3*Sqrt(-((-2 + g11)*g11) - g12**2) + 2*g12**2*Sqrt(-((-2 + g11)*g11) - g12**2)) - &
 65:      &    (4*g12*(-4*(-1 + g11)**2*g12 + 2*g12**3*(-1 + Sqrt(-((-2 + g11)*g11) - g12**2))))/((-1 + g11)**2 + g12**2)**3)/2. 53:      &       2*g11**2*(9 + 15*Sqrt(-((-2 + g11)*g11) - g12**2) + 2*g12**2*(-3 + Sqrt(-((-2 + g11)*g11) - g12**2)))))/ &
  54:      &  (2.*(-((-2 + g11)*g11) - g12**2)**1.5*((-1 + g11)**2 + g12**2)**3)
  55:    HESS(1,2)=-((-1 + g11)*g12*(12*g11**5 - 2*g11**6 + 4*g11**3*(4 + 3*g12**2 - 4*Sqrt(-((-2 + g11)*g11) - g12**2)) - &
  56:      & 4*g11*(1 - 3*g12**2 + 2*Sqrt(-((-2 + g11)*g11) - g12**2)) + 2*g11**2*(1 - 9*g12**2 + 10*Sqrt(-((-2 + g11)*g11) - g12**2)) + & 
  57:      &       g11**4*(-3*g12**2 + 4*(-6 + Sqrt(-((-2 + g11)*g11) - g12**2))) + &
  58:      &       g12**2*(1 + g12**4 + 4*Sqrt(-((-2 + g11)*g11) - g12**2) - 2*g12**2*(3 + 2*Sqrt(-((-2 + g11)*g11) - g12**2)))))/ &
  59:      &  (2.*(-((-2 + g11)*g11) - g12**2)**1.5*((-1 + g11)**2 + g12**2)**3)
  60:    HESS(2,1)=HESS(1,2)
  61:    HESS(2,2)=-((-1 + g11)*g12*(12*g11**5 - 2*g11**6 + 4*g11**3*(4 + 3*g12**2 - 4*Sqrt(-((-2 + g11)*g11) - g12**2)) -  &
  62:      &       4*g11*(1 - 3*g12**2 + 2*Sqrt(-((-2 + g11)*g11) - g12**2)) + 2*g11**2*(1 - 9*g12**2 + &
  63:      &      10*Sqrt(-((-2 + g11)*g11) - g12**2)) +  &
  64:      &       g11**4*(-3*g12**2 + 4*(-6 + Sqrt(-((-2 + g11)*g11) - g12**2))) +  &
  65:      &       g12**2*(1 + g12**4 + 4*Sqrt(-((-2 + g11)*g11) - g12**2) - 2*g12**2*(3 + 2*Sqrt(-((-2 + g11)*g11) - g12**2)))))/ &
  66:      &  (2.*(-((-2 + g11)*g11) - g12**2)**1.5*((-1 + g11)**2 + g12**2)**3) 
 66: ENDIF 67: ENDIF
 67:  68: 
 68: ! PRINT'(A,4F20.10)','POTEL,grad,hess=',POTEL,VNEW(1),HESS(1,1) 69:      PRINT'(A,4F20.10)','POTEL,grad=',POTEL,VNEW(1),VNEW(2)
 69:  70: 
 70: RETURN 71: RETURN
 71:  72: 
 72: END SUBROUTINE FUNCTIONAL 73: END SUBROUTINE FUNCTIONAL


r31240/keywords.f 2016-10-05 14:30:10.405142608 +0100 r31239/keywords.f 2016-10-05 14:30:11.165152769 +0100
 81:          LOGICAL END, SKIPBL, CLEAR, ECHO, CAT, CISTRANS, RBSYMTEST, YESNO 81:          LOGICAL END, SKIPBL, CLEAR, ECHO, CAT, CISTRANS, RBSYMTEST, YESNO
 82:          CHARACTER WORD*25, WW*20, PBC*3 82:          CHARACTER WORD*25, WW*20, PBC*3
 83:          CHARACTER(LEN=80) :: FILENAME,DUMMYS 83:          CHARACTER(LEN=80) :: FILENAME,DUMMYS
 84:          CHARACTER WORD2*25 84:          CHARACTER WORD2*25
 85:          ! COMMON /BIN/ NTYPEA,AAA,AAB,ABB,PAA,PAB,PBB,QAA,QAB,QBB,ZAA,ZAB 85:          ! COMMON /BIN/ NTYPEA,AAA,AAB,ABB,PAA,PAB,PBB,QAA,QAB,QBB,ZAA,ZAB
 86:          ! COMMON /BIN/ ZBB,R0AA,R0AB,R0BB 86:          ! COMMON /BIN/ ZBB,R0AA,R0AB,R0BB
 87:          COMMON /BIN/ EPSAB, EPSBB, SIGAB, SIGBB,NTYPEA 87:          COMMON /BIN/ EPSAB, EPSBB, SIGAB, SIGBB,NTYPEA
 88:  88: 
 89:          INTEGER NATOM, DMODE 89:          INTEGER NATOM, DMODE
 90:          DOUBLE PRECISION CHX(MXATMS), CHY(MXATMS), CHZ(MXATMS), CHMASS(MXATMS) 90:          DOUBLE PRECISION CHX(MXATMS), CHY(MXATMS), CHZ(MXATMS), CHMASS(MXATMS)
 91:          DOUBLE PRECISION DPERT 91:          DOUBLE PRECISION DPERT, INTFREEZETOLSAVE
 92:          DOUBLE PRECISION CHPMIN, CHPMAX, CHNMIN, CHNMAX 92:          DOUBLE PRECISION CHPMIN, CHPMAX, CHNMIN, CHNMAX
 93:          DOUBLE PRECISION, ALLOCATABLE :: LCONGEOM(:,:) 93:          DOUBLE PRECISION, ALLOCATABLE :: LCONGEOM(:,:)
 94:          DOUBLE PRECISION, ALLOCATABLE :: MLPMEAN(:) 94:          DOUBLE PRECISION, ALLOCATABLE :: MLPMEAN(:)
 95:          INTEGER ISEED 95:          INTEGER ISEED
 96:  96: 
 97:          DOUBLE PRECISION UNRX(NATOMS), UNRY(NATOMS), UNRZ(NATOMS) ! UNRES 97:          DOUBLE PRECISION UNRX(NATOMS), UNRY(NATOMS), UNRZ(NATOMS) ! UNRES
 98:          DOUBLE PRECISION DUMMY1(NATOMS) 98:          DOUBLE PRECISION DUMMY1(NATOMS)
 99:  99: 
100:          DOUBLE PRECISION SLENGTH, EPS, DUMMY100:          DOUBLE PRECISION SLENGTH, EPS, DUMMY
101:          INTEGER NOK, NBAD101:          INTEGER NOK, NBAD
3682: ! bf mind} (NO LONGER USED!!), and {\it x4\/} for NEB minimisations. Default values all 0.2.3682: ! bf mind} (NO LONGER USED!!), and {\it x4\/} for NEB minimisations. Default values all 0.2.
3683: ! 3683: ! 
3684:          ELSE IF (WORD.EQ.'MAXBFGS') THEN3684:          ELSE IF (WORD.EQ.'MAXBFGS') THEN
3685:             CALL READF(MAXBFGS)3685:             CALL READF(MAXBFGS)
3686:             IF (NITEMS.GT.2) CALL READF(MAXXBFGS)3686:             IF (NITEMS.GT.2) CALL READF(MAXXBFGS)
3687:             IF (NITEMS.GT.3) CALL READF(MAXMBFGS)3687:             IF (NITEMS.GT.3) CALL READF(MAXMBFGS)
3688:             IF (NITEMS.GT.4) CALL READF(MAXNEBBFGS)3688:             IF (NITEMS.GT.4) CALL READF(MAXNEBBFGS)
3689:             IF (NITEMS.GT.5) CALL READF(MAXINTBFGS)3689:             IF (NITEMS.GT.5) CALL READF(MAXINTBFGS)
3690: ! 3690: ! 
3691: ! The maximum number of constraints to use in the constrained potential.3691: ! The maximum number of constraints to use in the constrained potential.
3692: ! The deafult is 4.3692: ! The deafult is 3.
3693: ! 3693: ! 
3694:          ELSE IF (WORD.EQ.'MAXCON') THEN3694:          ELSE IF (WORD.EQ.'MAXCON') THEN
3695:             CALL READI(MAXCONUSE)3695:             CALL READI(MAXCONUSE)
3696: ! 3696: ! 
3697: ! The maximum energy increase above which mylbfgs will reject a proposed step.3697: ! The maximum energy increase above which mylbfgs will reject a proposed step.
3698: ! 3698: ! 
3699:          ELSE IF (WORD.EQ.'MAXERISE') THEN3699:          ELSE IF (WORD.EQ.'MAXERISE') THEN
3700:             CALL READF(MAXERISE)3700:             CALL READF(MAXERISE)
3701:             IF (NITEMS.GT.1) CALL READF(XMAXERISE)3701:             IF (NITEMS.GT.1) CALL READF(XMAXERISE)
3702: 3702: 


r31240/lbfgs.f90 2016-10-05 14:30:09.901135842 +0100 r31239/lbfgs.f90 2016-10-05 14:30:10.657145978 +0100
267:      NDECREASE=0267:      NDECREASE=0
268: 20   X(1:D) = X(1:D) + STP(1:D)*SEARCHSTEP(POINT,1:D)268: 20   X(1:D) = X(1:D) + STP(1:D)*SEARCHSTEP(POINT,1:D)
269: 269: 
270:      IF (PREVGRAD.LT.DNEBSWITCH) THEN270:      IF (PREVGRAD.LT.DNEBSWITCH) THEN
271:         CALL OLDNEBGRADIENT271:         CALL OLDNEBGRADIENT
272:      ELSE272:      ELSE
273:         CALL NEBGRADIENT273:         CALL NEBGRADIENT
274:      ENDIF274:      ENDIF
275: 275: 
276:      NRED = 0276:      NRED = 0
277:      DO WHILE ((ETOTAL-ENOLD).GT.NEBMAXERISE*NIMAGE)277:      DO WHILE ((ETOTAL-ENOLD).GT.NEBMAXERISE)
278:         X(1:D) = X(1:D) - STP(1:D)*SEARCHSTEP(POINT,1:D)278:         X(1:D) = X(1:D) - STP(1:D)*SEARCHSTEP(POINT,1:D)
279:         STP(1:D) = STP(1:D)/10279:         STP(1:D) = STP(1:D)/10
280:         X(1:D) = X(1:D) + STP(1:D)*SEARCHSTEP(POINT,1:D)280:         X(1:D) = X(1:D) + STP(1:D)*SEARCHSTEP(POINT,1:D)
281:         NRED = NRED + 1281:         NRED = NRED + 1
282:         IF (PREVGRAD.LT.DNEBSWITCH) THEN282:         IF (PREVGRAD.LT.DNEBSWITCH) THEN
283:            CALL OLDNEBGRADIENT283:            CALL OLDNEBGRADIENT
284:         ELSE284:         ELSE
285:            CALL NEBGRADIENT285:            CALL NEBGRADIENT
286:         END IF286:         END IF
287:         IF (NRED .EQ. 10) THEN287:         IF (NRED .EQ. 10) THEN


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0