hdiff output

r32775/path.f 2017-06-12 15:30:13.242347287 +0100 r32774/path.f 2017-06-12 15:30:13.474350335 +0100
124:          QINIT(J1)=Q(J1)124:          QINIT(J1)=Q(J1)
125:       ENDDO125:       ENDDO
126: !     IF (DEBUG) PRINT*,'ts points in path:'126: !     IF (DEBUG) PRINT*,'ts points in path:'
127: !     IF (DEBUG) WRITE(*,'(3G20.10)') (Q(J1),J1=1,NOPT)127: !     IF (DEBUG) WRITE(*,'(3G20.10)') (Q(J1),J1=1,NOPT)
128: 128: 
129:       CALL MYCPU_TIME(TIME0,.FALSE.)129:       CALL MYCPU_TIME(TIME0,.FALSE.)
130: 130: 
131: !      Do the '+ side' stepoff and minimisation first.131: !      Do the '+ side' stepoff and minimisation first.
132: 132: 
133:       ! Select which method will be used to compute the path133:       ! Select which method will be used to compute the path
134:       PLUSSIDET=.TRUE. 
135:       IF (HYBRIDMINT) THEN134:       IF (HYBRIDMINT) THEN
136: !135: !
137: ! We must have the ts energy somewhere already. Should;t really need the call to potential.136: ! We must have the ts energy somewhere already. Should;t really need the call to potential.
138: !137: !
139:          CALL POTENTIAL(Q,ETS,VNEW,.TRUE.,.FALSE.,RMS,.FALSE.,.FALSE.)138:          CALL POTENTIAL(Q,ETS,VNEW,.TRUE.,.FALSE.,RMS,.FALSE.,.FALSE.)
140:          ENERGY=ETS139:          ENERGY=ETS
141:          POTCALL=.TRUE.140:          POTCALL=.TRUE.
142:          CALL DUMPP(Q,ENERGY)141:          CALL DUMPP(Q,ENERGY)
143:          CALL HYBRIDMIN(HMNSTEPS,Q,ENERGY,VNEW,MFLAG,RMS,EVTS,EVALMAX,VECS,ITDONE,POTCALL,PTEST)142:          CALL HYBRIDMIN(HMNSTEPS,Q,ENERGY,VNEW,MFLAG,RMS,EVTS,EVALMAX,VECS,ITDONE,POTCALL,PTEST)
144:          NSTEPPLUS=ITDONE143:          NSTEPPLUS=ITDONE
177:          IF (BFGSMINT) THEN176:          IF (BFGSMINT) THEN
178:             IF (UNRST.OR.(CHRMMT.AND.INTMINT)) THEN177:             IF (UNRST.OR.(CHRMMT.AND.INTMINT)) THEN
179:                 CALL MYLBFGS(NINTS,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,178:                 CALL MYLBFGS(NINTS,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,
180:      1                       .TRUE.,ITDONE,PTEST,VNEW,.FALSE.,.FALSE.)179:      1                       .TRUE.,ITDONE,PTEST,VNEW,.FALSE.,.FALSE.)
181:             ELSE180:             ELSE
182: !               sn402: to perform the actual minimisation.181: !               sn402: to perform the actual minimisation.
183:                 IF (CUDAT) THEN182:                 IF (CUDAT) THEN
184:                     CALL CUDA_LBFGS_WRAPPER(NOPT,MUPDATE,Q,MFLAG,ENERGY,RMS,BFGSSTEPS,ITDONE,.FALSE.)183:                     CALL CUDA_LBFGS_WRAPPER(NOPT,MUPDATE,Q,MFLAG,ENERGY,RMS,BFGSSTEPS,ITDONE,.FALSE.)
185:                     WRITE(*,'(A,G25.17)') ' path> Final energy is ',ENERGY184:                     WRITE(*,'(A,G25.17)') ' path> Final energy is ',ENERGY
186:                 ELSE185:                 ELSE
187: !                   PRINT '(A)','path> calling MYBFGSTS + side' 
188:                     CALL MYLBFGS(NOPT,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,186:                     CALL MYLBFGS(NOPT,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,
189:      1                       .TRUE.,ITDONE,PTEST,VNEW,.FALSE.,.FALSE.)187:      1                       .TRUE.,ITDONE,PTEST,VNEW,.FALSE.,.FALSE.)
190:                 END IF188:                 END IF
191:             ENDIF189:             ENDIF
192:             NSTEPPLUS=ITDONE+1190:             NSTEPPLUS=ITDONE+1
193:          ELSE IF (BBRSDMT) THEN191:          ELSE IF (BBRSDMT) THEN
194:             CALL BBRSDM(Q,MFLAG,ITDONE,ENERGY,RMS,.FALSE.,VNEW,PTEST)192:             CALL BBRSDM(Q,MFLAG,ITDONE,ENERGY,RMS,.FALSE.,VNEW,PTEST)
195:             NSTEPPLUS=ITDONE+1193:             NSTEPPLUS=ITDONE+1
196: C194: C
197: C DAE to switch to BFGS after NSTEPS sd195: C DAE to switch to BFGS after NSTEPS sd
355:                   CALL MYLBFGS(NINTS,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,353:                   CALL MYLBFGS(NINTS,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,
356:      1                         .TRUE.,ITDONE,PTEST,VNEW,.FALSE.,.FALSE.)354:      1                         .TRUE.,ITDONE,PTEST,VNEW,.FALSE.,.FALSE.)
357:                ELSE355:                ELSE
358:                   CALL MYLBFGS(NOPT,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,356:                   CALL MYLBFGS(NOPT,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,
359:      1                         .TRUE.,ITDONE,PTEST,VNEW,.FALSE.,.FALSE.)357:      1                         .TRUE.,ITDONE,PTEST,VNEW,.FALSE.,.FALSE.)
360:                ENDIF358:                ENDIF
361:                NSTEPPLUS=NSTEPPLUS+ITDONE359:                NSTEPPLUS=NSTEPPLUS+ITDONE
362:             ENDIF360:             ENDIF
363:          ENDIF361:          ENDIF
364:       ENDIF362:       ENDIF
365:       PLUSSIDET=.FALSE. 
366: 363: 
367:       CALL MYCPU_TIME(TIME,.FALSE.)364:       CALL MYCPU_TIME(TIME,.FALSE.)
368:       IF (MFLAG) THEN365:       IF (MFLAG) THEN
369:          WRITE(*,'(A,I20,A,G20.10,2X,A,F11.2)') ' Plus  side of path:    ',NSTEPPLUS,' steps. Energy=',ENERGY,' time=',TIME-TIME0366:          WRITE(*,'(A,I20,A,G20.10,2X,A,F11.2)') ' Plus  side of path:    ',NSTEPPLUS,' steps. Energy=',ENERGY,' time=',TIME-TIME0
370:          CALL FLUSH(6)367:          CALL FLUSH(6)
371:       ELSE368:       ELSE
372:          WRITE(*,'(A,I20,A)') ' Plus  side of path failed to converge in ',NSTEPPLUS,' steps'369:          WRITE(*,'(A,I20,A)') ' Plus  side of path failed to converge in ',NSTEPPLUS,' steps'
373: c        STOP370: c        STOP
374:          PATHFAILT=.TRUE.371:          PATHFAILT=.TRUE.
375:          BFGSTST=BFGSTSTSAVE372:          BFGSTST=BFGSTSTSAVE
422:       ENDIF419:       ENDIF
423: C420: C
424: C  Minus side. 421: C  Minus side. 
425: C422: C
426: !     This time we skip the compute-step stage, and just use the negative of the step that423: !     This time we skip the compute-step stage, and just use the negative of the step that
427: !     was computed for the + side of the path. (Except for UNRES which is different)424: !     was computed for the + side of the path. (Except for UNRES which is different)
428:       IF (VASP) THEN425:       IF (VASP) THEN
429:          CALL SYSTEM(' cp WAVECAR.trans WAVECAR')426:          CALL SYSTEM(' cp WAVECAR.trans WAVECAR')
430:       ENDIF 427:       ENDIF 
431: 428: 
432:       MINUSSIDET=.TRUE. 
433:  
434:       IVEC=-1429:       IVEC=-1
435:       IF (REDOPATH1) THEN430:       IF (REDOPATH1) THEN
436:          REDOPATH1=.FALSE.431:          REDOPATH1=.FALSE.
437:          REDOPATH2=.TRUE.432:          REDOPATH2=.TRUE.
438:       ELSEIF (REDOPATH2) THEN433:       ELSEIF (REDOPATH2) THEN
439:          REDOPATH1=.TRUE.434:          REDOPATH1=.TRUE.
440:          REDOPATH2=.FALSE.435:          REDOPATH2=.FALSE.
441:       ENDIF436:       ENDIF
442:       DO J1=1,NOPT437:       DO J1=1,NOPT
443:          QPLUS(J1)=Q(J1)438:          QPLUS(J1)=Q(J1)
500:          ENDIF495:          ENDIF
501:       ELSE IF (BFGSMINT) THEN496:       ELSE IF (BFGSMINT) THEN
502:          IF (UNRST.OR.(CHRMMT.AND.INTMINT)) THEN497:          IF (UNRST.OR.(CHRMMT.AND.INTMINT)) THEN
503:             CALL MYLBFGS(NINTS,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,498:             CALL MYLBFGS(NINTS,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,
504:      1                   .TRUE.,ITDONE,PTEST,VNEW,.FALSE.,.FALSE.)499:      1                   .TRUE.,ITDONE,PTEST,VNEW,.FALSE.,.FALSE.)
505:          ELSE500:          ELSE
506:             IF (CUDAT) THEN501:             IF (CUDAT) THEN
507:                 CALL CUDA_LBFGS_WRAPPER(NOPT,MUPDATE,Q,MFLAG,ENERGY,RMS,BFGSSTEPS,ITDONE,.FALSE.)502:                 CALL CUDA_LBFGS_WRAPPER(NOPT,MUPDATE,Q,MFLAG,ENERGY,RMS,BFGSSTEPS,ITDONE,.FALSE.)
508:                 WRITE(*,'(A,G25.17)') ' path> Final energy is ',ENERGY503:                 WRITE(*,'(A,G25.17)') ' path> Final energy is ',ENERGY
509:             ELSE504:             ELSE
510: !                   PRINT '(A)','path> calling MYBFGSTS - side' 
511:                 CALL MYLBFGS(NOPT,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,505:                 CALL MYLBFGS(NOPT,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,
512:      1                   .TRUE.,ITDONE,PTEST,VNEW,.FALSE.,.FALSE.)506:      1                   .TRUE.,ITDONE,PTEST,VNEW,.FALSE.,.FALSE.)
513:             END IF507:             END IF
514:          ENDIF508:          ENDIF
515:          NSTEPMINUS=ITDONE+1509:          NSTEPMINUS=ITDONE+1
516:       ELSE IF (BBRSDMT) THEN510:       ELSE IF (BBRSDMT) THEN
517:          CALL BBRSDM(Q,MFLAG,ITDONE,ENERGY,RMS,.FALSE.,VNEW,PTEST)511:          CALL BBRSDM(Q,MFLAG,ITDONE,ENERGY,RMS,.FALSE.,VNEW,PTEST)
518:          NSTEPMINUS=ITDONE+1512:          NSTEPMINUS=ITDONE+1
519: C513: C
520: C DAE to switch to BFGS after NSTEPS sd514: C DAE to switch to BFGS after NSTEPS sd
583:             IF (CHRMMT.AND.INTMINT) THEN577:             IF (CHRMMT.AND.INTMINT) THEN
584:                CALL MYLBFGS(NINTS,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,578:                CALL MYLBFGS(NINTS,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,
585:      1                      .TRUE.,ITDONE,PTEST,VNEW,.FALSE.,.FALSE.)579:      1                      .TRUE.,ITDONE,PTEST,VNEW,.FALSE.,.FALSE.)
586:             ELSE580:             ELSE
587:                CALL MYLBFGS(NOPT,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,581:                CALL MYLBFGS(NOPT,MUPDATE,Q,.FALSE.,MFLAG,ENERGY,RMS2,EREAL,RMS,BFGSSTEPS,
588:      1                      .TRUE.,ITDONE,PTEST,VNEW,.FALSE.,.FALSE.)582:      1                      .TRUE.,ITDONE,PTEST,VNEW,.FALSE.,.FALSE.)
589:             ENDIF583:             ENDIF
590:             NSTEPMINUS=NSTEPMINUS+ITDONE584:             NSTEPMINUS=NSTEPMINUS+ITDONE
591:          ENDIF585:          ENDIF
592:       ENDIF586:       ENDIF
593:       MINUSSIDET=.FALSE. 
594: 587: 
595:       CALL MYCPU_TIME(TIME,.FALSE.)588:       CALL MYCPU_TIME(TIME,.FALSE.)
596: 589: 
597:       IF (MFLAG) THEN590:       IF (MFLAG) THEN
598:          WRITE(*,'(A,I20,A,G20.10,2X,A,F11.2)') ' Minus side of path:    ',NSTEPMINUS,' steps. Energy=',ENERGY,' time=',TIME-TIME0591:          WRITE(*,'(A,I20,A,G20.10,2X,A,F11.2)') ' Minus side of path:    ',NSTEPMINUS,' steps. Energy=',ENERGY,' time=',TIME-TIME0
599:          CALL FLUSH(6)592:          CALL FLUSH(6)
600:       ELSE593:       ELSE
601:          WRITE(*,'(A,I20,A)') ' Minus side of path failed to converge in ',NSTEPMINUS,' steps'594:          WRITE(*,'(A,I20,A)') ' Minus side of path failed to converge in ',NSTEPMINUS,' steps'
602: c        STOP595: c        STOP
603:          PATHFAILT=.TRUE.596:          PATHFAILT=.TRUE.


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0