hdiff output

r30430/geopt.f 2016-05-11 16:30:11.031024896 +0100 r30429/geopt.f 2016-05-11 16:30:12.291041434 +0100
118:             KNOWG=.FALSE.118:             KNOWG=.FALSE.
119:             IF (INTWRAP_USEINTERNALS()) THEN119:             IF (INTWRAP_USEINTERNALS()) THEN
120:                CALL MYLBFGS(NINTS,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,120:                CALL MYLBFGS(NINTS,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,
121:      1                      .TRUE.,ITDONE,.TRUE.,VNEW,.FALSE.,.FALSE.)121:      1                      .TRUE.,ITDONE,.TRUE.,VNEW,.FALSE.,.FALSE.)
122:             ELSE122:             ELSE
123:                CALL MYLBFGS(NOPT,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,123:                CALL MYLBFGS(NOPT,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,
124:      1                      .TRUE.,ITDONE,.TRUE.,VNEW,.FALSE.,.FALSE.)124:      1                      .TRUE.,ITDONE,.TRUE.,VNEW,.FALSE.,.FALSE.)
125:             ENDIF125:             ENDIF
126:             NSTEP=NSTEP+ITDONE126:             NSTEP=NSTEP+ITDONE
127:          ENDIF127:          ENDIF
128:       ELSE IF ((BFGSMINT.AND.(.NOT.BFGSTST).AND.(.NOT.BFGSSTEP).AND. 128:       ELSE IF ((BFGSMINT.AND.(.NOT.BFGSTST).AND.(.NOT.BFGSSTEP).AND.(.NOT.(INR.EQ.2))).OR.(BFGSTST.AND.(HINDEX.EQ.0))) THEN
129:      &                    (.NOT.(INR.EQ.1)).AND.(.NOT.(INR.EQ.2))).OR.(BFGSTST.AND.(HINDEX.EQ.0))) THEN 
130:          IF (UNRST.OR.INTWRAP_USEINTERNALS()) THEN129:          IF (UNRST.OR.INTWRAP_USEINTERNALS()) THEN
131:             CALL MYLBFGS(NINTS,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,130:             CALL MYLBFGS(NINTS,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,
132:      1                   .TRUE.,ITDONE,.TRUE.,VNEW,.FALSE.,.FALSE.)131:      1                   .TRUE.,ITDONE,.TRUE.,VNEW,.FALSE.,.FALSE.)
133:          ELSE132:          ELSE
134:             IF (CUDAT) THEN133:             IF (CUDAT) THEN
135:                CALL CUDA_LBFGS_WRAPPER(NOPT,MUPDATE,Q,MFLAG,ENERGY,RMS,BFGSSTEPS,ITDONE,.FALSE.)134:                CALL CUDA_LBFGS_WRAPPER(NOPT,MUPDATE,Q,MFLAG,ENERGY,RMS,BFGSSTEPS,ITDONE,.FALSE.)
136:             ELSE135:             ELSE
137:                CALL MYLBFGS(NOPT,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,136:                CALL MYLBFGS(NOPT,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,
138:      1                   .TRUE.,ITDONE,.TRUE.,VNEW,.FALSE.,.FALSE.)137:      1                   .TRUE.,ITDONE,.TRUE.,VNEW,.FALSE.,.FALSE.)
139:             END IF138:             END IF
243:           CALL VECNORM(VECS,NOPT)242:           CALL VECNORM(VECS,NOPT)
244:           SOVER=0.0d0243:           SOVER=0.0d0
245:           CALL BEIG(ITDONE,Q,ENERGY,VECS,EVALMIN,J1,SOVER,.TRUE.,MFLAG)244:           CALL BEIG(ITDONE,Q,ENERGY,VECS,EVALMIN,J1,SOVER,.TRUE.,MFLAG)
246:           IF (DUMPV) THEN245:           IF (DUMPV) THEN
247:             REWIND(44)246:             REWIND(44)
248:             WRITE(44,'(E20.10)') EVALMIN247:             WRITE(44,'(E20.10)') EVALMIN
249:             WRITE(44,'(3F20.10)') (VECS(J1),J1=1,NOPT)248:             WRITE(44,'(3F20.10)') (VECS(J1),J1=1,NOPT)
250:             CALL FLUSH(44)249:             CALL FLUSH(44)
251:           ENDIF250:           ENDIF
252:           251:           
253:       ELSE IF ((BSMIN.OR.RKMIN).AND.(.NOT.BFGSTST).AND.(.NOT.BFGSSTEP).AND.252:       ELSE IF ((BSMIN.OR.RKMIN).AND.(.NOT.BFGSTST).AND.(.NOT.BFGSSTEP).AND.(.NOT.(INR.EQ.2))) THEN
254:      &          (.NOT.(INR.EQ.1)).AND.(.NOT.(INR.EQ.2))) THEN 
255:          CALL ODESD(NSTEPS,Q,MFLAG,ITDONE,.TRUE.)253:          CALL ODESD(NSTEPS,Q,MFLAG,ITDONE,.TRUE.)
256:          IF (.NOT.MFLAG) THEN254:          IF (.NOT.MFLAG) THEN
257:             BSMIN=.FALSE.255:             BSMIN=.FALSE.
258:             RKMIN=.FALSE.256:             RKMIN=.FALSE.
259:             BFGSMINT=.TRUE.257:             BFGSMINT=.TRUE.
260:             KNOWE=.FALSE.258:             KNOWE=.FALSE.
261:             KNOWG=.FALSE.259:             KNOWG=.FALSE.
262:             CALL MYLBFGS(NOPT,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,260:             CALL MYLBFGS(NOPT,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,
263:      1                   .TRUE.,ITDONE,.TRUE.,VNEW,.FALSE.,.FALSE.)261:      1                   .TRUE.,ITDONE,.TRUE.,VNEW,.FALSE.,.FALSE.)
264:          ENDIF262:          ENDIF
1384:          IF (GRADSQ) WRITE(*,'(A,4F20.10)') ' g^2, RMS force and real energy and RMS=',ENERGY,RMS2,EREAL,RMS1382:          IF (GRADSQ) WRITE(*,'(A,4F20.10)') ' g^2, RMS force and real energy and RMS=',ENERGY,RMS2,EREAL,RMS
1385:          PRINT*1383:          PRINT*
1386:          IF (BFGSMINT.OR.(BFGSTST.AND.(HINDEX.EQ.0))) THEN1384:          IF (BFGSMINT.OR.(BFGSTST.AND.(HINDEX.EQ.0))) THEN
1387:               PRINT*,ITDONE,' steps completed without convergence to required tolerance'1385:               PRINT*,ITDONE,' steps completed without convergence to required tolerance'
1388:          ELSE1386:          ELSE
1389:               PRINT*,NSTEPS,' steps completed without convergence to required tolerance'1387:               PRINT*,NSTEPS,' steps completed without convergence to required tolerance'
1390:          ENDIF1388:          ENDIF
1391:          PRINT*1389:          PRINT*
1392:          CALL FLUSH(6)1390:          CALL FLUSH(6)
1393: !        STOP1391: !        STOP
1394:          IF (.NOT.MULTIJOBT) CALL EXIT(0)1392:          CALL EXIT(0)
1395:       ENDIF1393:       ENDIF
1396:       CALL FLUSH(6)1394:       CALL FLUSH(6)
1397:       IF (DUMPDATAT) THEN 1395:       IF (DUMPDATAT) THEN 
1398: !        IF (EWARN.AND.MULTIJOBT) MFLAG=.FALSE.1396: !        IF (EWARN.AND.MULTIJOBT) MFLAG=.FALSE.
1399:          IF (MFLAG) THEN1397:          IF (MFLAG) THEN
1400: !1398: !
1401: ! min.data.info file is now opened on unit 881 in keyword.f1399: ! min.data.info file is now opened on unit 881 in keyword.f
1402: !1400: !
1403: !           OPEN(UNIT=100,FILE='min.data.info',STATUS='UNKNOWN')1401: !           OPEN(UNIT=100,FILE='min.data.info',STATUS='UNKNOWN')
1404:             ! sn402: need Cartesian coords to calculate the inertia tensor1402:             ! sn402: need Cartesian coords to calculate the inertia tensor


r30430/OPTIM.F 2016-05-11 16:30:10.843022350 +0100 r30429/OPTIM.F 2016-05-11 16:30:11.223027500 +0100
763:          WRITE(*,'(a,2(g20.10,a))') ' OPTIM> Final energy  =',  EFINAL,' RMS force=',RMSfinal763:          WRITE(*,'(a,2(g20.10,a))') ' OPTIM> Final energy  =',  EFINAL,' RMS force=',RMSfinal
764:          IF (NEWNEBT.OR.GROWSTRINGT) THEN764:          IF (NEWNEBT.OR.GROWSTRINGT) THEN
765:               CALL NEWNEB(.FALSE.,DCOORDS,EINITIAL,Q,EFINAL,FIN,.TRUE.)765:               CALL NEWNEB(.FALSE.,DCOORDS,EINITIAL,Q,EFINAL,FIN,.TRUE.)
766:          ELSE766:          ELSE
767:               CALL OLDNEB(.TRUE.,.TRUE.,ENERGY,MAXNEBBFGS,.FALSE.,Q)767:               CALL OLDNEB(.TRUE.,.TRUE.,ENERGY,MAXNEBBFGS,.FALSE.,Q)
768:          ENDIF768:          ENDIF
769:       ELSE IF (PATHT) THEN769:       ELSE IF (PATHT) THEN
770: !770: !
771: ! New block to do ts search first, then do the path without needed BFGSSTEP771: ! New block to do ts search first, then do the path without needed BFGSSTEP
772: !772: !
773:          IF ((BFGSTST.OR.(INR.EQ.2).OR.(INR.EQ.1)).AND.(.NOT.BFGSSTEP)) THEN773:          IF ((BFGSTST.OR.(INR.EQ.2)).AND.(.NOT.BFGSSTEP)) THEN
774:             IF (RIGIDINIT) THEN774:             IF (RIGIDINIT) THEN
775:                ATOMRIGIDCOORDT = .FALSE.775:                ATOMRIGIDCOORDT = .FALSE.
776:                CALL TRANSFORMCTORIGID (Q, XRIGIDCOORDS)776:                CALL TRANSFORMCTORIGID (Q, XRIGIDCOORDS)
777:                CALL GEOPT(FNAMEF,EFNAME,XRIGIDCOORDS,VECS,MFLAG,ENERGY,EVALMIN,VNEW)777:                CALL GEOPT(FNAMEF,EFNAME,XRIGIDCOORDS,VECS,MFLAG,ENERGY,EVALMIN,VNEW)
778:                ATOMRIGIDCOORDT = .TRUE.778:                ATOMRIGIDCOORDT = .TRUE.
779:                CALL TRANSFORMRIGIDTOC (1, NRIGIDBODY, Q, XRIGIDCOORDS)779:                CALL TRANSFORMRIGIDTOC (1, NRIGIDBODY, Q, XRIGIDCOORDS)
780:             ELSE780:             ELSE
781:                CALL GEOPT(FNAMEF,EFNAME,Q,VECS,MFLAG,ENERGY,EVALMIN,VNEW)781:                CALL GEOPT(FNAMEF,EFNAME,Q,VECS,MFLAG,ENERGY,EVALMIN,VNEW)
782:             ENDIF782:             ENDIF
783:             IF (.NOT.MFLAG) GOTO 765 ! skip path for failed ts search! 
784:             POTCALL=.FALSE.783:             POTCALL=.FALSE.
785:             KNOWVECS=.TRUE.784:             KNOWVECS=.TRUE.
786: !785: !
787: ! If no other minimisation condition is set then use eigenvector-following for the786: ! If no other minimisation condition is set then use eigenvector-following for the
788: ! paths via INR=0.787: ! paths via INR=0.
789: ! To use Page-McIver quadratic SD use the PMPATH keyword with argument 6 (default) or788: ! To use Page-McIver quadratic SD use the PMPATH keyword with argument 6 (default) or
790: ! 7 (can stop at a saddle point). 789: ! 7 (can stop at a saddle point). 
791: !790: !
792:             IF (INR.EQ.2) INR=0791:             IF (INR.EQ.2) INR=0
793:             IF (INR.EQ.1) INR=0 
794:             IF (PMPATHT) INR=PMPATHINR792:             IF (PMPATHT) INR=PMPATHINR
795:          ELSE793:          ELSE
796: !794: !
797: ! Initialise VECS in case this doesn't happen elsewhere795: ! Initialise VECS in case this doesn't happen elsewhere
798: !796: !
799:             IF (UNRST) THEN797:             IF (UNRST) THEN
800:                DO J1=1,NINTS798:                DO J1=1,NINTS
801:                   VECS(J1)=DPRAND()*2-1.0D0799:                   VECS(J1)=DPRAND()*2-1.0D0
802:                ENDDO800:                ENDDO
803:                CALL VECNORM(VECS,NINTS)801:                CALL VECNORM(VECS,NINTS)


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0