hdiff output

r30181/output.f90 2016-03-18 18:30:06.999863621 +0000 r30180/output.f90 2016-03-18 18:30:07.195865624 +0000
309: DOUBLE PRECISION :: DPRAND309: DOUBLE PRECISION :: DPRAND
310: LOGICAL :: KNOWE, KNOWG, KNOWH ! JMC310: LOGICAL :: KNOWE, KNOWG, KNOWH ! JMC
311: COMMON /KNOWN/ KNOWE, KNOWG, KNOWH ! JMC311: COMMON /KNOWN/ KNOWE, KNOWG, KNOWH ! JMC
312: CHARACTER(LEN=256) :: FILENAME, METHSTR312: CHARACTER(LEN=256) :: FILENAME, METHSTR
313: LOGICAL :: TMPINTNEWT, FAILED313: LOGICAL :: TMPINTNEWT, FAILED
314: DOUBLE PRECISION, ALLOCATABLE :: TSGUESS(:,:), TSTEMP(:,:), LTANVEC(:,:)314: DOUBLE PRECISION, ALLOCATABLE :: TSGUESS(:,:), TSTEMP(:,:), LTANVEC(:,:)
315: 315: 
316: MYTSMAX=10316: MYTSMAX=10
317: IF (ALLOCATED(TSGUESS)) DEALLOCATE(TSGUESS)317: IF (ALLOCATED(TSGUESS)) DEALLOCATE(TSGUESS)
318: IF (ALLOCATED(LTANVEC)) DEALLOCATE(LTANVEC)318: IF (ALLOCATED(LTANVEC)) DEALLOCATE(LTANVEC)
319: ! PRINT *,' A ALLOCATED(TSGUESS)=',ALLOCATED(TSGUESS) 
320: ! PRINT *,' A ALLOCATED(LTANVEC)=',ALLOCATED(LTANVEC) 
321: ALLOCATE(TSGUESS(MYTSMAX,NOPT),LTANVEC(MYTSMAX,NOPT))319: ALLOCATE(TSGUESS(MYTSMAX,NOPT),LTANVEC(MYTSMAX,NOPT))
322: NTS=0320: NTS=0
323: LGDUMMY = 0 ! sn402 added321: LGDUMMY = 0 ! sn402 added
324: IF (REDOPATHNEB) THEN322: IF (REDOPATHNEB) THEN
325:    PRINT '(A,F20.10)',' contslocator> ERROR *** REDOPATH cannot be set with NEBCONSTRAINT'323:    PRINT '(A,F20.10)',' contslocator> ERROR *** REDOPATH cannot be set with NEBCONSTRAINT'
326:    STOP324:    STOP
327: ELSE325: ELSE
328:    DO I=1,NIMAGE+1326:    DO I=1,NIMAGE+1
329:       DO J2=1,NIMAGE+2 ! extra interpolation using the same number of images327:       DO J2=1,NIMAGE+2 ! extra interpolation using the same number of images
330:          XLOCAL(1:NOPT)=( (NIMAGE+2-J2)*XYZ((I-1)*NOPT+1:I*NOPT)+(J2-1)*XYZ(I*NOPT+1:(I+1)*NOPT) )/(NIMAGE+1)328:          XLOCAL(1:NOPT)=( (NIMAGE+2-J2)*XYZ((I-1)*NOPT+1:I*NOPT)+(J2-1)*XYZ(I*NOPT+1:(I+1)*NOPT) )/(NIMAGE+1)
331:          CALL POTENTIAL(XLOCAL,ELOCAL(J2),LGDUMMY,.FALSE.,.FALSE.,RMS,.FALSE.,.FALSE.)329:          CALL POTENTIAL(XLOCAL,ELOCAL(J2),LGDUMMY,.FALSE.,.FALSE.,RMS,.FALSE.,.FALSE.)
332:          PRINT '(3(A,I6),A,G20.10)',' contslocator> energy at position ',J2,' between images ',I,' and ',I+1, &330:          PRINT '(3(A,I6),A,G20.10)',' contslocator> energy at position ',J2,' between images ',I,' and ',I+1, &
333:   &                                  ' E=',ELOCAL(J2)331:   &                                  ' E=',ELOCAL(J2)
334:       ENDDO332:       ENDDO
335:       IF (ELOCAL(2).LT.ELOCAL(1)) THEN333:       IF (ELOCAL(2).LT.ELOCAL(1)) THEN
336:          NTS=NTS+1334:          NTS=NTS+1
337:          IF (NTS.GT.MYTSMAX) THEN ! increase storage as required for TS candidates335:          IF (NTS.GT.MYTSMAX) THEN ! increase storage as required for TS candidates
338:             ALLOCATE(TSTEMP(MYTSMAX,NOPT))336:             ALLOCATE(TSTEMP(MYTSMAX,NOPT))
339:             ! PRINT *,' B ALLOCATED(TSGUESS)=',ALLOCATED(TSGUESS) 
340:             ! PRINT *,' B ALLOCATED(LTANVEC)=',ALLOCATED(LTANVEC) 
341:             TSTEMP(1:MYTSMAX,1:NOPT)=TSGUESS(1:MYTSMAX,1:NOPT)337:             TSTEMP(1:MYTSMAX,1:NOPT)=TSGUESS(1:MYTSMAX,1:NOPT)
342:             DEALLOCATE(TSGUESS)338:             DEALLOCATE(TSGUESS)
343:             ALLOCATE(TSGUESS(2*MYTSMAX,NOPT))339:             ALLOCATE(TSGUESS(2*MYTSMAX,NOPT))
344:             TSGUESS(1:MYTSMAX,1:NOPT)=TSTEMP(1:MYTSMAX,1:NOPT)340:             TSGUESS(1:MYTSMAX,1:NOPT)=TSTEMP(1:MYTSMAX,1:NOPT)
345:             TSTEMP(1:MYTSMAX,1:NOPT)=LTANVEC(1:MYTSMAX,1:NOPT)341:             TSTEMP(1:MYTSMAX,1:NOPT)=LTANVEC(1:MYTSMAX,1:NOPT)
346:             DEALLOCATE(LTANVEC)342:             DEALLOCATE(LTANVEC)
347:             ALLOCATE(LTANVEC(2*MYTSMAX,NOPT))343:             ALLOCATE(LTANVEC(2*MYTSMAX,NOPT))
348:             LTANVEC(1:MYTSMAX,1:NOPT)=TSTEMP(1:MYTSMAX,1:NOPT)344:             LTANVEC(1:MYTSMAX,1:NOPT)=TSTEMP(1:MYTSMAX,1:NOPT)
349:             DEALLOCATE(TSTEMP)345:             DEALLOCATE(TSTEMP)
350:             MYTSMAX=2*MYTSMAX346:             MYTSMAX=2*MYTSMAX
351:          ENDIF347:          ENDIF
352:          PRINT '(3(A,I6),A,G20.10)',' contslocator> adding ts candidate at position ',1,' between images ',I,' and ',I+1, &348:          PRINT '(3(A,I6),A,G20.10)',' contslocator> adding ts candidate at position ',1,' between images ',I,' and ',I+1, &
353:   &                               ' E=',ELOCAL(1)349:   &                               ' E=',ELOCAL(1)
354:          TSGUESS(NTS,1:NOPT)=XYZ((I-1)*NOPT+1:I*NOPT)350:          TSGUESS(NTS,1:NOPT)=XYZ((I-1)*NOPT+1:I*NOPT)
355:          LTANVEC(NTS,1:NOPT)=XYZ((I-1)*NOPT+1:I*NOPT)-XYZ(I*NOPT+1:(I+1)*NOPT)351:          LTANVEC(NTS,1:NOPT)=XYZ((I-1)*NOPT+1:I*NOPT)-XYZ(I*NOPT+1:(I+1)*NOPT)
356:       ENDIF352:       ENDIF
357:       DO J2=2,NIMAGE+1 353:       DO J2=2,NIMAGE+1 
358:          IF ( (ELOCAL(J2-1).LT.ELOCAL(J2)) .AND. (ELOCAL(J2).GT.ELOCAL(J2+1)) ) THEN354:          IF ( (ELOCAL(J2-1).LT.ELOCAL(J2)) .AND. (ELOCAL(J2).GT.ELOCAL(J2+1)) ) THEN
359:             NTS=NTS+1355:             NTS=NTS+1
360:             IF (NTS.GT.MYTSMAX) THEN ! increase storage as required for TS candidates356:             IF (NTS.GT.MYTSMAX) THEN ! increase storage as required for TS candidates
361:             ! PRINT *,' C ALLOCATED(TSGUESS)=',ALLOCATED(TSGUESS) 
362:             ! PRINT *,' C ALLOCATED(LTANVEC)=',ALLOCATED(LTANVEC) 
363:                ALLOCATE(TSTEMP(MYTSMAX,NOPT))357:                ALLOCATE(TSTEMP(MYTSMAX,NOPT))
364:                TSTEMP(1:MYTSMAX,1:NOPT)=TSGUESS(1:MYTSMAX,1:NOPT)358:                TSTEMP(1:MYTSMAX,1:NOPT)=TSGUESS(1:MYTSMAX,1:NOPT)
365:                DEALLOCATE(TSGUESS)359:                DEALLOCATE(TSGUESS)
366:                ALLOCATE(TSGUESS(2*MYTSMAX,NOPT))360:                ALLOCATE(TSGUESS(2*MYTSMAX,NOPT))
367:                TSGUESS(1:MYTSMAX,1:NOPT)=TSTEMP(1:MYTSMAX,1:NOPT)361:                TSGUESS(1:MYTSMAX,1:NOPT)=TSTEMP(1:MYTSMAX,1:NOPT)
368:                TSTEMP(1:MYTSMAX,1:NOPT)=LTANVEC(1:MYTSMAX,1:NOPT)362:                TSTEMP(1:MYTSMAX,1:NOPT)=LTANVEC(1:MYTSMAX,1:NOPT)
369:                DEALLOCATE(LTANVEC)363:                DEALLOCATE(LTANVEC)
370:                ALLOCATE(LTANVEC(2*MYTSMAX,NOPT))364:                ALLOCATE(LTANVEC(2*MYTSMAX,NOPT))
371:                LTANVEC(1:MYTSMAX,1:NOPT)=TSTEMP(1:MYTSMAX,1:NOPT)365:                LTANVEC(1:MYTSMAX,1:NOPT)=TSTEMP(1:MYTSMAX,1:NOPT)
372:                DEALLOCATE(TSTEMP)366:                DEALLOCATE(TSTEMP)
375:             PRINT '(3(A,I6),A,G20.10)',' contslocator> adding ts candidate at position ',J2,' between images ',I,' and ',I+1, &369:             PRINT '(3(A,I6),A,G20.10)',' contslocator> adding ts candidate at position ',J2,' between images ',I,' and ',I+1, &
376:   &                                  ' E=',ELOCAL(J2)370:   &                                  ' E=',ELOCAL(J2)
377:             TSGUESS(NTS,1:NOPT)=( (NIMAGE+2-J2)*XYZ((I-1)*NOPT+1:I*NOPT)+(J2-1)*XYZ(I*NOPT+1:(I+1)*NOPT) )/(NIMAGE+1)371:             TSGUESS(NTS,1:NOPT)=( (NIMAGE+2-J2)*XYZ((I-1)*NOPT+1:I*NOPT)+(J2-1)*XYZ(I*NOPT+1:(I+1)*NOPT) )/(NIMAGE+1)
378:             LTANVEC(NTS,1:NOPT)=XYZ((I-1)*NOPT+1:I*NOPT)-XYZ(I*NOPT+1:(I+1)*NOPT)372:             LTANVEC(NTS,1:NOPT)=XYZ((I-1)*NOPT+1:I*NOPT)-XYZ(I*NOPT+1:(I+1)*NOPT)
379:          ENDIF373:          ENDIF
380:       ENDDO374:       ENDDO
381:       IF (ELOCAL(NIMAGE+1).LT.ELOCAL(NIMAGE+2)) THEN375:       IF (ELOCAL(NIMAGE+1).LT.ELOCAL(NIMAGE+2)) THEN
382:          NTS=NTS+1376:          NTS=NTS+1
383:          IF (NTS.GT.MYTSMAX) THEN ! increase storage as required for TS candidates377:          IF (NTS.GT.MYTSMAX) THEN ! increase storage as required for TS candidates
384:             ALLOCATE(TSTEMP(MYTSMAX,NOPT))378:             ALLOCATE(TSTEMP(MYTSMAX,NOPT))
385:             ! PRINT *,' D ALLOCATED(TSGUESS)=',ALLOCATED(TSGUESS) 
386:             ! PRINT *,' D ALLOCATED(LTANVEC)=',ALLOCATED(LTANVEC) 
387:             TSTEMP(1:MYTSMAX,1:NOPT)=TSGUESS(1:MYTSMAX,1:NOPT)379:             TSTEMP(1:MYTSMAX,1:NOPT)=TSGUESS(1:MYTSMAX,1:NOPT)
388:             DEALLOCATE(TSGUESS)380:             DEALLOCATE(TSGUESS)
389:             ALLOCATE(TSGUESS(2*MYTSMAX,NOPT))381:             ALLOCATE(TSGUESS(2*MYTSMAX,NOPT))
390:             TSGUESS(1:MYTSMAX,1:NOPT)=TSTEMP(1:MYTSMAX,1:NOPT)382:             TSGUESS(1:MYTSMAX,1:NOPT)=TSTEMP(1:MYTSMAX,1:NOPT)
391:             TSTEMP(1:MYTSMAX,1:NOPT)=LTANVEC(1:MYTSMAX,1:NOPT)383:             TSTEMP(1:MYTSMAX,1:NOPT)=LTANVEC(1:MYTSMAX,1:NOPT)
392:             DEALLOCATE(LTANVEC)384:             DEALLOCATE(LTANVEC)
393:             ALLOCATE(LTANVEC(2*MYTSMAX,NOPT))385:             ALLOCATE(LTANVEC(2*MYTSMAX,NOPT))
394:             LTANVEC(1:MYTSMAX,1:NOPT)=TSTEMP(1:MYTSMAX,1:NOPT)386:             LTANVEC(1:MYTSMAX,1:NOPT)=TSTEMP(1:MYTSMAX,1:NOPT)
395:             DEALLOCATE(TSTEMP)387:             DEALLOCATE(TSTEMP)
396:             MYTSMAX=2*MYTSMAX388:             MYTSMAX=2*MYTSMAX
446: ENDDO438: ENDDO
447: CALL MYCPU_TIME(ENDTIME,.FALSE.)439: CALL MYCPU_TIME(ENDTIME,.FALSE.)
448: 440: 
449: WRITE(*,'(a)') '.'441: WRITE(*,'(a)') '.'
450: 442: 
451: WRITE(INTSTR,'(i10)') NTSfound443: WRITE(INTSTR,'(i10)') NTSfound
452: 444: 
453: WRITE(*, '(A,F7.2)',advance='yes') ' Constrained potential run yielded '//trim(adjustl(IntStr))// &445: WRITE(*, '(A,F7.2)',advance='yes') ' Constrained potential run yielded '//trim(adjustl(IntStr))// &
454:                   &' true transition state(s) time=',EndTime-StartTime446:                   &' true transition state(s) time=',EndTime-StartTime
455: 447: 
456: ! PRINT *,' end ALLOCATED(TSGUESS)=',ALLOCATED(TSGUESS)448: DEALLOCATE(TSGUESS)
457: ! PRINT *,' end ALLOCATED(LTANVEC)=',ALLOCATED(LTANVEC) 
458: IF (ALLOCATED(TSGUESS)) DEALLOCATE(TSGUESS) 
459: RETURN449: RETURN
460: 450: 
461: END SUBROUTINE CONTSLOCATOR451: END SUBROUTINE CONTSLOCATOR
462: 452: 
463:       SUBROUTINE CHECKTS(DUMMY,EVALMIN,TSCONVERGED)453:       SUBROUTINE CHECKTS(DUMMY,EVALMIN,TSCONVERGED)
464:           USE NEBDATA454:           USE NEBDATA
465:           USE MODCHARMM455:           USE MODCHARMM
466:           USE LINKEDLIST456:           USE LINKEDLIST
467:           IMPLICIT NONE457:           IMPLICIT NONE
468: 458: 


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0