hdiff output

r29129/atomlists.f90 2015-11-17 23:33:22.868811446 +0000 r29128/atomlists.f90 2015-11-17 23:33:24.628835056 +0000
 14: ! 14: !
 15: !   You should have received a copy of the GNU General Public License 15: !   You should have received a copy of the GNU General Public License
 16: !   along with this program; if not, write to the Free Software 16: !   along with this program; if not, write to the Free Software
 17: !   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 17: !   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 18: ! 18: !
 19: ! ds656> Routine for resetting ATOMLISTS so that atoms are 19: ! ds656> Routine for resetting ATOMLISTS so that atoms are
 20: ! listed as either all mobile or all frozen, and grouped by  20: ! listed as either all mobile or all frozen, and grouped by 
 21: ! type in order of appearance (arbitrary choice). 21: ! type in order of appearance (arbitrary choice).
 22: SUBROUTINE RESET_ATOMLISTS(IGROUP) 22: SUBROUTINE RESET_ATOMLISTS(IGROUP)
 23:   ! 23:   !
 24:   USE COMMONS, ONLY : ATOMLISTS, INVATOMLISTS, NATOMS, NSPECIES, & 24:   USE COMMONS, ONLY : ATOMLISTS, INVATOMLISTS, NATOMS, NSPECIES, MYUNIT
 25:        SPECMASST, SPECMASS, ATMASS, MYUNIT 
 26:   ! 25:   !
 27:   IMPLICIT NONE 26:   IMPLICIT NONE
 28:   ! 27:   !
 29:   INTEGER, INTENT(IN) :: IGROUP 28:   INTEGER, INTENT(IN) :: IGROUP
 30:   ! 29:   !
 31:   INTEGER :: I, J, K 30:   INTEGER :: I, J, K
 32:   ! 31:   !
 33:   ! Indices in ATOMLISTS: 32:   ! Indices in ATOMLISTS:
 34:   ! 1) first index groups atom types / species: 1 -> A, 2 -> B, ... 33:   ! 1) first index groups atom types / species: 1 -> A, 2 -> B, ...
 35:   ! 2) second index groups mobile (1) and frozen (2) atoms, 34:   ! 2) second index groups mobile (1) and frozen (2) atoms,
 54:      ENDDO 53:      ENDDO
 55:   ENDDO 54:   ENDDO
 56:   ! 55:   !
 57:   ! Sanity check 56:   ! Sanity check
 58:   IF(NATOMS /= K) THEN 57:   IF(NATOMS /= K) THEN
 59:      WRITE(MYUNIT, '(A)') 'reset_atomlists> Inconsistent atom count!' 58:      WRITE(MYUNIT, '(A)') 'reset_atomlists> Inconsistent atom count!'
 60:      !WRITE(MYUNIT, *) NATOMS, K, NSPECIES(0) 59:      !WRITE(MYUNIT, *) NATOMS, K, NSPECIES(0)
 61:      STOP 60:      STOP
 62:   ENDIF 61:   ENDIF
 63:   ! 62:   !
 64:   IF(SPECMASST) THEN 
 65:      WRITE(MYUNIT,'(A)') & 
 66:           'initialization> (Re)setting masses in accord with SPECMASS:' 
 67:      DO I=1,NATOMS 
 68:         ATMASS(I) = SPECMASS(INVATOMLISTS(I,1)) 
 69:         WRITE(MYUNIT,*) ATMASS(I) 
 70:      ENDDO 
 71:   ENDIF 
 72:   ! 
 73:   RETURN 
 74:   ! 
 75: END SUBROUTINE RESET_ATOMLISTS 63: END SUBROUTINE RESET_ATOMLISTS
 76: ! 64: !
 77: ! ds656> Routine for resetting ATOMLISTS in accord with provided 65: ! ds656> Routine for resetting ATOMLISTS in accord with provided
 78: ! list of atomic labels.  66: ! list of atomic labels. 
 79: SUBROUTINE SET_ATOMLISTS(LABELS,IGROUP) 67: SUBROUTINE SET_ATOMLISTS(LABELS,IGROUP)
 80:   ! 68:   !
 81:   USE COMMONS, ONLY : ATOMLISTS, INVATOMLISTS, NATOMS, NSPECIES, & 69:   USE COMMONS, ONLY : ATOMLISTS, INVATOMLISTS, NATOMS, NSPECIES, MYUNIT, LFLIPST
 82:        SPECMASST, SPECMASS, ATMASS, MYUNIT, LFLIPST 
 83:   ! 70:   !
 84:   IMPLICIT NONE 71:   IMPLICIT NONE
 85:   ! 72:   !
 86:   INTEGER, INTENT(IN) :: LABELS(NATOMS), IGROUP 73:   INTEGER, INTENT(IN) :: LABELS(NATOMS), IGROUP
 87:   ! 74:   !
 88:   INTEGER :: I,J,TYPECOUNTS(1:NSPECIES(0)) 75:   INTEGER :: I,J,TYPECOUNTS(1:NSPECIES(0))
 89:   ! 76:   !
 90:   ATOMLISTS(:,:,:) = 0 77:   ATOMLISTS(:,:,:) = 0
 91:   INVATOMLISTS(:,:)=0 78:   INVATOMLISTS(:,:)=0
 92:   TYPECOUNTS(:) = 0 79:   TYPECOUNTS(:) = 0
 96:      ! 83:      !
 97:      J=LABELS(I) 84:      J=LABELS(I)
 98:      TYPECOUNTS(J) = TYPECOUNTS(J) + 1 85:      TYPECOUNTS(J) = TYPECOUNTS(J) + 1
 99:      ! 86:      !
100:      ATOMLISTS(J,IGROUP,0) = ATOMLISTS(J,IGROUP,0) + 1 87:      ATOMLISTS(J,IGROUP,0) = ATOMLISTS(J,IGROUP,0) + 1
101:      ATOMLISTS(J,IGROUP,ATOMLISTS(J,IGROUP,0)) = I 88:      ATOMLISTS(J,IGROUP,ATOMLISTS(J,IGROUP,0)) = I
102:      ! 89:      !
103:      INVATOMLISTS(I,1) = J 90:      INVATOMLISTS(I,1) = J
104:      INVATOMLISTS(I,2) = IGROUP 91:      INVATOMLISTS(I,2) = IGROUP
105:      INVATOMLISTS(I,3) = ATOMLISTS(J,IGROUP,0) 92:      INVATOMLISTS(I,3) = ATOMLISTS(J,IGROUP,0)
106:      ! 
107:      IF(SPECMASST) ATMASS(I) = SPECMASS(J) 
108:      ! 
109:   END DO 93:   END DO
110:   ! 94:   !
111:   DO I=1,NSPECIES(0) 95:   DO I=1,NSPECIES(0)
112:      IF(LFLIPST) THEN 96:      IF(LFLIPST) THEN
113:         NSPECIES(I) = TYPECOUNTS(I) 97:         NSPECIES(I) = TYPECOUNTS(I)
114:      ELSE IF(NSPECIES(I) /= TYPECOUNTS(I)) THEN 98:      ELSE IF(NSPECIES(I) /= TYPECOUNTS(I)) THEN
115:         WRITE(MYUNIT,'(A, I2, A, I5, I5)') & 99:         WRITE(MYUNIT,'(A, I2, A, I5, I5)') &
116:              'set_atomlists> Inconsistent counts for atom-type ', &100:              'set_atomlists> Inconsistent counts for atom-type ', &
117:              I,' ,these numbers should equal:', NSPECIES(I), &101:              I,' ,these numbers should equal:', NSPECIES(I), &
118:              TYPECOUNTS(I)102:              TYPECOUNTS(I)


r29129/commons.f90 2015-11-17 23:33:23.060814022 +0000 r29128/commons.f90 2015-11-17 23:33:24.820837629 +0000
100:      &        PROJIT, PROJIHT, LEAPDIHE, DUMPQUT, DUMPBESTT, LJSITE, BLJSITE, LJSITEATTR, DUMPSTEPST, &100:      &        PROJIT, PROJIHT, LEAPDIHE, DUMPQUT, DUMPBESTT, LJSITE, BLJSITE, LJSITEATTR, DUMPSTEPST, &
101:      &        AMBERT, RANDOMSEEDT, PYGPERIODICT, LJCAPSIDT, PYBINARYT, SWAPMOVEST, MOVABLEATOMST, LIGMOVET,DUMPSTRUCTURES, &101:      &        AMBERT, RANDOMSEEDT, PYGPERIODICT, LJCAPSIDT, PYBINARYT, SWAPMOVEST, MOVABLEATOMST, LIGMOVET,DUMPSTRUCTURES, &
102:      &        LJSITECOORDST, VGW, ACKLANDT, G46, DF1T, PULLT, LOCALSAMPLET, CSMT, A9INTET, INTERESTORE, COLDFUSION, &102:      &        LJSITECOORDST, VGW, ACKLANDT, G46, DF1T, PULLT, LOCALSAMPLET, CSMT, A9INTET, INTERESTORE, COLDFUSION, &
103:      &        CSMGUIDET, MULTISITEPYT, CHAPERONINT, AVOIDRESEEDT, OHCELLT, UNFREEZEFINALQ, PERCOLATET, PERCT, PERCACCEPTED,&103:      &        CSMGUIDET, MULTISITEPYT, CHAPERONINT, AVOIDRESEEDT, OHCELLT, UNFREEZEFINALQ, PERCOLATET, PERCT, PERCACCEPTED,&
104:      &        GENALT, MINDENSITYT, RESTRICTREGION, RESTRICTREGIONTEST, RESTRICTCYL, ACK1, ACK2, HARMONICF,&104:      &        GENALT, MINDENSITYT, RESTRICTREGION, RESTRICTREGIONTEST, RESTRICTCYL, ACK1, ACK2, HARMONICF,&
105:      &        HARMONICDONTMOVE, DUMPUNIQUE, FREEZESAVE, TBP, RBSYMT, PTMCDUMPSTRUCT, PTMCDUMPENERT, PYCOLDFUSION, MONITORT,&105:      &        HARMONICDONTMOVE, DUMPUNIQUE, FREEZESAVE, TBP, RBSYMT, PTMCDUMPSTRUCT, PTMCDUMPENERT, PYCOLDFUSION, MONITORT,&
106:      &        CHARMMDFTBT, PERMINVOPT, BLOCKMOVET, MAXERISE_SET, PYT, BINARY_EXAB, CHIROT, SANDBOXT, &106:      &        CHARMMDFTBT, PERMINVOPT, BLOCKMOVET, MAXERISE_SET, PYT, BINARY_EXAB, CHIROT, SANDBOXT, &
107:      &        RESERVOIRT, DISTOPT, ONEDAPBCT, ONEDPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, THREEDPBCT, RATIOT, &107:      &        RESERVOIRT, DISTOPT, ONEDAPBCT, ONEDPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, THREEDPBCT, RATIOT, &
108:      &        PTRANDOM, PTINTERVAL, PTSINGLE, PTSETS, CHEMSHIFT, CHEMSHIFT2, CSH, DEBUGss2029, UNIFORMMOVE, RANSEEDT, &108:      &        PTRANDOM, PTINTERVAL, PTSINGLE, PTSETS, CHEMSHIFT, CHEMSHIFT2, CSH, DEBUGss2029, UNIFORMMOVE, RANSEEDT, &
109:      &        TTM3T, NOINVERSION, RIGIDCONTOURT, UPDATERIGIDREFT, HYBRIDMINT, COMPRESSRIGIDT, MWFILMT, &109:      &        TTM3T, NOINVERSION, RIGIDCONTOURT, UPDATERIGIDREFT, HYBRIDMINT, COMPRESSRIGIDT, MWFILMT, &
110:      &        SUPPRESST, MFETT, POLIRT, QUIPT, SWPOTT, MWPOTT, REPMATCHT, GLJT, MLJT, READMASST, SPECMASST, NEWTSALLIST, &110:      &        SUPPRESST, MFETT, POLIRT, QUIPT, SWPOTT, MWPOTT, REPMATCHT, GLJT, MLJT, READMASST, SETMASST, NEWTSALLIST, &
111:      &        PHI4MODELT, CUDAT, CUDATIMET, AMBER12T, ENERGY_DECOMPT, NEWMOVEST, DUMPMINT, MBPOLT, MOLECULART, GCBHT, SEMIGRAND_MUT, USEROT, & 111:      &        PHI4MODELT, CUDAT, CUDATIMET, AMBER12T, ENERGY_DECOMPT, NEWMOVEST, DUMPMINT, MBPOLT, MOLECULART, GCBHT, SEMIGRAND_MUT, USEROT, & 
112:      &        SAVEMULTIMINONLY, GRADPROBLEMT, INTLJT, CONDATT, &112:      &        SAVEMULTIMINONLY, GRADPROBLEMT, INTLJT, CONDATT, &
113:      &        INTCONSTRAINTT, INTFREEZET, CHECKCONINT, CONCUTABST, CONCUTFRACT, INTERPCOSTFUNCTION, &113:      &        INTCONSTRAINTT, INTFREEZET, CHECKCONINT, CONCUTABST, CONCUTFRACT, INTERPCOSTFUNCTION, &
114:      &        RBAAT, FREEZENODEST, DUMPINTEOS, DUMPINTXYZ, QCIPOTT114:      &        RBAAT, FREEZENODEST, DUMPINTEOS, DUMPINTXYZ, QCIPOTT
115: !115: !
116:       DOUBLE PRECISION, ALLOCATABLE :: SEMIGRAND_MU(:) 116:       DOUBLE PRECISION, ALLOCATABLE :: SEMIGRAND_MU(:) 
117:       DOUBLE PRECISION, ALLOCATABLE:: ATMASS(:)117:       DOUBLE PRECISION, ALLOCATABLE:: ATMASS(:) 
118:       DOUBLE PRECISION, ALLOCATABLE:: SPECMASS(:)  
119: 118: 
120: ! csw34> FREEZEGROUP variables119: ! csw34> FREEZEGROUP variables
121: !120: !
122:       INTEGER :: GROUPCENTRE121:       INTEGER :: GROUPCENTRE
123:       DOUBLE PRECISION :: GROUPRADIUS122:       DOUBLE PRECISION :: GROUPRADIUS
124:       CHARACTER (LEN=2) :: FREEZEGROUPTYPE123:       CHARACTER (LEN=2) :: FREEZEGROUPTYPE
125:       LOGICAL :: FREEZEGROUPT124:       LOGICAL :: FREEZEGROUPT
126: ! END125: ! END
127: 126: 
128: !127: !


r29129/finalio.f90 2015-11-17 23:33:23.248816544 +0000 r29128/finalio.f90 2015-11-17 23:33:25.008840153 +0000
566: !566: !
567: ! this writes 'lowest' in xyz (Xmakemol) format567: ! this writes 'lowest' in xyz (Xmakemol) format
568: !568: !
569:             WRITE(MYUNIT,'(A,I6,A)') ' in finalio BLN block MYUNIT2=',MYUNIT2569:             WRITE(MYUNIT,'(A,I6,A)') ' in finalio BLN block MYUNIT2=',MYUNIT2
570:             DO J2=1,NATOMS570:             DO J2=1,NATOMS
571:                 WRITE(MYUNIT2,'(2A1,1X,3F20.10)') BEADLETTER(J2),'L',(QMINP(J1,3*(J2-1)+J3),J3=1,3)571:                 WRITE(MYUNIT2,'(2A1,1X,3F20.10)') BEADLETTER(J2),'L',(QMINP(J1,3*(J2-1)+J3),J3=1,3)
572:             ENDDO572:             ENDDO
573:         ELSE IF(QALCST.OR.MULTIPERMT.OR.MLJT.OR.MGUPTAT.OR.MSCT) THEN573:         ELSE IF(QALCST.OR.MULTIPERMT.OR.MLJT.OR.MGUPTAT.OR.MSCT) THEN
574:            !574:            !
575:            CALL SET_ATOMLISTS(QMINT(J1,1:NATOMS),1)575:            CALL SET_ATOMLISTS(QMINT(J1,1:NATOMS),1)
576:            IF(SPECMASST) THEN  
577:               EDUMMY = SUM(ATMASS) 
578:               WRITE(MYUNIT,'(A,I6,A,E20.10)') & 
579:                    'finalio> Min ',J1,' has total mass ', EDUMMY 
580:            ENDIF 
581:            ! 
582:            IF(STRESST) CALL CALC_STRESS(QMINP(J1,1:3*NATOMS),EDUMMY)576:            IF(STRESST) CALL CALC_STRESS(QMINP(J1,1:3*NATOMS),EDUMMY)
583:            !577:            !
584:            DO J2=1,NSPECIES(0) !ds656> Should not exceed 10578:            DO J2=1,NSPECIES(0) !ds656> Should not exceed 10
585:               IF(SPECLABELST) THEN579:               IF(SPECLABELST) THEN
586:                  ATOM_TYPE = SPECLABELS(J2)580:                  ATOM_TYPE = SPECLABELS(J2)
587:               ELSE581:               ELSE
588:                  WRITE(ATOM_TYPE,'(I1)') J2582:                  WRITE(ATOM_TYPE,'(I1)') J2
589:                  ATOM_TYPE='L' // TRIM(ADJUSTL(ATOM_TYPE))583:                  ATOM_TYPE='L' // TRIM(ADJUSTL(ATOM_TYPE))
590:               ENDIF584:               ENDIF
591:               DO J3=1,ATOMLISTS(J2,1,0)585:               DO J3=1,ATOMLISTS(J2,1,0)


r29129/initialization.f90 2015-11-17 23:33:23.436819060 +0000 r29128/initialization.f90 2015-11-17 23:33:25.200842712 +0000
356: ENDIF356: ENDIF
357: !357: !
358: IF (POLIRT) THEN358: IF (POLIRT) THEN
359:    CALL POLIRINIT359:    CALL POLIRINIT
360: ENDIF360: ENDIF
361: !361: !
362: IF (MIEFT) THEN362: IF (MIEFT) THEN
363:    CALL MIEF_INI()363:    CALL MIEF_INI()
364: ENDIF364: ENDIF
365: !365: !
366: RETURN 
367: ! 
368: END SUBROUTINE INITIALIZATIONS366: END SUBROUTINE INITIALIZATIONS


r29129/io1.f 2015-11-17 23:33:23.628821639 +0000 r29128/io1.f 2015-11-17 23:33:25.392845293 +0000
286:          ENDIF286:          ENDIF
287:          WRITE(MYUNIT,'(A,I4,A,I4,A)') ' Binary Lennard-Jones cluster: ',NTYPEA,' A atoms and ',NATOMS-NTYPEA,' B atoms'287:          WRITE(MYUNIT,'(A,I4,A,I4,A)') ' Binary Lennard-Jones cluster: ',NTYPEA,' A atoms and ',NATOMS-NTYPEA,' B atoms'
288:          WRITE(MYUNIT,'(A,F10.4,A,F10.4,A,F10.4,A,F10.4)')288:          WRITE(MYUNIT,'(A,F10.4,A,F10.4,A,F10.4,A,F10.4)')
289:      1     ' eps(AA)=1, sigma(AA)=1, eps(AB)=',EPSAB,' eps(BB)=',EPSBB,' sigma(AB)=',SIGAB,' sigma(BB)=',SIGBB289:      1     ' eps(AA)=1, sigma(AA)=1, eps(AB)=',EPSAB,' eps(BB)=',EPSBB,' sigma(AB)=',SIGAB,' sigma(BB)=',SIGBB
290:          WRITE(MYUNIT,'(A)') ' No cutoff.'290:          WRITE(MYUNIT,'(A)') ' No cutoff.'
291: !291: !
292: ! Sanity check for atoms of different elements and masses. If symmetrize is set292: ! Sanity check for atoms of different elements and masses. If symmetrize is set
293: ! then these must be consistent or we may permute atoms of different elements293: ! then these must be consistent or we may permute atoms of different elements
294: ! and change the energy in the Markov chain accidentally.294: ! and change the energy in the Markov chain accidentally.
295: !295: !
296:          IF(.NOT. SPECMASST .AND. NTYPEA < NATOMS) THEN !ds656> Check when SPECMASST=.FALSE.296:          IF(.NOT. SETMASST .AND. NTYPEA < NATOMS) THEN !ds656> Check when SETMASST=.FALSE.
297:             DO J1=2,NTYPEA297:             DO J1=2,NTYPEA
298:                IF (ABS(ATMASS(J1)-ATMASS(1)).GT.1.0D-10) THEN298:                IF (ABS(ATMASS(J1)-ATMASS(1)).GT.1.0D-10) THEN
299:                   WRITE(MYUNIT,'(A,I6,A,2G20.10)') 'io1> WARNING *** atom masses for 1 and ',J2,' are ',ATMASS(1),ATMASS(J2)299:                   WRITE(MYUNIT,'(A,I6,A,2G20.10)') 'io1> WARNING *** atom masses for 1 and ',J2,' are ',ATMASS(1),ATMASS(J2)
300:                ENDIF300:                ENDIF
301:             ENDDO301:             ENDDO
302:             IF (ABS(ATMASS(1)-ATMASS(NTYPEA+1)).LT.1.0D-10) THEN302:             IF (ABS(ATMASS(1)-ATMASS(NTYPEA+1)).LT.1.0D-10) THEN
303:                WRITE(MYUNIT,'(A,2G20.10)') 'io1> WARNING *** atom masses for A and B are ',ATMASS(1),ATMASS(NTYPEA+1)303:                WRITE(MYUNIT,'(A,2G20.10)') 'io1> WARNING *** atom masses for A and B are ',ATMASS(1),ATMASS(NTYPEA+1)
304:                IF (SYMMETRIZE.AND.READMASST) THEN304:                IF (SYMMETRIZE.AND.READMASST) THEN
305:                   WRITE(MYUNIT,'(A)') 'io1> ERROR *** atom masses are incompatible with SYMMETRIZE keyword'305:                   WRITE(MYUNIT,'(A)') 'io1> ERROR *** atom masses are incompatible with SYMMETRIZE keyword'
306:                   STOP306:                   STOP
315:          ELSE315:          ELSE
316:             WRITE(MYUNIT,'(A)') 'Atom masses will be set to species indices.'316:             WRITE(MYUNIT,'(A)') 'Atom masses will be set to species indices.'
317:          ENDIF !... <ds656317:          ENDIF !... <ds656
318:       ELSE IF (GLJT) THEN318:       ELSE IF (GLJT) THEN
319: ! 319: ! 
320: ! Sanity check for atoms of different elements and masses. If symmetrize is set320: ! Sanity check for atoms of different elements and masses. If symmetrize is set
321: ! then these must be consistent or we may permute atoms of different elements321: ! then these must be consistent or we may permute atoms of different elements
322: ! and change the energy in the Markov chain accidentally.322: ! and change the energy in the Markov chain accidentally.
323: ! Not tested yet for GLJ and MLJ! DJW323: ! Not tested yet for GLJ and MLJ! DJW
324: !                 324: !                 
325:          IF(.NOT. SPECMASST) THEN !ds656> check when SPECMASST=.FALSE.325:          IF(.NOT. SETMASST) THEN !ds656> check when SETMASST=.FALSE.
326:             NSTART=1326:             NSTART=1
327:             NFINISH=NSPECIES(1)327:             NFINISH=NSPECIES(1)
328:             DO J2=1,NSPECIES(0)328:             DO J2=1,NSPECIES(0)
329:                DO J1=NSTART+1,NFINISH ! consistency check within set J2329:                DO J1=NSTART+1,NFINISH ! consistency check within set J2
330:                   IF (ABS(ATMASS(J1)-ATMASS(NSTART)).GT.1.0D-10) THEN330:                   IF (ABS(ATMASS(J1)-ATMASS(NSTART)).GT.1.0D-10) THEN
331:                      WRITE(MYUNIT,'(A,I6,A,2G20.10)') 'io1> WARNING *** atom masses for ',NSTART,' and ',J1,' are ',331:                      WRITE(MYUNIT,'(A,I6,A,2G20.10)') 'io1> WARNING *** atom masses for ',NSTART,' and ',J1,' are ',
332:      &                    ATMASS(NSTART),ATMASS(J1)332:      &                    ATMASS(NSTART),ATMASS(J1)
333:                   ENDIF333:                   ENDIF
334:                ENDDO334:                ENDDO
335:                NDUMMY=NFINISH335:                NDUMMY=NFINISH
361:      2         A,F10.4,A,F10.4)')361:      2         A,F10.4,A,F10.4)')
362:      3         'AAA=' ,AAA, 'AAB=' ,AAB, 'ABB=' ,ABB, 'PAA=' ,PAA,362:      3         'AAA=' ,AAA, 'AAB=' ,AAB, 'ABB=' ,ABB, 'PAA=' ,PAA,
363:      4         'PAB=' ,PAB, 'PBB=' ,PBB, 'QAA=' ,QAA, 'QAB=' ,QAB,363:      4         'PAB=' ,PAB, 'PBB=' ,PBB, 'QAA=' ,QAA, 'QAB=' ,QAB,
364:      5         'QBB=' ,QBB, 'ZAA=' ,ZAA, 'ZAB=' ,ZAB, 'ZBB=' ,ZBB,364:      5         'QBB=' ,QBB, 'ZAA=' ,ZAA, 'ZAB=' ,ZAB, 'ZBB=' ,ZBB,
365:      6         'R0AA=' ,R0AA, 'R0AB=' ,R0AB, 'R0BB=' ,R0BB365:      6         'R0AA=' ,R0AA, 'R0AB=' ,R0AB, 'R0BB=' ,R0BB
366: !366: !
367: ! Sanity check for atoms of different elements and masses. If symmetrize is set367: ! Sanity check for atoms of different elements and masses. If symmetrize is set
368: ! then these must be consistent or we may permute atoms of different elements368: ! then these must be consistent or we may permute atoms of different elements
369: ! and change the energy in the Markov chain accidentally.369: ! and change the energy in the Markov chain accidentally.
370: !370: !
371:          IF(.NOT. SPECMASST .AND. NTYPEA < NATOMS) THEN !ds656> check when SPECMASST=.FALSE.371:          IF(.NOT. SETMASST .AND. NTYPEA < NATOMS) THEN !ds656> check when SETMASST=.FALSE.
372:             DO J1=2,NTYPEA372:             DO J1=2,NTYPEA
373:                IF (ABS(ATMASS(J1)-ATMASS(1)).GT.1.0D-10) THEN373:                IF (ABS(ATMASS(J1)-ATMASS(1)).GT.1.0D-10) THEN
374:                   WRITE(MYUNIT,'(A,I6,A,2G20.10)') 'io1> WARNING *** atom masses for 1 and ',J1,' are ',ATMASS(1),ATMASS(J1)374:                   WRITE(MYUNIT,'(A,I6,A,2G20.10)') 'io1> WARNING *** atom masses for 1 and ',J1,' are ',ATMASS(1),ATMASS(J1)
375:                ENDIF375:                ENDIF
376:             ENDDO376:             ENDDO
377:             IF (ABS(ATMASS(1)-ATMASS(NTYPEA+1)).LT.1.0D-10) THEN377:             IF (ABS(ATMASS(1)-ATMASS(NTYPEA+1)).LT.1.0D-10) THEN
378:                WRITE(MYUNIT,'(A,2G20.10)') 'io1> WARNING *** atom masses for A and B are ',ATMASS(1),ATMASS(NTYPEA+1)378:                WRITE(MYUNIT,'(A,2G20.10)') 'io1> WARNING *** atom masses for A and B are ',ATMASS(1),ATMASS(NTYPEA+1)
379:                IF (SYMMETRIZE.AND.READMASST) THEN379:                IF (SYMMETRIZE.AND.READMASST) THEN
380:                   WRITE(MYUNIT,'(A)') 'io1> ERROR *** atom masses are incompatible with SYMMETRIZE keyword'380:                   WRITE(MYUNIT,'(A)') 'io1> ERROR *** atom masses are incompatible with SYMMETRIZE keyword'
381:                   STOP381:                   STOP


r29129/keywords.f 2015-11-17 23:33:23.844824531 +0000 r29128/keywords.f 2015-11-17 23:33:25.588847922 +0000
415:       SOFT_SPHERE = .FALSE.415:       SOFT_SPHERE = .FALSE.
416:       SOFT_SPHERE_NTYPEA = 0416:       SOFT_SPHERE_NTYPEA = 0
417:       BINARY=.FALSE.417:       BINARY=.FALSE.
418:       BINARY_EXAB=.FALSE.418:       BINARY_EXAB=.FALSE.
419:       SHIFTCUT=.FALSE.419:       SHIFTCUT=.FALSE.
420:       FAL=.FALSE.420:       FAL=.FALSE.
421:       FNI=.FALSE.421:       FNI=.FALSE.
422:       PHI4MODELT=.FALSE.422:       PHI4MODELT=.FALSE.
423:       423:       
424:       READMASST=.FALSE.424:       READMASST=.FALSE.
425:       SPECMASST=.FALSE.425:       SETMASST=.FALSE.
426: 426: 
427: !     AMBER=.FALSE.427: !     AMBER=.FALSE.
428:       AMHT=.FALSE.428:       AMHT=.FALSE.
429:       NINT_AMH=1429:       NINT_AMH=1
430:       DPARAM=1.0D0430:       DPARAM=1.0D0
431:       FAKEWATER=.FALSE.431:       FAKEWATER=.FALSE.
432:       AMCUT= .FALSE.432:       AMCUT= .FALSE.
433:       MGBWATER=.FALSE.433:       MGBWATER=.FALSE.
434:       BIN=.FALSE.434:       BIN=.FALSE.
435:       AMBERSEED= .FALSE.435:       AMBERSEED= .FALSE.
5087:          ELSE5087:          ELSE
5088:             WRITE(MYUNIT,'(A)')' keywords> ERROR *** missing file rbsymops'5088:             WRITE(MYUNIT,'(A)')' keywords> ERROR *** missing file rbsymops'
5089:             STOP5089:             STOP
5090:          ENDIF5090:          ENDIF
5091: !5091: !
5092: !  If READMASS is specified we read the masses from file masses.5092: !  If READMASS is specified we read the masses from file masses.
5093: !5093: !
5094:       ELSE IF (WORD.EQ.'READMASS') THEN5094:       ELSE IF (WORD.EQ.'READMASS') THEN
5095:          READMASST=.TRUE.5095:          READMASST=.TRUE.
5096: 5096: 
5097: ! If SPECMASS is specified we read the mass for each species.5097: ! If SETMASS is specified, then set the masses to the species indices.
5098:       ELSE IF(WORD.EQ.'SPECMASS') THEN5098:       ELSE IF(WORD.EQ.'SETMASS') THEN
5099:          SPECMASST=.TRUE.5099:          SETMASST=.TRUE.
5100:          IF(ALLOCATED(SPECMASS)) DEALLOCATE(SPECMASS) 
5101:          ALLOCATE(SPECMASS(1:NSPECIES(0))) 
5102:          IF(NITEMS .GT. NSPECIES(0)) THEN 
5103:             DO J1=1,NSPECIES(0) 
5104:                CALL READF(SPECMASS(J1)) 
5105:             ENDDO 
5106:          ELSE 
5107:             WRITE(MYUNIT,'(A)')' keywords> ERROR *** not enough arguments for SPECMASS' 
5108:             STOP 
5109:          ENDIF 
5110: !5100: !
5111: ! Low temperature replica will use min.data and points.min entries.5101: ! Low temperature replica will use min.data and points.min entries.
5112: !5102: !
5113:       ELSE IF (WORD.EQ.'RESERVOIR') THEN5103:       ELSE IF (WORD.EQ.'RESERVOIR') THEN
5114:          RESERVOIRT=.TRUE.5104:          RESERVOIRT=.TRUE.
5115:          IF (NITEMS.GT.2) THEN5105:          IF (NITEMS.GT.2) THEN
5116:             CALL READI(USERES)5106:             CALL READI(USERES)
5117:             CALL READF(RES_PSWAP)5107:             CALL READF(RES_PSWAP)
5118:          ENDIF5108:          ENDIF
5119:          INQUIRE(FILE='min.data',EXIST=YESNO)5109:          INQUIRE(FILE='min.data',EXIST=YESNO)


r29129/main.F 2015-11-17 23:33:24.036827108 +0000 r29128/main.F 2015-11-17 23:33:25.780850496 +0000
565:       DEALLOCATE(FROZEN)565:       DEALLOCATE(FROZEN)
566:       DEALLOCATE(FROZENRES)566:       DEALLOCATE(FROZENRES)
567:       DEALLOCATE(DONTMOVE)567:       DEALLOCATE(DONTMOVE)
568:       DEALLOCATE(DONTMOVERES)568:       DEALLOCATE(DONTMOVERES)
569:       DEALLOCATE(HARMONICFLIST)569:       DEALLOCATE(HARMONICFLIST)
570:       DEALLOCATE(HARMONICR0)570:       DEALLOCATE(HARMONICR0)
571:       DEALLOCATE(BESTPERM)571:       DEALLOCATE(BESTPERM)
572:       IF (ALLOCATED(ANV)) DEALLOCATE(ANV)572:       IF (ALLOCATED(ANV)) DEALLOCATE(ANV)
573:       IF (ALLOCATED(NSPECIES)) DEALLOCATE(NSPECIES)573:       IF (ALLOCATED(NSPECIES)) DEALLOCATE(NSPECIES)
574:       IF (ALLOCATED(NSPECIES_INI)) DEALLOCATE(NSPECIES_INI)574:       IF (ALLOCATED(NSPECIES_INI)) DEALLOCATE(NSPECIES_INI)
575:       IF (ALLOCATED(SPECMASS)) DEALLOCATE(SPECMASS) 
576:       IF (ALLOCATED(MSBCOORDS)) DEALLOCATE(MSBCOORDS)575:       IF (ALLOCATED(MSBCOORDS)) DEALLOCATE(MSBCOORDS)
577:       IF (ALLOCATED(MSBE)) DEALLOCATE(MSBE)576:       IF (ALLOCATED(MSBE)) DEALLOCATE(MSBE)
578:       IF (ALLOCATED(BEADLETTER)) DEALLOCATE(BEADLETTER)577:       IF (ALLOCATED(BEADLETTER)) DEALLOCATE(BEADLETTER)
579:       IF (ALLOCATED(BLNSSTRUCT)) DEALLOCATE(BLNSSTRUCT)578:       IF (ALLOCATED(BLNSSTRUCT)) DEALLOCATE(BLNSSTRUCT)
580:       IF (ALLOCATED(NPERMSIZE)) DEALLOCATE(NPERMSIZE,PERMGROUP,NSETS,SETS)579:       IF (ALLOCATED(NPERMSIZE)) DEALLOCATE(NPERMSIZE,PERMGROUP,NSETS,SETS)
581:       IF (ALLOCATED(HDIST)) DEALLOCATE(HDIST,HWEIGHT,HISTVALS,LHISTVALS,IGNOREBIN)580:       IF (ALLOCATED(HDIST)) DEALLOCATE(HDIST,HWEIGHT,HISTVALS,LHISTVALS,IGNOREBIN)
582:       IF (ALLOCATED(SITE)) DEALLOCATE(SITE)581:       IF (ALLOCATED(SITE)) DEALLOCATE(SITE)
583:       IF (ALLOCATED(MOVABLEATOMLIST)) DEALLOCATE(MOVABLEATOMLIST)582:       IF (ALLOCATED(MOVABLEATOMLIST)) DEALLOCATE(MOVABLEATOMLIST)
584:       IF (ALLOCATED(MOVABLEATOMLISTLOGICAL)) DEALLOCATE(MOVABLEATOMLISTLOGICAL)583:       IF (ALLOCATED(MOVABLEATOMLISTLOGICAL)) DEALLOCATE(MOVABLEATOMLISTLOGICAL)
585:       IF (ALLOCATED(ATOMSINBLOCK)) DEALLOCATE(ATOMSINBLOCK)584:       IF (ALLOCATED(ATOMSINBLOCK)) DEALLOCATE(ATOMSINBLOCK)


r29129/QALCSearch.f90 2015-11-17 23:33:22.676808889 +0000 r29128/QALCSearch.f90 2015-11-17 23:33:24.436832485 +0000
656: END SUBROUTINE CALC_FLIPS656: END SUBROUTINE CALC_FLIPS
657: !657: !
658: !=============================================================658: !=============================================================
659: !659: !
660: SUBROUTINE SWAP_LABELS(I,J)660: SUBROUTINE SWAP_LABELS(I,J)
661:   !661:   !
662:   ! Swap the labels/types of two particles identified by their662:   ! Swap the labels/types of two particles identified by their
663:   ! permanent indices I and J.663:   ! permanent indices I and J.
664:   !664:   !
665:   ! USE COMMONS, ONLY : ATOMLISTS, INVATOMLISTS, MYUNIT, ATMASS, READMASST665:   ! USE COMMONS, ONLY : ATOMLISTS, INVATOMLISTS, MYUNIT, ATMASS, READMASST
666:   USE COMMONS, ONLY : ATOMLISTS, INVATOMLISTS, ATMASS, &666:   USE COMMONS, ONLY : ATOMLISTS, INVATOMLISTS, ATMASS, READMASST
667:        READMASST, SPECMASST 
668:   !667:   !
669:   IMPLICIT NONE668:   IMPLICIT NONE
670:   !669:   !
671:   INTEGER, INTENT(IN) :: I,J670:   INTEGER, INTENT(IN) :: I,J
672:   INTEGER :: ITYPE,JTYPE,IPLACE,JPLACE,IGROUP,JGROUP,K671:   INTEGER :: ITYPE,JTYPE,IPLACE,JPLACE,IGROUP,JGROUP,K
673:   DOUBLE PRECISION :: DUMMY672:   DOUBLE PRECISION :: DUMMY
674:   !673:   !
675:   !WRITE(MYUNIT,*) 'SWAPPING I,J=', I,J674:   !WRITE(MYUNIT,*) 'SWAPPING I,J=', I,J
676:   !675:   !
677:   ITYPE = INVATOMLISTS(I,1)676:   ITYPE = INVATOMLISTS(I,1)
687:   !686:   !
688:   !WRITE(MYUNIT,*) 'INITIAL ITYPE ( ', ITYPE, ' ) LIST:', &687:   !WRITE(MYUNIT,*) 'INITIAL ITYPE ( ', ITYPE, ' ) LIST:', &
689:   !     (ATOMLISTS(ITYPE,IGROUP,K), K=1,ATOMLISTS(ITYPE,IGROUP,0))688:   !     (ATOMLISTS(ITYPE,IGROUP,K), K=1,ATOMLISTS(ITYPE,IGROUP,0))
690:   !WRITE(MYUNIT,*) 'INITIAL JTYPE ( ', JTYPE, ' ) LIST:', &689:   !WRITE(MYUNIT,*) 'INITIAL JTYPE ( ', JTYPE, ' ) LIST:', &
691:   !     (ATOMLISTS(JTYPE,JGROUP,K), K=1,ATOMLISTS(JTYPE,JGROUP,0))690:   !     (ATOMLISTS(JTYPE,JGROUP,K), K=1,ATOMLISTS(JTYPE,JGROUP,0))
692:   !691:   !
693:   ! Swap labels692:   ! Swap labels
694:   ATOMLISTS(ITYPE, IGROUP, IPLACE) = J693:   ATOMLISTS(ITYPE, IGROUP, IPLACE) = J
695:   ATOMLISTS(JTYPE, JGROUP, JPLACE) = I694:   ATOMLISTS(JTYPE, JGROUP, JPLACE) = I
696:   !695:   !
697:   IF(READMASST.OR.SPECMASST) THEN   ! Swap masses696:   IF(READMASST) THEN   ! Swap masses
698:      DUMMY = ATMASS(I)697:      DUMMY = ATMASS(I)
699:      ATMASS(I) = ATMASS(J)698:      ATMASS(I) = ATMASS(J)
700:      ATMASS(J) = DUMMY699:      ATMASS(J) = DUMMY
701:   ENDIF700:   ENDIF
702:   !701:   !
703:   INVATOMLISTS(I,1) = JTYPE702:   INVATOMLISTS(I,1) = JTYPE
704:   INVATOMLISTS(I,2) = JGROUP703:   INVATOMLISTS(I,2) = JGROUP
705:   INVATOMLISTS(I,3) = JPLACE704:   INVATOMLISTS(I,3) = JPLACE
706:   !705:   !
707:   INVATOMLISTS(J,1) = ITYPE706:   INVATOMLISTS(J,1) = ITYPE
717: END SUBROUTINE SWAP_LABELS716: END SUBROUTINE SWAP_LABELS
718: !717: !
719: !=============================================================718: !=============================================================
720: !719: !
721: SUBROUTINE FLIP_LABEL(I,NEWTYPE)720: SUBROUTINE FLIP_LABEL(I,NEWTYPE)
722:   !721:   !
723:   ! Change the current label/type of a particle (identified by its722:   ! Change the current label/type of a particle (identified by its
724:   ! permanent index I) to NEWTYPE.723:   ! permanent index I) to NEWTYPE.
725:   !724:   !
726:   ! USE COMMONS, ONLY : ATOMLISTS, INVATOMLISTS, MYUNIT725:   ! USE COMMONS, ONLY : ATOMLISTS, INVATOMLISTS, MYUNIT
727:   USE COMMONS, ONLY: ATOMLISTS, INVATOMLISTS, NSPECIES, ATMASS, &726:   USE COMMONS, ONLY: ATOMLISTS, INVATOMLISTS, NSPECIES
728:        READMASST, SPECMASST, SPECMASS 
729:   !727:   !
730:   IMPLICIT NONE728:   IMPLICIT NONE
731:   !729:   !
732:   INTEGER, INTENT(IN) :: I, NEWTYPE730:   INTEGER, INTENT(IN) :: I, NEWTYPE
733:   INTEGER :: ITYPE,IPLACE,IGROUP,J731:   INTEGER :: ITYPE,IPLACE,IGROUP,J
734:   !732:   !
735:   ITYPE = INVATOMLISTS(I,1)733:   ITYPE = INVATOMLISTS(I,1)
736:   IGROUP = INVATOMLISTS(I,2)734:   IGROUP = INVATOMLISTS(I,2)
737:   IPLACE = INVATOMLISTS(I,3)735:   IPLACE = INVATOMLISTS(I,3)
738:   !736:   !
748:   !746:   !
749:   ! Now grow append I as the last entry for NEWTYPE747:   ! Now grow append I as the last entry for NEWTYPE
750:   ATOMLISTS(NEWTYPE,IGROUP,0) = ATOMLISTS(NEWTYPE,IGROUP,0) + 1748:   ATOMLISTS(NEWTYPE,IGROUP,0) = ATOMLISTS(NEWTYPE,IGROUP,0) + 1
751:   ATOMLISTS(NEWTYPE,IGROUP,ATOMLISTS(NEWTYPE,IGROUP,0)) = I749:   ATOMLISTS(NEWTYPE,IGROUP,ATOMLISTS(NEWTYPE,IGROUP,0)) = I
752:   INVATOMLISTS(I,1) = NEWTYPE750:   INVATOMLISTS(I,1) = NEWTYPE
753:   INVATOMLISTS(I,3) = ATOMLISTS(NEWTYPE,IGROUP,0)751:   INVATOMLISTS(I,3) = ATOMLISTS(NEWTYPE,IGROUP,0)
754:   !752:   !
755:   NSPECIES(ITYPE) = NSPECIES(ITYPE) - 1753:   NSPECIES(ITYPE) = NSPECIES(ITYPE) - 1
756:   NSPECIES(NEWTYPE) = NSPECIES(NEWTYPE) + 1754:   NSPECIES(NEWTYPE) = NSPECIES(NEWTYPE) + 1
757:   !755:   !
758:   IF(READMASST.OR.SPECMASST) ATMASS(I) = SPECMASS(NEWTYPE) 
759:   ! 
760:   !WRITE(MYUNIT,*) 'TYPE', ITYPE, 'LIST:', &756:   !WRITE(MYUNIT,*) 'TYPE', ITYPE, 'LIST:', &
761:   !     ( ATOMLISTS(ITYPE,IGROUP,J), J=1,ATOMLISTS(ITYPE,IGROUP,0) )757:   !     ( ATOMLISTS(ITYPE,IGROUP,J), J=1,ATOMLISTS(ITYPE,IGROUP,0) )
762:   !WRITE(MYUNIT,*) 'TYPE', NEWTYPE, 'LIST:', &758:   !WRITE(MYUNIT,*) 'TYPE', NEWTYPE, 'LIST:', &
763:   !     ( ATOMLISTS(NEWTYPE,IGROUP,J), J=1,ATOMLISTS(NEWTYPE,IGROUP,0) )759:   !     ( ATOMLISTS(NEWTYPE,IGROUP,J), J=1,ATOMLISTS(NEWTYPE,IGROUP,0) )
764:   760:   
765:   !761:   !
766: END SUBROUTINE FLIP_LABEL762: END SUBROUTINE FLIP_LABEL
767: !763: !
768: !=============================================================764: !=============================================================
769: !765: !


r29129/symmetry.f90 2015-11-17 23:33:24.224829629 +0000 r29128/symmetry.f90 2015-11-17 23:33:25.968853018 +0000
 91: LEBEST=EPREV(JP) 91: LEBEST=EPREV(JP)
 92: QBEST(1:3*NATOMS)=COORDS(1:3*NATOMS,JP) 92: QBEST(1:3*NATOMS)=COORDS(1:3*NATOMS,JP)
 93: VATBEST(1:NATOMS)=VAT(1:NATOMS,JP) 93: VATBEST(1:NATOMS)=VAT(1:NATOMS,JP)
 94: NQTOTSAVE=NQTOT 94: NQTOTSAVE=NQTOT
 95: LCOORDS(1:3*NATOMS)=COORDS(1:3*NATOMS,JP) 95: LCOORDS(1:3*NATOMS)=COORDS(1:3*NATOMS,JP)
 96: VATORIG(1:NATOMS)=VAT(1:NATOMS,JP) 96: VATORIG(1:NATOMS)=VAT(1:NATOMS,JP)
 97: QBORDERED=.FALSE. 97: QBORDERED=.FALSE.
 98: QBCHANGED=.FALSE. 98: QBCHANGED=.FALSE.
 99: QBCORE=0 99: QBCORE=0
100: 100: 
 101: IF(SETMASST) THEN !ds656> Set mass to species index
 102:    ATMASS(1:NATOMS) = DBLE(INVATOMLISTS(1:NATOMS,1))
 103: ENDIF
 104: 
101: LTOLD=SYMTOL2105: LTOLD=SYMTOL2
102: IF (DEBUG) WRITE(MYUNIT,'(A)') 'symmetry> atomic masses:'106: IF (DEBUG) WRITE(MYUNIT,'(A)') 'symmetry> atomic masses:'
103: IF (DEBUG) WRITE(MYUNIT,'(6G20.10)') (ATMASS(J),J=1,NATOMS)107: IF (DEBUG) WRITE(MYUNIT,'(6G20.10)') (ATMASS(J),J=1,NATOMS)
104: 108: 
105: ORIGIN(1:3)=0.0D0109: ORIGIN(1:3)=0.0D0
106: LOOPLIMIT=NATOMS110: LOOPLIMIT=NATOMS
107: IF (NCORE(JP).GT.10) THEN111: IF (NCORE(JP).GT.10) THEN
108:    IF (NPAR.GT.1) THEN112:    IF (NPAR.GT.1) THEN
109:       WRITE(MYUNIT,'(A,I1,A,I6,A)') '[',JP,']symmetry> initialising origin for ',NCORE(JP),' atoms'113:       WRITE(MYUNIT,'(A,I1,A,I6,A)') '[',JP,']symmetry> initialising origin for ',NCORE(JP),' atoms'
110:    ELSE114:    ELSE


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0