hdiff output

r31382/QALCS_surface.f90 2016-10-24 10:30:11.070028659 +0100 r31381/QALCS_surface.f90 2016-10-24 10:30:11.410033204 +0100
 60:      CALL BUILD_NNLISTS(NP, ATOMS_SORTED_BY_NN, NNDIST) 60:      CALL BUILD_NNLISTS(NP, ATOMS_SORTED_BY_NN, NNDIST)
 61:      CALL GEN_VSITES(NP, ATOMS_SORTED_BY_NN, NNDIST, & 61:      CALL GEN_VSITES(NP, ATOMS_SORTED_BY_NN, NNDIST, &
 62:           NVSITES, VSITE_WEIGHT)  62:           NVSITES, VSITE_WEIGHT) 
 63:      ! 63:      !
 64:      ! Consider only atoms of coordination 6 and below 64:      ! Consider only atoms of coordination 6 and below
 65:      ! NN_AVE is apparently too large as an upper bound...  65:      ! NN_AVE is apparently too large as an upper bound... 
 66:      ! Perhaps try NN_LOWEST? (By analogy with MAX_WEIGHT for voids.) 66:      ! Perhaps try NN_LOWEST? (By analogy with MAX_WEIGHT for voids.)
 67:      NN_LOWEST = NNLISTS(ATOMS_SORTED_BY_NN(1),0) 67:      NN_LOWEST = NNLISTS(ATOMS_SORTED_BY_NN(1),0)
 68:      !write(*,*) NN_LOWEST 68:      !write(*,*) NN_LOWEST
 69:      IF(NN_LOWEST <= VSITE_WEIGHT) THEN 69:      IF(NN_LOWEST <= VSITE_WEIGHT) THEN
 70:      !IF(NN_LOWEST <= VSITE_WEIGHT + 1) THEN ! maybe better?!? 
 71:         REDUCE: DO I2=1,ATOMS_SORTED_BY_NN(0)  70:         REDUCE: DO I2=1,ATOMS_SORTED_BY_NN(0) 
 72:            I3=ATOMS_SORTED_BY_NN(I2) ! actual atom index 71:            I3=ATOMS_SORTED_BY_NN(I2) ! actual atom index
 73:            IF(NNLISTS(I3,0) > NN_LOWEST) THEN 72:            IF(NNLISTS(I3,0) > NN_LOWEST) THEN
 74:            !IF(NNLISTS(I3,0) > MAX(NN_LOWEST,6)) THEN 
 75:               ATOMS_SORTED_BY_NN(0) = I2-1 73:               ATOMS_SORTED_BY_NN(0) = I2-1
 76:               EXIT REDUCE 74:               EXIT REDUCE
 77:            ENDIF 75:            ENDIF
 78:         ENDDO REDUCE 76:         ENDDO REDUCE
 79:      ELSE 77:      ELSE
 80:         ATOMS_SORTED_BY_NN(0) = 0 78:         ATOMS_SORTED_BY_NN(0) = 0
 81:      ENDIF 79:      ENDIF
 82:      ! 80:      !
 83:      WRITE(MYUNIT,'(A,I3,A,I3,A)') & 81:      WRITE(MYUNIT,'(A,I3,A,I3,A)') &
 84:           'QALCS_surf> Swapping ',ATOMS_SORTED_BY_NN(0), & 82:           'QALCS_surf> Swapping ',ATOMS_SORTED_BY_NN(0), &
100:            ! 98:            !
101:            NQTOT = NQTOT + 1 99:            NQTOT = NQTOT + 1
102:            NQ(NP) = NQ(NP) + 1100:            NQ(NP) = NQ(NP) + 1
103:            CALL QUENCH(.FALSE.,NP,ITER,TIME,BRUN,QDONE,SCREENC)101:            CALL QUENCH(.FALSE.,NP,ITER,TIME,BRUN,QDONE,SCREENC)
104:            IF(QALCSV) CALL PRINT_QUENCH(NP, ITER, '  ')102:            IF(QALCSV) CALL PRINT_QUENCH(NP, ITER, '  ')
105:            !103:            !
106:            IF(POTEL < E - ECONV) THEN ! improvemenet104:            IF(POTEL < E - ECONV) THEN ! improvemenet
107:               COMPLETE = .FALSE.105:               COMPLETE = .FALSE.
108:               E = POTEL106:               E = POTEL
109:               X(1:3*NATOMS) = COORDS(1:3*NATOMS,NP)107:               X(1:3*NATOMS) = COORDS(1:3*NATOMS,NP)
110:               WRITE(MYUNIT,'(A,F20.10,A,2(1X,I3))') &108:               WRITE(MYUNIT,'(A,F20.10)') &
111:                    'QALCS_surf> Lower E= ', E,' for A,V= ',I2,I1 109:                    'QALCS_surf> Found lower E= ', E
112:               EXIT SITES110:               EXIT SITES
113:            ELSE ! revert111:            ELSE ! revert
114:               POTEL = E112:               POTEL = E
115:               COORDS(1:3*NATOMS,NP) = X(1:3*NATOMS)113:               COORDS(1:3*NATOMS,NP) = X(1:3*NATOMS)
116:            ENDIF114:            ENDIF
117:            !115:            !
118:         ENDDO116:         ENDDO
119:      ENDDO SITES117:      ENDDO SITES
120:      !118:      !
121:   END DO119:   END DO
432:   LOGICAL :: BAD, ADD430:   LOGICAL :: BAD, ADD
433:   DOUBLE PRECISION :: VSITE(3), DUMMY, TOL1, TOL2, TOL3, TOL4431:   DOUBLE PRECISION :: VSITE(3), DUMMY, TOL1, TOL2, TOL3, TOL4
434:   !432:   !
435:   VSITES(1:NVSITES_MAX,1:3) = 0.0D0433:   VSITES(1:NVSITES_MAX,1:3) = 0.0D0
436:   NVSITES=0434:   NVSITES=0
437:   VSITE_WEIGHTS(1:NVSITES_MAX) = 0435:   VSITE_WEIGHTS(1:NVSITES_MAX) = 0
438:   !436:   !
439:   ! Thresholds for cluster-cluster atoms437:   ! Thresholds for cluster-cluster atoms
440:   !TOL1=0.375d0*NNDIST(1) ! squared rad. of circumsphere of tetrahedron (for overalap)438:   !TOL1=0.375d0*NNDIST(1) ! squared rad. of circumsphere of tetrahedron (for overalap)
441:   TOL1=NNDIST(1)*(0.5d0*(1.0D0+DSQRT(3.0D0/8.0D0)))**2 439:   TOL1=NNDIST(1)*(0.5d0*(1.0D0+DSQRT(3.0D0/8.0D0)))**2 
442:   TOL2=NNDIST(3) ! Coordination determined by the largest NN dist.440:   TOL2=NNDIST(3) ! Coordination determined by the largest NN distance
443:   !TOL2=1.8D0*NNDIST(1) ! This may be better?!? 
444:   !441:   !
445:   ! Thresholds for cluster-substrate atoms442:   ! Thresholds for cluster-substrate atoms
446:   IF(MIEFT) THEN443:   IF(MIEFT) THEN
447:      TOL3=0.64D0*MINVAL(MIEF_SIG)**2 ! adequate?!?444:      TOL3=0.64D0*MINVAL(MIEF_SIG)**2 ! adequate?!?
448:      TOL4=1.44D0*MAXVAL(MIEF_SIG)**2445:      TOL4=1.44D0*MAXVAL(MIEF_SIG)**2
449:   ENDIF446:   ENDIF
450:   !447:   !
451:   DO I0=1,LIST(0) ! loop over atoms in list448:   DO I0=1,LIST(0) ! loop over atoms in list
452:      !449:      !
453:      I1=LIST(I0) ! actual atom index450:      I1=LIST(I0) ! actual atom index
641:   !    DO I1=1,ATOMLISTS(I0,1,0)638:   !    DO I1=1,ATOMLISTS(I0,1,0)
642:   !       J1=ATOMLISTS(I0,1,I1)639:   !       J1=ATOMLISTS(I0,1,I1)
643:   !       WRITE(*,'(A,I1,3(1X,F20.10))') 'A',I0,&640:   !       WRITE(*,'(A,I1,3(1X,F20.10))') 'A',I0,&
644:   !            (COORDS(J2,NP), J2=3*(J1-1)+1,3*J1)641:   !            (COORDS(J2,NP), J2=3*(J1-1)+1,3*J1)
645:   !    ENDDO642:   !    ENDDO
646:   ! ENDDO643:   ! ENDDO
647:   ! DO I1=1,NVSITES644:   ! DO I1=1,NVSITES
648:   !    WRITE(*,'(I2,3(1X,F20.10))') VSITE_WEIGHTS(I1),&645:   !    WRITE(*,'(I2,3(1X,F20.10))') VSITE_WEIGHTS(I1),&
649:   !         (VSITES(I1, J2), J2=1,3)646:   !         (VSITES(I1, J2), J2=1,3)
650:   ! ENDDO647:   ! ENDDO
651:   !STOP 
652:   !<ds656 ...testing648:   !<ds656 ...testing
653:   !649:   !
654:   I2=NVSITES650:   I2=NVSITES
655:   IF(VSITE_WEIGHTS(1) > 1) THEN ! or 1?651:   IF(VSITE_WEIGHTS(1) > 1) THEN ! or 1?
656:      ! Weed out all but the largest WEIGHTS (highest coordination)652:      ! Weed out all but the largest WEIGHTS (highest coordination)
657:      !I3=MIN(VSITE_WEIGHTS(1),5) ! May be better?!? 
658:      I3=VSITE_WEIGHTS(1)  
659:      WEED: DO I1=I2,1,-1653:      WEED: DO I1=I2,1,-1
660:         IF(VSITE_WEIGHTS(I1) < I3) THEN654:         IF(VSITE_WEIGHTS(I1) < VSITE_WEIGHTS(1)) THEN
661:            NVSITES = NVSITES-1655:            NVSITES = NVSITES-1
662:            VSITE_WEIGHTS(I1) = 0656:            VSITE_WEIGHTS(I1) = 0
663:            VSITES(I1,1:3) = 0.0D0657:            VSITES(I1,1:3) = 0.0D0
664:         ELSE658:         ELSE
665:            EXIT WEED659:            EXIT WEED
666:         ENDIF660:         ENDIF
667:      ENDDO WEED661:      ENDDO WEED
668:      !VSITE_WEIGHT = VSITE_WEIGHTS(1)662:      VSITE_WEIGHT = VSITE_WEIGHTS(1)
669:      VSITE_WEIGHT = I3 
670:      !WRITE(MYUNIT,'(A,I2)') &663:      !WRITE(MYUNIT,'(A,I2)') &
671:      !     'gen_sites> Highest v-site weight: ',VSITE_WEIGHT664:      !     'gen_sites> Highest v-site weight: ',VSITE_WEIGHT
672:   ELSE665:   ELSE
673:      NVSITES = 0666:      NVSITES = 0
674:   ENDIF667:   ENDIF
675:   !668:   !
676:   ! ds656> testing ..669:   ! ds656> testing ..
677:   !if(vsite_weights(1) .ge. 12) then670:   !if(vsite_weights(1) .ge. 12) then
678:      ! write(*,'(I5)') natoms+nvsites671:      ! write(*,'(I5)') natoms+nvsites
679:      ! write(*,'(A)') 'Atoms and vacancies before merging'672:      ! write(*,'(A)') 'Atoms and vacancies before merging'


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0