hdiff output

r30264/finalio.f90 2016-07-06 15:36:43.940149203 +0100 r30263/finalio.f90 2016-07-06 15:36:45.048164183 +0100
215:         !ds656> With PRINT_MINDATA we want to discard "minima"215:         !ds656> With PRINT_MINDATA we want to discard "minima"
216:         ! with negative eigenvalues, and so we print the number216:         ! with negative eigenvalues, and so we print the number
217:         ! of atoms after checking the Hessian.217:         ! of atoms after checking the Hessian.
218:      ENDIF218:      ENDIF
219:      !        IF (CSMT.AND.DEBUG) WRITE(MYUNIT,'(A,I6,2G20.10)') 'finalio> J1,QMIN,QMINAV=',J1,QMIN(J1),QMINAV(J1)219:      !        IF (CSMT.AND.DEBUG) WRITE(MYUNIT,'(A,I6,2G20.10)') 'finalio> J1,QMIN,QMINAV=',J1,QMIN(J1),QMINAV(J1)
220:      !220:      !
221:      ! ds656> Either append point group or print stuff for HSA221:      ! ds656> Either append point group or print stuff for HSA
222:      IF(PRINT_MINDATA.OR.PRINT_PTGRP) THEN222:      IF(PRINT_MINDATA.OR.PRINT_PTGRP) THEN
223:         !223:         !
224:         WRITE(MYUNIT,'(A,I5,A)') &224:         WRITE(MYUNIT,'(A,I5,A)') &
225:              'finalio> ---| Post-processing minimum ',J1,' |-----------'225:              'finalio> ---| Pot-processing minimum ',J1,' |-----------'
226:         !226:         !
227:         CM(1:3) = 0.0D0; NSYMOPS=0; SYMOPS(:,:,:) = 0.0D0227:         CM(1:3) = 0.0D0; NSYMOPS=0; SYMOPS(:,:,:) = 0.0D0
228:         J3=1 ! Determine majority label/species228:         J3=1 ! Determine majority label/species
229:         DO J2=2,NSPECIES(0)229:         DO J2=2,NSPECIES(0)
230:            IF(NSPECIES(J2) > NSPECIES(J3)) J3 = J2230:            IF(NSPECIES(J2) > NSPECIES(J3)) J3 = J2
231:         ENDDO231:         ENDDO
232:         ! Determine the overall point-group (for ALL species!).232:         ! Determine the overall point-group (for ALL species!).
233:         CALL PGSYM( NATOMS, QMINP(J1,1:3*NATOMS), &233:         CALL PGSYM( NATOMS, QMINP(J1,1:3*NATOMS), &
234:              QMINT(J1,1:NATOMS), PGSYMTOLS, 2, J3,&234:              QMINT(J1,1:NATOMS), PGSYMTOLS, 2, J3,&
235:              CM, NSYMOPS, SYMOPS, FPGRP )235:              CM, NSYMOPS, SYMOPS, FPGRP )


r30264/QALCSearch.f90 2016-07-06 15:36:43.568144169 +0100 r30263/QALCSearch.f90 2016-07-06 15:36:44.688159315 +0100
 68:        'QALCS> Initial E= ',POTEL,' t= ',TIME-TSTART 68:        'QALCS> Initial E= ',POTEL,' t= ',TIME-TSTART
 69:   ! 69:   !
 70:   ! Count species with non-zero population 70:   ! Count species with non-zero population
 71:   BETA=0 71:   BETA=0
 72:   DO ALPHA=1,NSPECIES(0) 72:   DO ALPHA=1,NSPECIES(0)
 73:      IF(NSPECIES(ALPHA) > 0) BETA = BETA+1 73:      IF(NSPECIES(ALPHA) > 0) BETA = BETA+1
 74:   ENDDO 74:   ENDDO
 75:   NBLOCKS = BETA*(BETA-1)/2 75:   NBLOCKS = BETA*(BETA-1)/2
 76:   ! 76:   !
 77:   DONE = .FALSE. 77:   DONE = .FALSE.
  78:   NQ0 = NQTOT
 78:   ! 79:   !
 79:   ! The outer while loop is for QALCS_SYM or QALCS_SURF. 80:   ! The outer while loop is for QALCS_SYM or QALCS_SURF.
 80:   DO WHILE(.NOT. DONE)  81:   DO WHILE(.NOT. DONE) 
 81:      ! 82:      !
 82:      DONE = .TRUE. 83:      DONE = .TRUE.
 83:      ! 84:      !
  85:      L0(1:NATOMS) = INVATOMLISTS(1:NATOMS,1)
  86:      SEQLENGTH = 0
  87:      !
 84:      IF(QALCST) THEN ! Loop over inter-species swap types. 88:      IF(QALCST) THEN ! Loop over inter-species swap types.
 85:         ! 89:         !
 86:         L0(1:NATOMS) = INVATOMLISTS(1:NATOMS,1) 
 87:         SEQLENGTH = 0 
 88:         NQ0 = NQTOT 
 89:         ! 
 90:         IF(QALCSMODE == 0) THEN ! Steepest descent (slow) 90:         IF(QALCSMODE == 0) THEN ! Steepest descent (slow)
 91:            ! 91:            !
 92:            STEP = .TRUE. 92:            STEP = .TRUE.
 93:            DO WHILE(STEP) 93:            DO WHILE(STEP)
 94:               CALL SPAN_SWAPS(NP,ITER,TIME,BRUN,QDONE,SCREENC,STEP) 94:               CALL SPAN_SWAPS(NP,ITER,TIME,BRUN,QDONE,SCREENC,STEP)
 95:            ENDDO 95:            ENDDO
 96:            ! 96:            !
 97:         ELSEIF(QALCSMODE >= 1 .AND. QALCSMODE < 4) THEN  97:         ELSEIF(QALCSMODE >= 1 .AND. QALCSMODE < 4) THEN 
 98:            ! 98:            !
 99:            ! More efficient descents with each interspecies 99:            ! More efficient descents with each interspecies
134:         ELSEIF(QALCSMODE == 6) THEN134:         ELSEIF(QALCSMODE == 6) THEN
135:            !135:            !
136:            ! Steepest descent FLIP sequence..136:            ! Steepest descent FLIP sequence..
137:            STEP = .TRUE.137:            STEP = .TRUE.
138:            DO WHILE(STEP)138:            DO WHILE(STEP)
139:               CALL SPAN_FLIPS(NP,ITER,TIME,BRUN,QDONE,SCREENC,STEP)139:               CALL SPAN_FLIPS(NP,ITER,TIME,BRUN,QDONE,SCREENC,STEP)
140:            ENDDO140:            ENDDO
141:            !141:            !
142:         ELSEIF(QALCSMODE.EQ.7 .OR. QALCSMODE.EQ.8) THEN142:         ELSEIF(QALCSMODE.EQ.7 .OR. QALCSMODE.EQ.8) THEN
143:            !143:            !
144:            ! In modes 7 and 8 all interspecies *flips*144:            ! In modes 7 and 8 all interspecies flips
145:            ! are lumped into a single neighbourhood, which 145:            ! are lumped into a single neighbourhood, which 
146:            ! is then ranked by unquenched swap-gain (8) or 146:            ! is then ranked by unquenched swap-gain (8) or 
147:            ! scanned in random order (7).147:            ! scanned in random order (7).
148:            !148:            !
149:            STEP=.TRUE.149:            STEP=.TRUE.
150:            DO WHILE(STEP)150:            DO WHILE(STEP)
151:               CALL SCAN_FLIP_NBRHD(NP,ITER,TIME,BRUN,QDONE,SCREENC,STEP)151:               CALL SCAN_FLIP_NBRHD(NP,ITER,TIME,BRUN,QDONE,SCREENC,STEP)
152:            ENDDO152:            ENDDO
153:            !153:            !
154:         ELSE154:         ELSE
155:            !155:            !
156:            WRITE(MYUNIT,'(A)') 'QALCSearch> Bad QALCSMODE!'156:            WRITE(MYUNIT,'(A)') 'QALCSearch> Bad QALCSMODE!'
157:            STOP157:            STOP
158:            !158:            !
159:         ENDIF159:         ENDIF
160:         !160:         !
161:         !ds656> Testing 
162:         ! WRITE(MYUNIT,'(A)') 'QALCS> Final permutation:' 
163:         ! BETA=0 
164:         ! DO ALPHA=1,NATOMS 
165:         !    WRITE(MYUNIT,'(I3)',ADVANCE='NO') INVATOMLISTS(ALPHA,1) 
166:         !    IF(INVATOMLISTS(ALPHA,1) == 1) BETA=BETA+1 
167:         ! ENDDO 
168:         ! WRITE(MYUNIT,*) 
169:         ! IF(BETA /= NSPECIES(1)) THEN 
170:         !    WRITE(MYUNIT,'(A,I4)') 'QALCS_ab> Bad count for type-1:',BETA 
171:         ! ENDIF 
172:         !<ds656 End of testing. 
173:         ! 
174:         CALL CALC_HAMMING_DISTANCE(NATOMS,L0(1:NATOMS),& 
175:              INVATOMLISTS(1:NATOMS,1),ALPHA) 
176:         ! 
177:         CALL MYCPU_TIME(TIME) 
178:         WRITE(MYUNIT,'(A,F20.10,A,I9,A,F11.1)') & 
179:              'QALCS> Biminimum E= ',POTEL, & 
180:              ' after ',NQTOT-NQ0,' quenches t= ',TIME-TSTART 
181:         WRITE(MYUNIT,'(A,I5,A,I5)') & 
182:              'QALCS> Swap-sequence length: ',SEQLENGTH,& 
183:              ' Hamming distance: ',ALPHA 
184:         ! 
185:      ENDIF161:      ENDIF
186:      !162:      !
187:      ! Save multminimum163:      ! Save multminimum
188:      IF(SAVEMULTIMINONLY) THEN164:      IF(SAVEMULTIMINONLY) THEN
189:         CALL GSAVEIT_MC(POTEL,COORDS(1:3*NATOMS,NP), &165:         CALL GSAVEIT_MC(POTEL,COORDS(1:3*NATOMS,NP), &
190:              INVATOMLISTS(1:NATOMS,1), NP)166:              INVATOMLISTS(1:NATOMS,1), NP)
191:      ENDIF          167:      ENDIF
192:      !168:      !
193:      IF(QALCS_SYMT.OR.QALCS_SURFT) THEN169:      !ds656> Testing
194:         E0 = POTEL170:      ! WRITE(MYUNIT,'(A)') 'QALCS> Final permutation:'
195:         NQ0 = NQTOT171:      ! BETA=0
196:         IF(QALCS_SYMT) THEN ! Symmetrisation scheme172:      ! DO ALPHA=1,NATOMS
197:            CALL QALCS_SYM(NP,ITER,TIME,BRUN,QDONE,SCREENC)173:      !    WRITE(MYUNIT,'(I3)',ADVANCE='NO') INVATOMLISTS(ALPHA,1)
198:         ENDIF174:      !    IF(INVATOMLISTS(ALPHA,1) == 1) BETA=BETA+1
199:         IF(QALCS_SURFT) THEN ! DLS-like surface optimisation.175:      ! ENDDO
200:            CALL QALCS_SURF(NP,ITER,TIME,BRUN,QDONE,SCREENC)176:      ! WRITE(MYUNIT,*)
201:         ENDIF177:      ! IF(BETA /= NSPECIES(1)) THEN
202:         IF( POTEL < E0 - ECONV .AND. QALCST) DONE = .FALSE.178:      !    WRITE(MYUNIT,'(A,I4)') 'QALCS_ab> Bad count for type-1:',BETA
203:         CALL MYCPU_TIME(TIME)179:      ! ENDIF
204:         WRITE(MYUNIT,'(A,F20.10,A,I9,A,F11.1)') &180:      !<ds656 End of testing.
205:              'QALCS> Refined E= ',POTEL, &181:      !
206:              ' after ',NQTOT-NQ0,' quenches t= ',TIME-TSTART        182:      CALL CALC_HAMMING_DISTANCE(NATOMS,L0(1:NATOMS),&
 183:           INVATOMLISTS(1:NATOMS,1),ALPHA)
 184:      !
 185:      CALL MYCPU_TIME(TIME)
 186:      WRITE(MYUNIT,'(A,F20.10,A,I9,A,F11.1)') &
 187:           'QALCS> Biminimum E= ',POTEL, &
 188:           ' after ',NQTOT-NQ0,' quenches t= ',TIME-TSTART
 189:      WRITE(MYUNIT,'(A,I5,A,I5)') &
 190:           'QALCS> Swap-sequence length: ',SEQLENGTH,&
 191:           ' Hamming distance: ',ALPHA
 192:           
 193:      !
 194:      E0 = POTEL
 195:      IF(QALCS_SYMT) THEN ! Symmetrisation scheme
 196:         CALL QALCS_SYM(NP,ITER,TIME,BRUN,QDONE,SCREENC)
 197:      ENDIF
 198:      IF(QALCS_SURFT) THEN ! Perform DLS-like surface optimisation.
 199:         CALL QALCS_SURF(NP,ITER,TIME,BRUN,QDONE,SCREENC)
207:      ENDIF200:      ENDIF
 201:      IF( POTEL < E0 - ECONV .AND. QALCST) DONE = .FALSE.
208:      !202:      !
209:   ENDDO203:   ENDDO
210:   !204:   !
211:   CALL MYCPU_TIME(TIME) 
212:   WRITE(MYUNIT,'(A,F20.10,A,F11.1)') & 
213:        'QALCS> Final E= ',POTEL,' t= ',TIME-TSTART 
214:   ! 
215:   RETURN205:   RETURN
216:   !206:   !
217: END SUBROUTINE QALCS207: END SUBROUTINE QALCS
218: !208: !
219: !=============================================================209: !=============================================================
220: !210: !
221: SUBROUTINE QALCS_AB(NP,ITER,TIME,BRUN,QDONE,SCREENC,AB)211: SUBROUTINE QALCS_AB(NP,ITER,TIME,BRUN,QDONE,SCREENC,AB)
222:   !212:   !
223:   ! QALCS for a particular AB-type swap213:   ! QALCS for a particular AB-type swap
224:   !214:   !


r30264/QALCS_surface.f90 2016-07-06 15:36:43.200139196 +0100 r30263/QALCS_surface.f90 2016-07-06 15:36:44.316154286 +0100
 43:   ! 43:   !
 44:   ! Energy of COORDS from last quench. Common block in QUENCH. 44:   ! Energy of COORDS from last quench. Common block in QUENCH.
 45:   COMMON /MYPOT/ POTEL 45:   COMMON /MYPOT/ POTEL
 46:   ! Total quench count. Commom block in MC. 46:   ! Total quench count. Commom block in MC.
 47:   COMMON /TOT/ NQTOT 47:   COMMON /TOT/ NQTOT
 48:   ! 48:   !
 49:   X(1:3*NATOMS) = COORDS(1:3*NATOMS,NP) 49:   X(1:3*NATOMS) = COORDS(1:3*NATOMS,NP)
 50:   E = POTEL 50:   E = POTEL
 51:   COMPLETE = .FALSE. 51:   COMPLETE = .FALSE.
 52:   ! 52:   !
 53:   !WRITE(MYUNIT,'(A,F20.10,A,F11.1)') & 53:   WRITE(MYUNIT,'(A,F20.10,A,F11.1)') &
 54:   !     'QALCS_surf> Initial E= ',POTEL,' t= ',TIME-TSTART 54:        'QALCS_surf> Initial E= ',POTEL,' t= ',TIME-TSTART
 55:   ! 55:   !
 56:   DO WHILE (.NOT. COMPLETE) 56:   DO WHILE (.NOT. COMPLETE)
 57:      ! 57:      !
 58:      COMPLETE = .TRUE. 58:      COMPLETE = .TRUE.
 59:      ! 59:      !
 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
111:            ELSE ! revert111:            ELSE ! revert
112:               POTEL = E112:               POTEL = E
113:               COORDS(1:3*NATOMS,NP) = X(1:3*NATOMS)113:               COORDS(1:3*NATOMS,NP) = X(1:3*NATOMS)
114:            ENDIF114:            ENDIF
115:            !115:            !
116:         ENDDO116:         ENDDO
117:      ENDDO SITES117:      ENDDO SITES
118:      !118:      !
119:   END DO119:   END DO
120:   !120:   !
121:   !WRITE(MYUNIT,'(A,F20.10,A,F11.1)') &121:   WRITE(MYUNIT,'(A,F20.10,A,F11.1)') &
122:   !     'QALCS_surf> Final E= ',POTEL,' t= ',TIME-TSTART  122:        'QALCS_surf> Final E= ',POTEL,' t= ',TIME-TSTART  
123:   !123:   !
124:   RETURN124:   RETURN
125:   !125:   !
126: END SUBROUTINE QALCS_SURF126: END SUBROUTINE QALCS_SURF
127: !127: !
128: !=================================================================128: !=================================================================
129: !129: !
130: SUBROUTINE BUILD_NNLISTS(NP, LIST, NNDIST)130: SUBROUTINE BUILD_NNLISTS(NP, LIST, NNDIST)
131:   !131:   !
132:   ! This non-standard way of builiding NNLISTS is tailored132:   ! This non-standard way of builiding NNLISTS is tailored


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0