hdiff output

r29045/atom_label_flips.f90 2015-11-17 23:33:43.685090609 +0000 r29044/atom_label_flips.f90 2015-11-17 23:33:44.069095761 +0000
 16:        INVATOMLISTS_MIN(NATOMS,3),I,LIST(0:NATOMS),J,K,L,N, & 16:        INVATOMLISTS_MIN(NATOMS,3),I,LIST(0:NATOMS),J,K,L,N, &
 17:        NACC,NREJ,L_OLD,L_NEW,NSPECIES_MIN(0:NSPECIES(0)) 17:        NACC,NREJ,L_OLD,L_NEW,NSPECIES_MIN(0:NSPECIES(0))
 18:   DOUBLE PRECISION :: DPRAND, R, POTEL, X0(1:3*NATOMS), E0, & 18:   DOUBLE PRECISION :: DPRAND, R, POTEL, X0(1:3*NATOMS), E0, &
 19:        XMIN(1:3*NATOMS), EMIN, TEMP 19:        XMIN(1:3*NATOMS), EMIN, TEMP
 20:   ! 20:   !
 21:   ! Energy of COORDS from last quench. Common block in QUENCH.  21:   ! Energy of COORDS from last quench. Common block in QUENCH. 
 22:   COMMON /MYPOT/ POTEL 22:   COMMON /MYPOT/ POTEL
 23:   ! Total quench count. Commom block in MC. 23:   ! Total quench count. Commom block in MC.
 24:   COMMON /TOT/ NQTOT 24:   COMMON /TOT/ NQTOT
 25:   ! 25:   !
  26:   NSPECIES_MIN(:) = NSPECIES(:)
  27:   ATOMLISTS_MIN(:,:,:) = ATOMLISTS(:,:,:)
  28:   INVATOMLISTS_MIN(:,:) = INVATOMLISTS(:,:)
  29:   XMIN(1:3*NATOMS) = COORDS(1:3*NATOMS, NP)
  30:   EMIN = POTEL
  31:   TEMP = LFLIPS_TEMP
  32:   !
 26:   WRITE(MYUNIT,'(A)') & 33:   WRITE(MYUNIT,'(A)') &
 27:        '============================================================' 34:        '============================================================'
  35:   WRITE(MYUNIT,'(A,F20.10,A,F10.8)',ADVANCE='NO') &
  36:        'flipseq> Initial E= ', POTEL,' T= ', TEMP
  37:   DO I=1,NSPECIES(0)
  38:      WRITE(MYUNIT,'(1X,A,I1,A,I3)',ADVANCE='NO') &
  39:           'N_',I,'= ', NSPECIES(I)
  40:   ENDDO
  41:   WRITE(MYUNIT,*)
 28:   ! 42:   !
 29:   IF(LFLIPS_RESET) THEN 43:   IF(LFLIPS_RESET) THEN
 30:      WRITE(MYUNIT,'(A)') 'flipseq> Resetting stoichiometry...' 44:      WRITE(MYUNIT,'(A)') 'flipseq> Resetting stoichiometry...'
 31:      CALL RESET_STOICHIOMETRY() 45:      CALL RESET_STOICHIOMETRY()
 32:      NQTOT = NQTOT + 1 46:      NQTOT = NQTOT + 1
 33:      NQ(NP) = NQ(NP) + 1 47:      NQ(NP) = NQ(NP) + 1
 34:      CALL QUENCH(.FALSE.,NP,ITER,TIME,BRUN,QDONE,SCREENC) 48:      CALL QUENCH(.FALSE.,NP,ITER,TIME,BRUN,QDONE,SCREENC)
 35:      IF (MOD(N-1,PRTFRQ).EQ.0) THEN 49:      IF (MOD(N-1,PRTFRQ).EQ.0) THEN
 36:         IF (NPAR.GT.1) THEN 50:         IF (NPAR.GT.1) THEN
 37:            WRITE(MYUNIT,'(A,I1,A,I10,A,F20.10,A,I5,A,G12.5,A,F11.1)') & 51:            WRITE(MYUNIT,'(A,I1,A,I10,A,F20.10,A,I5,A,G12.5,A,F11.1)') &
 38:                 '[',NP,']Qu ',NQ(NP),' E=',POTEL,' steps=',ITER, & 52:                 '[',NP,']Qu ',NQ(NP),' E=',POTEL,' steps=',ITER, &
 39:                 ' RMS=',RMS,' t=',TIME 53:                 ' RMS=',RMS,' t=',TIME
 40:         ELSE 54:         ELSE
 41:            WRITE(MYUNIT,'(A,I10,A,F20.10,A,I5,A,G12.5,A,F11.1)') & 55:            WRITE(MYUNIT,'(A,I10,A,F20.10,A,I5,A,G12.5,A,F11.1)') &
 42:                 'Qu ',NQ(NP),' E=',POTEL,' steps=',ITER, & 56:                 'Qu ',NQ(NP),' E=',POTEL,' steps=',ITER, &
 43:                 ' RMS=',RMS,' t=',TIME 57:                 ' RMS=',RMS,' t=',TIME
 44:         ENDIF 58:         ENDIF
 45:      ENDIF 59:      ENDIF
  60:      !
  61:      WRITE(MYUNIT,'(A,F20.10,A,F10.8)',ADVANCE='NO') &
  62:           'flipseq> New E= ', POTEL,' T= ', TEMP
  63:      DO I=1,NSPECIES(0)
  64:         WRITE(MYUNIT,'(1X,A,I1,A,I3)',ADVANCE='NO') &
  65:              'N_',I,'= ', NSPECIES(I)
  66:      ENDDO
  67:      WRITE(MYUNIT,*)
 46:   ENDIF 68:   ENDIF
 47:   ! 69:   !
 48:   NSPECIES_MIN(:) = NSPECIES(:) 
 49:   ATOMLISTS_MIN(:,:,:) = ATOMLISTS(:,:,:) 
 50:   INVATOMLISTS_MIN(:,:) = INVATOMLISTS(:,:) 
 51:   XMIN(1:3*NATOMS) = COORDS(1:3*NATOMS, NP) 
 52:   EMIN = POTEL 
 53:   TEMP = LFLIPS_TEMP 
 54:   ! 
 55:   WRITE(MYUNIT,'(A,F20.10,A,F10.8)',ADVANCE='NO') & 
 56:        'flipseq> Initial E= ', POTEL,' T= ', TEMP 
 57:   DO I=1,NSPECIES(0) 
 58:      WRITE(MYUNIT,'(1X,A,I1,A,I3)',ADVANCE='NO') & 
 59:           'N_',I,'= ', NSPECIES(I) 
 60:   ENDDO 
 61:   WRITE(MYUNIT,*) 
 62:   ! 
 63:   NACC = 0 70:   NACC = 0
 64:   NREJ = 0 71:   NREJ = 0
 65:   DO N=1,LFLIPS_N2 72:   DO N=1,LFLIPS_N2
 66:      ! 73:      !
 67:      X0(1:3*NATOMS) = COORDS(1:3*NATOMS,NP) 74:      X0(1:3*NATOMS) = COORDS(1:3*NATOMS,NP)
 68:      E0 = POTEL 75:      E0 = POTEL
 69:      ! 76:      !
 70:      LIST(0:NATOMS) = 0 77:      LIST(0:NATOMS) = 0
 71:      DO J=1,NSPECIES(0) 78:      DO J=1,NSPECIES(0)
 72:         DO K=1,ATOMLISTS(J,1,0) ! only group 1 79:         DO K=1,ATOMLISTS(J,1,0) ! only group 1


r29045/QALCS_surface.f90 2015-11-17 23:33:43.497088088 +0000 r29044/QALCS_surface.f90 2015-11-17 23:33:43.881093238 +0000
503:                  DO J3=1,NNLIST(0)503:                  DO J3=1,NNLIST(0)
504:                     I3=NNLIST(J3)504:                     I3=NNLIST(J3)
505:                     I33=3*(I3-1)505:                     I33=3*(I3-1)
506:                     DUMMY = 0.0D0506:                     DUMMY = 0.0D0
507:                     DO K=1,3507:                     DO K=1,3
508:                        DUMMY = DUMMY + &508:                        DUMMY = DUMMY + &
509:                             (COORDS(I33+K,NP)-VSITE(K))**2509:                             (COORDS(I33+K,NP)-VSITE(K))**2
510:                     ENDDO510:                     ENDDO
511:                     IF(DUMMY < TOL1) THEN ! overlap!511:                     IF(DUMMY < TOL1) THEN ! overlap!
512:                        ! This block turns out to be important, especially when512:                        ! This block turns out to be important, especially when
513:                        ! distinction between 1st and 2nd nearest neighbours is513:                        ! the distinction between 1st and 2nd nearest neighbours is
514:                        ! ambiguous!514:                        ! ambiguous!
515:                        BAD=.TRUE.515:                        BAD=.TRUE.
516:                        EXIT BADNESS1516:                        EXIT BADNESS1
517:                     ELSEIF( DUMMY < TOL2 ) THEN517:                     ELSEIF( DUMMY < TOL2 ) THEN
518:                        ADD=.TRUE.518:                        ADD=.TRUE.
519:                        LK: DO K=1,VSITE_NNLIST(0)519:                        LK: DO K=1,VSITE_NNLIST(0)
520:                           IF(VSITE_NNLIST(K) == I3) THEN520:                           IF(VSITE_NNLIST(K) == I3) THEN
521:                              ADD = .FALSE.521:                              ADD = .FALSE.
522:                              EXIT LK522:                              EXIT LK
523:                           ENDIF523:                           ENDIF
618:   !   WRITE(MYUNIT,'(A,I6,I3,3(1X,F10.5))') 'gen_sites>', &618:   !   WRITE(MYUNIT,'(A,I6,I3,3(1X,F10.5))') 'gen_sites>', &
619:   !        I1, VSITE_WEIGHTS(I1), VSITES(I1,1:3)619:   !        I1, VSITE_WEIGHTS(I1), VSITES(I1,1:3)
620:   !ENDDO620:   !ENDDO
621:   !<ds656 ...testing621:   !<ds656 ...testing
622:   !622:   !
623:   !WRITE(MYUNIT,'(A,I6)') 'gen_sites> V-site candidates: ', NVSITES623:   !WRITE(MYUNIT,'(A,I6)') 'gen_sites> V-site candidates: ', NVSITES
624:   !624:   !
625:   ! Sort VSITES by weight from biggest to smallest (CHECK!)625:   ! Sort VSITES by weight from biggest to smallest (CHECK!)
626:   CALL SORT3_V2(NVSITES,NVSITES_MAX,VSITE_WEIGHTS,VSITES)626:   CALL SORT3_V2(NVSITES,NVSITES_MAX,VSITE_WEIGHTS,VSITES)
627:   ! weed out vacancies whose avergage coordination is below 627:   ! weed out vacancies whose avergage coordination is below 
628:   ! 
629:   !ds656> testing...628:   !ds656> testing...
630:   !WRITE(MYUNIT,'(A)') 'gen_vsites> Vsites sorted by occupancy:'  629:   !WRITE(MYUNIT,'(A)') 'gen_vsites> Vsites sorted by occupancy:'  
631:   !DO I1=1,NVSITES630:   !DO I1=1,NVSITES
632:   !   WRITE(MYUNIT,'(A,I6,I3,3(1X,F10.5))') 'gen_sites>', &631:   !   WRITE(MYUNIT,'(A,I6,I3,3(1X,F10.5))') 'gen_sites>', &
633:   !        I1, VSITE_WEIGHTS(I1), VSITES(I1,1:3)632:   !        I1, VSITE_WEIGHTS(I1), VSITES(I1,1:3)
634:   !ENDDO633:   !ENDDO
635:   write(*,'(I5)') natoms+nvsites 
636:   write(*,'(A)') 'Atoms and all 1st generation vacancies' 
637:   DO I0=1,NSPECIES(0) !ds656> Should not exceed 10            
638:      DO I1=1,ATOMLISTS(I0,1,0) 
639:         J1=ATOMLISTS(I0,1,I1) 
640:         WRITE(*,'(A,I1,3(1X,F20.10))') 'A',I0,& 
641:              (COORDS(J2,NP), J2=3*(J1-1)+1,3*J1) 
642:      ENDDO 
643:   ENDDO 
644:   DO I1=1,NVSITES 
645:      WRITE(*,'(I2,3(1X,F20.10))') VSITE_WEIGHTS(I1),& 
646:           (VSITES(I1, J2), J2=1,3) 
647:   ENDDO 
648:   !<ds656 ...testing634:   !<ds656 ...testing
649:   !635:   !
650:   I2=NVSITES636:   I2=NVSITES
651:   IF(VSITE_WEIGHTS(1) > 1) THEN ! or 1?637:   IF(VSITE_WEIGHTS(1) > 1) THEN ! or 1?
652:      ! Weed out all but the largest WEIGHTS (highest coordination)638:      ! Weed out all but the largest WEIGHTS (highest coordination)
653:      WEED: DO I1=I2,1,-1639:      WEED: DO I1=I2,1,-1
654:         IF(VSITE_WEIGHTS(I1) < VSITE_WEIGHTS(1)) THEN640:         IF(VSITE_WEIGHTS(I1) < VSITE_WEIGHTS(1)) THEN
655:            NVSITES = NVSITES-1641:            NVSITES = NVSITES-1
656:            VSITE_WEIGHTS(I1) = 0642:            VSITE_WEIGHTS(I1) = 0
657:            VSITES(I1,1:3) = 0.0D0643:            VSITES(I1,1:3) = 0.0D0
660:         ENDIF646:         ENDIF
661:      ENDDO WEED647:      ENDDO WEED
662:      VSITE_WEIGHT = VSITE_WEIGHTS(1)648:      VSITE_WEIGHT = VSITE_WEIGHTS(1)
663:      !WRITE(MYUNIT,'(A,I2)') &649:      !WRITE(MYUNIT,'(A,I2)') &
664:      !     'gen_sites> Highest v-site weight: ',VSITE_WEIGHT650:      !     'gen_sites> Highest v-site weight: ',VSITE_WEIGHT
665:   ELSE651:   ELSE
666:      NVSITES = 0652:      NVSITES = 0
667:   ENDIF653:   ENDIF
668:   !654:   !
669:   ! ds656> testing ..655:   ! ds656> testing ..
670:   !if(vsite_weights(1) .ge. 12) then656: !   if(vsite_weights(1) .ge. 12) then
671:      ! write(*,'(I5)') natoms+nvsites657: !      write(*,'(I5)') natoms+nvsites
672:      ! write(*,'(A)') 'Atoms and vacancies before merging'658: !      write(*,'(A)') 'Atoms and vacancies before merging'
673:      ! DO I0=1,NSPECIES(0) !ds656> Should not exceed 10           659: !      DO I0=1,NSPECIES(0) !ds656> Should not exceed 10           
674:      !    DO I1=1,ATOMLISTS(I0,1,0)660: !         DO I1=1,ATOMLISTS(I0,1,0)
675:      !       J1=ATOMLISTS(I0,1,I1)661: !            J1=ATOMLISTS(I0,1,I1)
676:      !       WRITE(*,'(I2,3(1X,F20.10))') I0,&662: !            WRITE(*,'(I2,3(1X,F20.10))') I0,&
677:      !            (COORDS(J2,NP), J2=3*(J1-1)+1,3*J1)663: !                 (COORDS(J2,NP), J2=3*(J1-1)+1,3*J1)
678:      !    ENDDO664: !         ENDDO
679:      ! ENDDO665: !      ENDDO
680:      ! DO I1=1,NVSITES666: !      DO I1=1,NVSITES
681:      !    WRITE(*,'(A,3(1X,F20.10))') ' 0',(VSITES(I1, J2), J2=1,3)667: !         WRITE(*,'(A,3(1X,F20.10))') ' 0',(VSITES(I1, J2), J2=1,3)
682:      ! ENDDO668: !      ENDDO
683:      !stop669: !      stop
684:   !endif670: !   endif
685:   ! <ds656 .. testing671:   ! <ds656 .. testing
686:   !672:   !
687:   I1 = 1 673:   I1 = 1 
688:   DO WHILE(I1 < NVSITES)674:   DO WHILE(I1 < NVSITES)
689:      I2 = I1+1675:      I2 = I1+1
690:      DO WHILE(I2 <= NVSITES)676:      DO WHILE(I2 <= NVSITES)
691:         DUMMY = 0.0D0677:         DUMMY = 0.0D0
692:         DO K=1,3678:         DO K=1,3
693:            DUMMY = DUMMY + &679:            DUMMY = DUMMY + &
694:                 (VSITES(I1,K)-VSITES(I2,K))**2680:                 (VSITES(I1,K)-VSITES(I2,K))**2
710:   IF(NVSITES > 0) THEN696:   IF(NVSITES > 0) THEN
711:      WRITE(MYUNIT,'(A,I3,A,I3)') &697:      WRITE(MYUNIT,'(A,I3,A,I3)') &
712:           'gen_sites> Generated ', NVSITES,' v-site(s) of weight',&698:           'gen_sites> Generated ', NVSITES,' v-site(s) of weight',&
713:           VSITE_WEIGHT699:           VSITE_WEIGHT
714:   ELSE700:   ELSE
715:      WRITE(MYUNIT,'(A,I6)') &701:      WRITE(MYUNIT,'(A,I6)') &
716:           'gen_sites> Failed to generate adequate v-sites!'     702:           'gen_sites> Failed to generate adequate v-sites!'     
717:   ENDIF703:   ENDIF
718: 704: 
719:   !ds656> testing ..705:   !ds656> testing ..
720:   !if(vsite_weight == 12) then706: !   if(vsite_weight == 12) then
721:   ! write(*,'(I5)') natoms+nvsites707: !   write(*,'(I5)') natoms+nvsites
722:   ! write(*,'(A)') 'Final atoms and vacancies after merging'708: !   write(*,'(A)') 'Final atoms and vacancies after merging'
723:   ! DO I0=1,NSPECIES(0) !ds656> Should not exceed 10           709: !   DO I0=1,NSPECIES(0) !ds656> Should not exceed 10           
724:   !    DO I1=1,ATOMLISTS(I0,1,0)710: !      DO I1=1,ATOMLISTS(I0,1,0)
725:   !       J1=ATOMLISTS(I0,1,I1)711: !         J1=ATOMLISTS(I0,1,I1)
726:   !       WRITE(*,'(I2,3(1X,F20.10))') I0,&712: !         WRITE(*,'(I2,3(1X,F20.10))') I0,&
727:   !            (COORDS(J2,NP), J2=3*(J1-1)+1,3*J1)713: !              (COORDS(J2,NP), J2=3*(J1-1)+1,3*J1)
728:   !    ENDDO714: !      ENDDO
729:   ! ENDDO715: !   ENDDO
730:   ! DO I1=1,NVSITES716: !   DO I1=1,NVSITES
731:   !    WRITE(*,'(A,3(1X,F20.10))') '0',(VSITES(I1, J2), J2=1,3)717: !      WRITE(*,'(A,3(1X,F20.10))') '0',(VSITES(I1, J2), J2=1,3)
732:   ! ENDDO718: !   ENDDO
733:   ! stop719: !   stop
734:   !endif720: !   endif
735:   !<ds656 .. testing721:   ! <ds656 .. testing
736:   !722:   !
737:   RETURN723:   RETURN
738:   !724:   !
739: END SUBROUTINE GEN_VSITES725: END SUBROUTINE GEN_VSITES
740: !726: !
741: SUBROUTINE REDUCE_NNLIST(NNLIST_MAX,LISTA,LISTB,LISTC)727: SUBROUTINE REDUCE_NNLIST(NNLIST_MAX,LISTA,LISTB,LISTC)
742:   !728:   !
743:   ! Put in LISTC all entries from LISTB that are not in LISTA.729:   ! Put in LISTC all entries from LISTB that are not in LISTA.
744:   ! Lists are not assumed to be sorted, so the procedure is slow.730:   ! Lists are not assumed to be sorted, so the procedure is slow.
745:   !731:   !


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0