hdiff output

r29836/MKtrap.f 2016-03-16 18:33:10.858827386 +0000 r29835/MKtrap.f 2016-03-16 18:33:11.258831496 +0000
  1:       SUBROUTINE MKTRAP(N,X,VNEW,ENERGY)  1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/GMIN/source/MKtrap.f' in revision 29835
  2:       IMPLICIT NONE 
  3:       INTEGER N,I,J,J1,J2,J3,J4,J5,J6 
  4:       DOUBLE PRECISION V0,DELTA,OMEGA,M,B,A,VW,C1,SUM,DIST, 
  5:      & SUM2_11,SUM2_12,SUM2_13,SUM2_22,SUM2_23,SUM2_33,VNEW(3*N),ENERGY,SUM1_1,SUM1_2,SUM1_3 
  6:  
  7:       PARAMETER(OMEGA=0.37D-6) 
  8:       PARAMETER(M=1.6D4) 
  9:       PARAMETER(V0=0.33D-6) 
 10: !     PARAMETER(DELTA=0.001575D0) ! weak wall 
 11:       PARAMETER(DELTA=0.004725D0) ! strong wall 
 12:       PARAMETER(B=0.0139D-4) 
 13:       PARAMETER(A=5.29D-6) ! 5.29 micrometres 
 14:  
 15:       DOUBLE PRECISION X(3*N) 
 16:       DOUBLE PRECISION R(N,N),R3(N,N),V(N) 
 17:       DOUBLE PRECISION V1(N,3) 
 18:       DOUBLE PRECISION V2(N,9) 
 19:       LOGICAL SSTEST 
 20:  
 21:       VW=V0*DELTA 
 22:  
 23: C     N IS THE TOTAL NUMBER OF ATOMS. 
 24: C     V0,VW,OMEGA,M,B ARE PARAMETERS CHARACTERIZING THE POTENTIAL. 
 25: C     A IS THE LENGTH UNIT. 
 26: C     X(3*N) CONTAIN THE COORDINATES OF THE ATOMS IN THE 3 SPATIAL DIRECTIONS X,Y,Z. 
 27: C     R(N,N) IS THE MATRIX WHOSE IJ-TH ELEMENT IS 1/(DISTANCE BETWEEN ITH AND JTH ATOMS)  
 28: C     R3(N,N) IS THE MATRIX WHOSE IJ-TH ELEMENT IS 1/(DISTANCE BETWEEN ITH AND JTH ATOMS)**3  
 29: C     R5(N,N) IS THE MATRIX WHOSE IJ-TH ELEMENT IS 1/(DISTANCE BETWEEN ITH AND JTH ATOMS)**5  
 30: C     V(I) IS THE POTENTIAL ENERGY OF THE ITH ATOM. 
 31: C     V1(I,1) IS \PARTIAL_X V(I). 
 32: C     V1(I,2) IS \PARTIAL_Y V(I). 
 33: C     V1(I,3) IS \PARTIAL_Z V(I). 
 34: C     V2(I,1) IS \PARTIAL_XX V(I). 
 35: C     V2(I,2) IS \PARTIAL_XY V(I). 
 36: C     V2(I,3) IS \PARTIAL_XZ V(I). 
 37: C     V2(I,4) IS \PARTIAL_YX V(I). 
 38: C     V2(I,5) IS \PARTIAL_YY V(I). 
 39: C     V2(I,6) IS \PARTIAL_YZ V(I). 
 40: C     V2(I,7) IS \PARTIAL_ZX V(I). 
 41: C     V2(I,8) IS \PARTIAL_ZY V(I). 
 42: C     V2(I,9) IS \PARTIAL_ZZ V(I). 
 43:  
 44:       C1=0.5*(OMEGA-M*OMEGA**2-V0) 
 45:  
 46: C     COMPUTING THE DISTANCE MATRIX. 
 47:       CALL RMATMK(N,X,R,R3) 
 48:  
 49:       ENERGY=0.0D0 
 50:       DO I=1,N 
 51:  
 52: c     THE POTENTIAL.  
 53:        SUM=0.0D0 
 54:        DO J=I+1,I+N-1 
 55:         IF(J.GT.N)THEN 
 56:          J1=MOD(J,N) 
 57:         ELSE 
 58:          J1=J 
 59:         ENDIF 
 60:         SUM=SUM+R(I,J1) 
 61:        ENDDO  
 62:        V(I)=V0*X(3*(I-1)+3)**2 
 63:      & +C1*(X(3*(I-1)+1)**2+X(3*(I-1)+2)**2) 
 64:      & +VW*(X(3*(I-1)+1)**2-X(3*(I-1)+2)**2) 
 65:      & +B*SUM 
 66:         ENERGY=ENERGY+V(I) 
 67:  
 68: c     THE FIRST DERIVATIVES OF THE POTENTIAL.  
 69:        SUM1_1=0.0D0 
 70:        SUM1_2=0.0D0 
 71:        SUM1_3=0.0D0 
 72:        DO J=I+1,I+N-1 
 73:         IF(J.GT.N)THEN 
 74:          J1=MOD(J,N) 
 75:         ELSE 
 76:          J1=J 
 77:         ENDIF 
 78:         SUM1_1=SUM1_1+(X(3*(I-1)+1)-X(3*(J1-1)+1))*R3(I,J1) 
 79:         SUM1_2=SUM1_2+(X(3*(I-1)+2)-X(3*(J1-1)+2))*R3(I,J1) 
 80:         SUM1_3=SUM1_3+(X(3*(I-1)+3)-X(3*(J1-1)+3))*R3(I,J1) 
 81:        ENDDO  
 82: !      V1(I,1)=2*(C1+VW)*X(3*(I-1)+1)-B*SUM1_1 
 83: !      V1(I,2)=2*(C1-VW)*X(3*(I-1)+2)-B*SUM1_2 
 84: !      V1(I,3)=2*V0*X(3*(I-1)+3)-B*SUM1_3 
 85:        VNEW(3*(I-1)+1)=2*(C1+VW)*X(3*(I-1)+1)-B*SUM1_1 
 86:        VNEW(3*(I-1)+2)=2*(C1-VW)*X(3*(I-1)+2)-B*SUM1_2 
 87:        VNEW(3*(I-1)+3)=2*V0*X(3*(I-1)+3)-B*SUM1_3 
 88:       ENDDO  
 89:  
 90:       ENERGY=ENERGY/2.0D0 ! energy was out by a factor of two DJW 25/1/16 
 91:    
 92:       RETURN 
 93:       END 
 94:        
 95:       SUBROUTINE RMATMK(N,X,R,R3) 
 96:       IMPLICIT NONE 
 97:       INTEGER N,J1,J2 
 98:       DOUBLE PRECISION X(3*N),DISTSQ 
 99:       DOUBLE PRECISION R(N,N),R3(N,N) 
100:       DO J1=1,N 
101:          R(J1,J1)=0.0D0 
102:          DO J2=J1+1,N 
103:           DISTSQ=(X(3*(J1-1)+1)-X(3*(J2-1)+1))**2 
104:      &        +(X(3*(J1-1)+2)-X(3*(J2-1)+2))**2 
105:      &        +(X(3*(J1-1)+3)-X(3*(J2-1)+3))**2 
106:           R(J1,J2)=1.0D0/DISTSQ**(0.5D0) 
107:           R3(J1,J2)=1.0D0/DISTSQ**(1.5D0) 
108:           R(J2,J1)=R(J1,J2) 
109:           R3(J2,J1)=R3(J1,J2) 
110:          ENDDO 
111:       ENDDO 
112:       RETURN 
113:       END 
114:  


r29836/mymylbfgs.f 2016-03-16 18:33:11.050829360 +0000 r29835/mymylbfgs.f 2016-03-16 18:33:11.450833473 +0000
432:          STP=MIN(1.0D0/GNORM,GNORM)432:          STP=MIN(1.0D0/GNORM,GNORM)
433:       ELSE 433:       ELSE 
434:          BOUND=ITER434:          BOUND=ITER
435:          IF (ITER.GT.M) BOUND=M435:          IF (ITER.GT.M) BOUND=M
436:          YS= DDOT(N,W(IYPT+NPT+1),1,W(ISPT+NPT+1),1)436:          YS= DDOT(N,W(IYPT+NPT+1),1,W(ISPT+NPT+1),1)
437: !437: !
438: !  Update estimate of diagonal inverse Hessian elements438: !  Update estimate of diagonal inverse Hessian elements
439: !439: !
440:          IF (.NOT.DIAGCO) THEN440:          IF (.NOT.DIAGCO) THEN
441:             YY= DDOT(N,W(IYPT+NPT+1),1,W(IYPT+NPT+1),1)441:             YY= DDOT(N,W(IYPT+NPT+1),1,W(IYPT+NPT+1),1)
442:             IF (ABS(YY).LT.1.0D-50) THEN442:             IF (ABS(YY).LT.1.0D-30) THEN
443:                YY=SIGN(1.0D-50,YY)443:                YY=SIGN(1.0D-30,YY)
444:                IF (DEBUG) WRITE(MYUNIT,'(A,G20.10,A)') 'WARNING, resetting YY to ',YY,' in mymylbfgs'444:                IF (DEBUG) WRITE(MYUNIT,'(A,G20.10,A)') 'WARNING, resetting YY to ',YY,' in mymylbfgs'
445:             ENDIF445:             ENDIF
446:             IF (ABS(YS).LT.1.0D-50) THEN446:             IF (ABS(YS).LT.1.0D-30) THEN
447:                YS=SIGN(1.0D-50,YS)447:                YS=SIGN(1.0D-30,YS)
448:                IF (DEBUG) WRITE(MYUNIT,'(A,G20.10,A)') 'WARNING, resetting YS to ',YS,' in mymylbfgs'448:                IF (DEBUG) WRITE(MYUNIT,'(A,G20.10,A)') 'WARNING, resetting YS to ',YS,' in mymylbfgs'
449:             ENDIF449:             ENDIF
450: !           WRITE(MYUNIT,'(A,2G20.10)') 'YS/YY=',YS/YY450: !           WRITE(MYUNIT,'(A,2G20.10)') 'YS/YY=',YS/YY
451:             DO J1=1,N451:             DO J1=1,N
452: !              DIAG(J1)= ABS(YS/YY) ! messes up after step reversals!452: !              DIAG(J1)= ABS(YS/YY) ! messes up after step reversals!
453:                DIAG(J1)= YS/YY453:                DIAG(J1)= YS/YY
454:             ENDDO454:             ENDDO
455:          ELSE455:          ELSE
456:             WRITE(MYUNIT,'(A)') 'using estimate of the inverse diagonal elements'456:             WRITE(MYUNIT,'(A)') 'using estimate of the inverse diagonal elements'
457:             DO J1=1,N457:             DO J1=1,N


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0