hdiff output

r29878/commons.f90 2016-01-31 14:30:09.448527309 +0000 r29877/commons.f90 2016-01-31 14:30:10.644543271 +0000
108:      &        HARMONICDONTMOVE, DUMPUNIQUE, FREEZESAVE, TBP, RBSYMT, PTMCDUMPSTRUCT, PTMCDUMPENERT, PYCOLDFUSION, MONITORT,&108:      &        HARMONICDONTMOVE, DUMPUNIQUE, FREEZESAVE, TBP, RBSYMT, PTMCDUMPSTRUCT, PTMCDUMPENERT, PYCOLDFUSION, MONITORT,&
109:      &        CHARMMDFTBT, PERMINVOPT, BLOCKMOVET, MAXERISE_SET, PYT, BINARY_EXAB, CHIROT, SANDBOXT, &109:      &        CHARMMDFTBT, PERMINVOPT, BLOCKMOVET, MAXERISE_SET, PYT, BINARY_EXAB, CHIROT, SANDBOXT, &
110:      &        RESERVOIRT, DISTOPT, ONEDAPBCT, ONEDPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, THREEDPBCT, RATIOT, &110:      &        RESERVOIRT, DISTOPT, ONEDAPBCT, ONEDPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, THREEDPBCT, RATIOT, &
111:      &        PTRANDOM, PTINTERVAL, PTSINGLE, PTSETS, CHEMSHIFT, CHEMSHIFT2, CSH, DEBUGss2029, UNIFORMMOVE, RANSEEDT, &111:      &        PTRANDOM, PTINTERVAL, PTSINGLE, PTSETS, CHEMSHIFT, CHEMSHIFT2, CSH, DEBUGss2029, UNIFORMMOVE, RANSEEDT, &
112:      &        TTM3T, NOINVERSION, RIGIDCONTOURT, UPDATERIGIDREFT, HYBRIDMINT, COMPRESSRIGIDT, MWFILMT, &112:      &        TTM3T, NOINVERSION, RIGIDCONTOURT, UPDATERIGIDREFT, HYBRIDMINT, COMPRESSRIGIDT, MWFILMT, &
113:      &        SUPPRESST, MFETT, POLIRT, QUIPT, SWPOTT, MWPOTT, REPMATCHT, GLJT, MLJT, READMASST, SPECMASST, NEWTSALLIST, &113:      &        SUPPRESST, MFETT, POLIRT, QUIPT, SWPOTT, MWPOTT, REPMATCHT, GLJT, MLJT, READMASST, SPECMASST, NEWTSALLIST, &
114:      &        PHI4MODELT, CUDAT, CUDATIMET, AMBER12T, ENERGY_DECOMPT, NEWMOVEST, DUMPMINT, MBPOLT, MOLECULART, GCBHT, SEMIGRAND_MUT, USEROT, & 114:      &        PHI4MODELT, CUDAT, CUDATIMET, AMBER12T, ENERGY_DECOMPT, NEWMOVEST, DUMPMINT, MBPOLT, MOLECULART, GCBHT, SEMIGRAND_MUT, USEROT, & 
115:      &        SAVEMULTIMINONLY, GRADPROBLEMT, INTLJT, CONDATT, QCIPERMCHECK, &115:      &        SAVEMULTIMINONLY, GRADPROBLEMT, INTLJT, CONDATT, QCIPERMCHECK, &
116:      &        INTCONSTRAINTT, INTFREEZET, CHECKCONINT, CONCUTABST, CONCUTFRACT, INTERPCOSTFUNCTION, &116:      &        INTCONSTRAINTT, INTFREEZET, CHECKCONINT, CONCUTABST, CONCUTFRACT, INTERPCOSTFUNCTION, &
117:      &        RBAAT, FREEZENODEST, DUMPINTEOS, DUMPINTXYZ, QCIPOTT, QCIPOT2T, INTSPRINGACTIVET, LPERMDIST, LOCALPERMDIST, QCIRADSHIFTT, &117:      &        RBAAT, FREEZENODEST, DUMPINTEOS, DUMPINTXYZ, QCIPOTT, QCIPOT2T, INTSPRINGACTIVET, LPERMDIST, LOCALPERMDIST, QCIRADSHIFTT, &
118:      &        MLP3T, MKTRAPT, MLPB3T118:      &        MLP3T, MKTRAPT
119: !119: !
120:       DOUBLE PRECISION, ALLOCATABLE :: SEMIGRAND_MU(:) 120:       DOUBLE PRECISION, ALLOCATABLE :: SEMIGRAND_MU(:) 
121:       DOUBLE PRECISION, ALLOCATABLE:: ATMASS(:)121:       DOUBLE PRECISION, ALLOCATABLE:: ATMASS(:)
122:       DOUBLE PRECISION, ALLOCATABLE:: SPECMASS(:) 122:       DOUBLE PRECISION, ALLOCATABLE:: SPECMASS(:) 
123: 123: 
124: ! csw34> FREEZEGROUP variables124: ! csw34> FREEZEGROUP variables
125: !125: !
126:       INTEGER :: GROUPCENTRE126:       INTEGER :: GROUPCENTRE
127:       DOUBLE PRECISION :: GROUPRADIUS127:       DOUBLE PRECISION :: GROUPRADIUS
128:       CHARACTER (LEN=2) :: FREEZEGROUPTYPE128:       CHARACTER (LEN=2) :: FREEZEGROUPTYPE


r29878/finalio.f90 2016-01-31 14:30:09.648529979 +0000 r29877/finalio.f90 2016-01-31 14:30:10.844545942 +0000
550:             ENDDO550:             ENDDO
551: 551: 
552:         ELSE IF (GBT.OR.GBDT.OR.GBDPT.OR.MSGBT) THEN552:         ELSE IF (GBT.OR.GBDT.OR.GBDPT.OR.MSGBT) THEN
553:             DO J2 = 1, NATOMS/2553:             DO J2 = 1, NATOMS/2
554:                 WRITE(MYUNIT2,'(3f20.10)') (QMINP(J1,3*(J2-1)+J3),J3=1,3)554:                 WRITE(MYUNIT2,'(3f20.10)') (QMINP(J1,3*(J2-1)+J3),J3=1,3)
555:             ENDDO555:             ENDDO
556:             DO J2 = 1, NATOMS/2556:             DO J2 = 1, NATOMS/2
557:                 WRITE(MYUNIT2,'(3f20.10)') (QMINP(J1,3*NATOMS/2+3*(J2-1)+J3),J3=1,3)557:                 WRITE(MYUNIT2,'(3f20.10)') (QMINP(J1,3*NATOMS/2+3*(J2-1)+J3),J3=1,3)
558:             ENDDO558:             ENDDO
559: 559: 
560:          ELSE IF (MLP3T.OR.MLPB3T) THEN560:          ELSE IF (MLP3T) THEN
561:             DO J2 = 1, NATOMS561:             DO J2 = 1, NATOMS
562:                 WRITE(MYUNIT2,'(3G20.10)') QMINP(J1,J2)562:                 WRITE(MYUNIT2,'(3G20.10)') QMINP(J1,J2)
563:             ENDDO563:             ENDDO
564: 564: 
565:          ELSE IF (GEMT) THEN565:          ELSE IF (GEMT) THEN
566:             DO J2 = 1, NATOMS566:             DO J2 = 1, NATOMS
567:                 WRITE(MYUNIT2,'(3f20.10)') (QMINP(J1,3*(J2-1)+J3),J3=1,3)567:                 WRITE(MYUNIT2,'(3f20.10)') (QMINP(J1,3*(J2-1)+J3),J3=1,3)
568:             ENDDO568:             ENDDO
569: 569: 
570:         ELSE IF (BLNT.AND.(.NOT.P46).AND.(.NOT.G46)) THEN570:         ELSE IF (BLNT.AND.(.NOT.P46).AND.(.NOT.G46)) THEN


r29878/keywords.f 2016-01-31 14:30:09.856532756 +0000 r29877/keywords.f 2016-01-31 14:30:11.048548664 +0000
1087:       GCMU=0.0D01087:       GCMU=0.0D0
1088:       GCNATOMS=11088:       GCNATOMS=1
1089:       GCINT=1001089:       GCINT=100
1090:       GCRELAX=10*GCINT1090:       GCRELAX=10*GCINT
1091:       GCPLUS=0.5D01091:       GCPLUS=0.5D0
1092: 1092: 
1093: !1093: !
1094: ! Neural network potential1094: ! Neural network potential
1095: !1095: !
1096:       MLP3T=.FALSE.1096:       MLP3T=.FALSE.
1097:       MLPB3T=.FALSE. 
1098:       MLPLAMBDA=0.0D01097:       MLPLAMBDA=0.0D0
1099:       1098:       
1100:       CALL FILE_OPEN('data', DATA_UNIT, .FALSE.)1099:       CALL FILE_OPEN('data', DATA_UNIT, .FALSE.)
1101:       1100:       
1102: !      OPEN (5,FILE='data',STATUS='OLD')1101: !      OPEN (5,FILE='data',STATUS='OLD')
1103: 1102: 
1104: !190   CALL INPUT(END,5)1103: !190   CALL INPUT(END,5)
1105: 190   CALL INPUT(END, DATA_UNIT)1104: 190   CALL INPUT(END, DATA_UNIT)
1106:       IF (.NOT. END) THEN1105:       IF (.NOT. END) THEN
1107:         CALL READU(WORD)1106:         CALL READU(WORD)
2040:       ELSE IF (WORD.EQ.'MKTRAP') THEN2039:       ELSE IF (WORD.EQ.'MKTRAP') THEN
2041:          MKTRAPT=.TRUE.2040:          MKTRAPT=.TRUE.
2042: !2041: !
2043: ! Three layer neural network (multilayer perceptron) with2042: ! Three layer neural network (multilayer perceptron) with
2044: ! MLPIN inputs (columns per data item)2043: ! MLPIN inputs (columns per data item)
2045: ! MLPOUT outputs2044: ! MLPOUT outputs
2046: ! MLPHIDDEN hidden nodes2045: ! MLPHIDDEN hidden nodes
2047: ! MLPDATA data lines in MLPdata file (last column MLPIN+1 for correct outputs, numbered one to MLPOUT)2046: ! MLPDATA data lines in MLPdata file (last column MLPIN+1 for correct outputs, numbered one to MLPOUT)
2048: ! MLPLAMBDA coefficient for regularisation2047: ! MLPLAMBDA coefficient for regularisation
2049: !2048: !
2050:       ELSE IF ((WORD.EQ.'MLP3').OR.(WORD.EQ.'MLPB3')) THEN2049:       ELSE IF (WORD.EQ.'MLP3') THEN
2051:          MLP3T=.TRUE.2050:          MLP3T=.TRUE.
2052:          IF (WORD.EQ.'MLPB3') MLPB3T=.TRUE. 
2053:          CALL READI(MLPIN)2051:          CALL READI(MLPIN)
2054:          CALL READI(MLPHIDDEN)2052:          CALL READI(MLPHIDDEN)
2055:          CALL READI(MLPOUT)2053:          CALL READI(MLPOUT)
2056:          CALL READI(MLPDATA)2054:          CALL READI(MLPDATA)
2057:          IF (NITEMS.GT.5) CALL READF(MLPLAMBDA)2055:          IF (NITEMS.GT.5) CALL READF(MLPLAMBDA)
2058:          IF (MLPB3T) THEN2056:          WRITE(MYUNIT,'(A,4I8,G20.10)') 'MLP3 potential with Nin, Nhidden, Nout, Ndata, lambda=',
2059:             WRITE(MYUNIT,'(A,4I8,G20.10)') 'MLP3 potential bias nodes and Nin, Nhidden, Nout, Ndata, lambda=', 
2060:      &                                   MLPIN,MLPHIDDEN,MLPOUT,MLPDATA,MLPLAMBDA  2057:      &                                   MLPIN,MLPHIDDEN,MLPOUT,MLPDATA,MLPLAMBDA  
2061:             NMLP=MLPHIDDEN*(MLPIN+MLPOUT)+12058:          NMLP=MLPHIDDEN*(MLPIN+MLPOUT)
2062:          ELSE 
2063:             WRITE(MYUNIT,'(A,4I8,G20.10)') 'MLP3 potential with Nin, Nhidden, Nout, Ndata, lambda=', 
2064:      &                                   MLPIN,MLPHIDDEN,MLPOUT,MLPDATA,MLPLAMBDA   
2065:             NMLP=MLPHIDDEN*(MLPIN+MLPOUT) 
2066:          ENDIF 
2067:          IF (NMLP.NE.NATOMS) THEN2059:          IF (NMLP.NE.NATOMS) THEN
2068:             PRINT '(A,2I8)', 'keywords> ERROR *** NATOMS,NMLP=',NATOMS,NMLP2060:             PRINT '(A,2I8)', 'keywords> ERROR *** NATOMS,NMLP=',NATOMS,NMLP
2069:             STOP2061:             STOP
2070:          ENDIF2062:          ENDIF
2071:          LUNIT=GETUNIT()2063:          LUNIT=GETUNIT()
2072:          OPEN(LUNIT,FILE='MLPdata',STATUS='OLD')2064:          OPEN(LUNIT,FILE='MLPdata',STATUS='OLD')
2073:          ALLOCATE(MLPDAT(MLPDATA,MLPIN),MLPOUTCOME(MLPDATA))2065:          ALLOCATE(MLPDAT(MLPDATA,MLPIN),MLPOUTCOME(MLPDATA))
2074:          DO J1=1,MLPDATA2066:          DO J1=1,MLPDATA
2075:             READ(LUNIT,*) MLPDAT(J1,1:MLPIN),MLPOUTCOME(J1)2067:             READ(LUNIT,*) MLPDAT(J1,1:MLPIN),MLPOUTCOME(J1)
2076:             MLPOUTCOME(J1)=MLPOUTCOME(J1)+1 ! to shift the range to 1 to 42068:             MLPOUTCOME(J1)=MLPOUTCOME(J1)+1 ! to shift the range to 1 to 4


r29878/potential.f90 2016-01-31 14:30:10.048535317 +0000 r29877/potential.f90 2016-01-31 14:30:11.256551440 +0000
284:       CALL RAD(X, GRAD, EREAL, GRADT)284:       CALL RAD(X, GRAD, EREAL, GRADT)
285:       CALL MSC(X, GRAD, EREAL, GRADT)285:       CALL MSC(X, GRAD, EREAL, GRADT)
286: 286: 
287:    ELSE IF (ACKLANDT) THEN287:    ELSE IF (ACKLANDT) THEN
288:       CALL RAD(X, GRAD, EREAL, GRADT)288:       CALL RAD(X, GRAD, EREAL, GRADT)
289:       CALL ACK(X, GRAD, EREAL, GRADT)289:       CALL ACK(X, GRAD, EREAL, GRADT)
290: 290: 
291:    ELSE IF (FAL.OR.FNI) THEN291:    ELSE IF (FAL.OR.FNI) THEN
292:       CALL RAD(X, GRAD, EREAL, GRADT)292:       CALL RAD(X, GRAD, EREAL, GRADT)
293:       CALL FARKAS(X, GRAD, EREAL, GRADT, NATOMS)293:       CALL FARKAS(X, GRAD, EREAL, GRADT, NATOMS)
294:    ELSE IF (MLPB3T) THEN294: 
295:       CALL MLPB3(X, GRAD, EREAL, GRADT, SECT)295:    ELSE IF (MLP3T) THEN
 296:       CALL MLP3(X, GRAD, EREAL, GRADT, SECT)
296: !       DIFF=1.0D-4297: !       DIFF=1.0D-4
297: !       WRITE(MYUNIT, *) 'analytic and numerical gradients:'298: !       WRITE(MYUNIT, *) 'analytic and numerical gradients:'
298: !       DO J1=1, NATOMS299: !       DO J1=1, NATOMS
299: !          X(J1)=X(J1)+DIFF300: !          X(J1)=X(J1)+DIFF
300: !          CALL MLPB3(X, GPLUS, EPLUS,.FALSE.,.FALSE.)301: !          CALL MLP3(X, GPLUS, EPLUS,.FALSE.,.FALSE.)
 302: !             WRITE(MYUNIT,'(A,I5, 2F20.10)') 'EPLUS=',J1,EPLUS
301: !          X(J1)=X(J1)-2.0D0*DIFF303: !          X(J1)=X(J1)-2.0D0*DIFF
302: !          CALL MLPB3(X, GMINUS, EMINUS,.FALSE.,.FALSE.)304: !          CALL MLP3(X, GMINUS, EMINUS,.FALSE.,.FALSE.)
 305: !             WRITE(MYUNIT,'(A,I5, 2F20.10)') 'EMINUS=',J1,EMINUS
303: !          X(J1)=X(J1)+DIFF306: !          X(J1)=X(J1)+DIFF
304: ! !        IF ((ABS(GRAD(J1)).NE.0.0D0).AND.(100.0D0*(GRAD(J1)-(EPLUS-EMINUS)/(2.0D0*DIFF))/GRAD(J1).GT.1.0D0)) THEN307: ! !        IF ((ABS(GRAD(J1)).NE.0.0D0).AND.(100.0D0*(GRAD(J1)-(EPLUS-EMINUS)/(2.0D0*DIFF))/GRAD(J1).GT.1.0D0)) THEN
305: !             WRITE(MYUNIT,'(A,I5, 2F20.10)') 'gtest ', J1, GRAD(J1),(EPLUS-EMINUS)/(2.0D0*DIFF)308: !             WRITE(MYUNIT,'(A,I5, 2F20.10)') 'gtest ', J1, GRAD(J1),(EPLUS-EMINUS)/(2.0D0*DIFF)
306: ! !        ENDIF309: ! !        ENDIF
307: !       ENDDO310: !       ENDDO
308: 311: 
309:    ELSE IF (MLP3T) THEN 
310:       CALL MLP3(X, GRAD, EREAL, GRADT, SECT) 
311:    ELSE IF (LJATT) THEN312:    ELSE IF (LJATT) THEN
312:       CALL LJ(X, GRAD, EREAL, GRADT, SECT)313:       CALL LJ(X, GRAD, EREAL, GRADT, SECT)
313:       CALL AXT(NATOMS, X, GRAD, EREAL, GRADT, ZSTAR)314:       CALL AXT(NATOMS, X, GRAD, EREAL, GRADT, ZSTAR)
314: 315: 
315:    ELSE IF (DFTBCT) THEN316:    ELSE IF (DFTBCT) THEN
316:       IF (.NOT.PERCOLATET) CALL RAD(X, GRAD, EREAL, GRADT)317:       IF (.NOT.PERCOLATET) CALL RAD(X, GRAD, EREAL, GRADT)
317:       CALL DFTBC(NATOMS, X, GRAD, EREAL, GRADT)318:       CALL DFTBC(NATOMS, X, GRAD, EREAL, GRADT)
318:       IF (FTEST) THEN319:       IF (FTEST) THEN
319:          RETURN320:          RETURN
320:       END IF321:       END IF
1264: 1265: 
1265:       IF (CSMT .AND. (.NOT.SYMMETRIZECSM)) THEN1266:       IF (CSMT .AND. (.NOT.SYMMETRIZECSM)) THEN
1266:          DUMMY2=0.0D01267:          DUMMY2=0.0D0
1267:          RMS=0.0D01268:          RMS=0.0D0
1268:       ELSE IF (AACONVERGENCET .AND. (ATOMRIGIDCOORDT)) THEN1269:       ELSE IF (AACONVERGENCET .AND. (ATOMRIGIDCOORDT)) THEN
1269:          DUMMY2=SUM(GRAD(1:DEGFREEDOMS)**2)1270:          DUMMY2=SUM(GRAD(1:DEGFREEDOMS)**2)
1270:          RMS=MAX(SQRT(DUMMY2/DEGFREEDOMS), 1.0D-100)1271:          RMS=MAX(SQRT(DUMMY2/DEGFREEDOMS), 1.0D-100)
1271:          IF (RMS < 5.0D0 * BQMAX) THEN1272:          IF (RMS < 5.0D0 * BQMAX) THEN
1272:             CALL AACONVERGENCE (GRADATOMS, XRIGIDCOORDS, XRIGIDGRAD, RMS)           1273:             CALL AACONVERGENCE (GRADATOMS, XRIGIDCOORDS, XRIGIDGRAD, RMS)           
1273:          END IF1274:          END IF
1274:       ELSE IF (MLP3T.OR.MLPB3T) THEN1275:       ELSE IF (MLP3T) THEN
1275:          DUMMY2=SUM(GRAD(1:NATOMS)**2)1276:          DUMMY2=SUM(GRAD(1:NATOMS)**2)
1276:          RMS=MAX(DSQRT(DUMMY2/(NATOMS)), 1.0D-100)1277:          RMS=MAX(DSQRT(DUMMY2/(NATOMS)), 1.0D-100)
1277:       ELSE IF (.NOT.THOMSONT) THEN1278:       ELSE IF (.NOT.THOMSONT) THEN
1278:          DUMMY2=SUM(GRAD(1:3*NATOMS)**2)1279:          DUMMY2=SUM(GRAD(1:3*NATOMS)**2)
1279:          RMS=MAX(DSQRT(DUMMY2/(3*NATOMS)), 1.0D-100)1280:          RMS=MAX(DSQRT(DUMMY2/(3*NATOMS)), 1.0D-100)
1280:       ELSE1281:       ELSE
1281:          DUMMY2=SUM(GRAD(1:2*NATOMS)**2)1282:          DUMMY2=SUM(GRAD(1:2*NATOMS)**2)
1282:          RMS=MAX(DSQRT(DUMMY2/(2*NATOMS)), 1.0D-100)1283:          RMS=MAX(DSQRT(DUMMY2/(2*NATOMS)), 1.0D-100)
1283:       END IF1284:       END IF
1284:       IF(DEBUG.AND.(RMS.NE.RMS)) THEN1285:       IF(DEBUG.AND.(RMS.NE.RMS)) THEN


r29878/quench.F 2016-01-31 14:30:10.252538040 +0000 r29877/quench.F 2016-01-31 14:30:11.444553949 +0000
108:       IF (DFTBCT.AND.LJATT) GUIDET=.TRUE.108:       IF (DFTBCT.AND.LJATT) GUIDET=.TRUE.
109:       IF (DFTBCT.AND.GUIDET) THEN109:       IF (DFTBCT.AND.GUIDET) THEN
110:          LJATT=.TRUE.110:          LJATT=.TRUE.
111:          IF (DEBUG) WRITE(MYUNIT,'(A)') 'quench> Turning on LJAT guiding potential and rescaling coordinates'111:          IF (DEBUG) WRITE(MYUNIT,'(A)') 'quench> Turning on LJAT guiding potential and rescaling coordinates'
112:          COORDS(1:3*NATOMS,NP)=COORDS(1:3*NATOMS,NP)/LJATTOC112:          COORDS(1:3*NATOMS,NP)=COORDS(1:3*NATOMS,NP)/LJATTOC
113:       ENDIF113:       ENDIF
114:       IF (CSMGUIDET) CSMDOGUIDET=.TRUE.114:       IF (CSMGUIDET) CSMDOGUIDET=.TRUE.
115:       NOPT=3*NATOMS115:       NOPT=3*NATOMS
116:       IF (WENZEL) NOPT=2116:       IF (WENZEL) NOPT=2
117:       IF (MULLERBROWNT) NOPT=2117:       IF (MULLERBROWNT) NOPT=2
118:       IF (MLP3T.OR.MLPB3T) NOPT=NMLP118:       IF (MLP3T) NOPT=NMLP
119: !119: !
120: !  QTEST is set for the final quenches with tighter convergence criteria.120: !  QTEST is set for the final quenches with tighter convergence criteria.
121: !121: !
122:       IF (QTEST) THEN122:       IF (QTEST) THEN
123:          GMAX=CQMAX123:          GMAX=CQMAX
124:       ELSE124:       ELSE
125:          GMAX=BQMAX125:          GMAX=BQMAX
126:       ENDIF126:       ENDIF
127: 127: 
128:       QDONE=0128:       QDONE=0


r29878/takestep.f 2016-01-31 14:30:10.448540656 +0000 r29877/takestep.f 2016-01-31 14:30:11.648556672 +0000
 63: ! 63: !
 64: !  Calling CENTRE if NORESET is .TRUE. can lead to problems with COORDSO containing an atom 64: !  Calling CENTRE if NORESET is .TRUE. can lead to problems with COORDSO containing an atom
 65: !  outside the permitted radius. Then it may be impossible to take a step that keeps all the 65: !  outside the permitted radius. Then it may be impossible to take a step that keeps all the
 66: !  atoms inside. 66: !  atoms inside.
 67: ! 67: !
 68:       PISQ = PI*PI 68:       PISQ = PI*PI
 69:       NTRIESMAX=100 69:       NTRIESMAX=100
 70:  70: 
 71: !     IF (CENT.AND.(.NOT.SEEDT)) CALL CENTRE2(COORDS(1:3*NATOMS,NP)) ! COORDS might have been shifted by symmetry 71: !     IF (CENT.AND.(.NOT.SEEDT)) CALL CENTRE2(COORDS(1:3*NATOMS,NP)) ! COORDS might have been shifted by symmetry
 72:       IF ((.NOT.NORESET).AND.(.NOT.PERMOPT).AND.(.NOT.DIFFRACTT).AND.(.NOT.BLNT).AND.(.NOT.PERIODIC)  72:       IF ((.NOT.NORESET).AND.(.NOT.PERMOPT).AND.(.NOT.DIFFRACTT).AND.(.NOT.BLNT).AND.(.NOT.PERIODIC) 
 73:      &                  .AND.(.NOT.PERMINVOPT).AND.(.NOT.QCIPOTT).AND.(.NOT.MLP3T).AND.(.NOT.MKTRAPT).AND.(.NOT.MLPB3T) 73:      &                  .AND.(.NOT.PERMINVOPT).AND.(.NOT.QCIPOTT).AND.(.NOT.MLP3T).AND.(.NOT.MKTRAPT)
 74:      &     .AND.(.NOT.GAUSST).AND.(.NOT.(CSMT.AND.(.NOT.SYMMETRIZECSM))).AND.(.NOT.PERCOLATET)) THEN 74:      &     .AND.(.NOT.GAUSST).AND.(.NOT.(CSMT.AND.(.NOT.SYMMETRIZECSM))).AND.(.NOT.PERCOLATET)) THEN
 75: ! 75: !
 76: !        csw34> CHECK NOTHING HAS MOVED OUTSIDE THE CONTAINER RADIUS  76: !        csw34> CHECK NOTHING HAS MOVED OUTSIDE THE CONTAINER RADIUS 
 77: ! 77: !
 78:          DO J1=1,NATOMS 78:          DO J1=1,NATOMS
 79:             IF ((.NOT.RIGID).OR.(J1.LE.NATOMS/2)) THEN 79:             IF ((.NOT.RIGID).OR.(J1.LE.NATOMS/2)) THEN
 80:                J2=3*J1 80:                J2=3*J1
 81:                DUMMY2=COORDS(J2-2,NP)**2+COORDS(J2-1,NP)**2+COORDS(J2,NP)**2 81:                DUMMY2=COORDS(J2-2,NP)**2+COORDS(J2-1,NP)**2+COORDS(J2,NP)**2
 82:                IF (DUMMY2.GT.RADIUS) THEN 82:                IF (DUMMY2.GT.RADIUS) THEN
 83:                   IF (AMBERT) THEN ! jmc49 We don't really want a container at all in amber9, but this bit of code is being used  83:                   IF (AMBERT) THEN ! jmc49 We don't really want a container at all in amber9, but this bit of code is being used 
398:          ENDIF398:          ENDIF
399: !399: !
400: !  Angular move block.400: !  Angular move block.
401: !  If NORESET is .TRUE. then VAT won;t be set, so we should skip this block.401: !  If NORESET is .TRUE. then VAT won;t be set, so we should skip this block.
402: !402: !
403: !        IF (J1.EQ.JMAX) WRITE(MYUNIT,'(A,I6,4F15.5)') 'JMAX,VAT,ASTEP(NP),VMIN,prod=',JMAX,VAT(J1,NP), 403: !        IF (J1.EQ.JMAX) WRITE(MYUNIT,'(A,I6,4F15.5)') 'JMAX,VAT,ASTEP(NP),VMIN,prod=',JMAX,VAT(J1,NP), 
404: !    &                                    ASTEP(NP),VMIN,ASTEP(NP)*VMIN404: !    &                                    ASTEP(NP),VMIN,ASTEP(NP)*VMIN
405:          IF (((VAT(J1,NP).GT.ASTEP(NP)*VMIN).AND.(J1.EQ.JMAX)).AND.(.NOT.BLNT).AND.!(.NOT.RIGID).AND.405:          IF (((VAT(J1,NP).GT.ASTEP(NP)*VMIN).AND.(J1.EQ.JMAX)).AND.(.NOT.BLNT).AND.!(.NOT.RIGID).AND.
406:      &         (.NOT.DIFFRACTT).AND.(.NOT.GAUSST).AND.(.NOT.PERCOLATET) 406:      &         (.NOT.DIFFRACTT).AND.(.NOT.GAUSST).AND.(.NOT.PERCOLATET) 
407:      &        .AND.(.NOT.NORESET).AND.(.NOT.PERIODIC).AND.(.NOT.THOMSONT).AND.(.NOT.ONEDAPBCT).AND.(.NOT.ONEDPBCT)407:      &        .AND.(.NOT.NORESET).AND.(.NOT.PERIODIC).AND.(.NOT.THOMSONT).AND.(.NOT.ONEDAPBCT).AND.(.NOT.ONEDPBCT)
408:      &      .AND.(.NOT.TWODPBCT).AND.(.NOT.THREEDAPBCT).AND.(.NOT.THREEDPBCT).AND.(.NOT.QCIPOTT).AND.(.NOT.MLP3T).AND.(.NOT.MLPB3T)408:      &        .AND.(.NOT.TWODPBCT).AND.(.NOT.THREEDAPBCT).AND.(.NOT.THREEDPBCT).AND.(.NOT.QCIPOTT).AND.(.NOT.MLP3T)
409:      &        .AND.(.NOT.TWODAPBCT).AND.(.NOT.((NCORE(NP).GT.0).AND.(J1.GT.NATOMS-NCORE(NP))))) THEN409:      &        .AND.(.NOT.TWODAPBCT).AND.(.NOT.((NCORE(NP).GT.0).AND.(J1.GT.NATOMS-NCORE(NP))))) THEN
410: 410: 
411:             IF (DEBUG) WRITE(MYUNIT,'(A,I4,A,F12.4,A,F12.4,A,I4,A,F12.4)') 'angular move for atom ',J1, 411:             IF (DEBUG) WRITE(MYUNIT,'(A,I4,A,F12.4,A,F12.4,A,I4,A,F12.4)') 'angular move for atom ',J1, 
412:      &           ' V=',VMAX,' Vmin=',VMIN,' next most weakly bound atom is ',JMAX2,' V=',VMAX2412:      &           ' V=',VMAX,' Vmin=',VMIN,' next most weakly bound atom is ',JMAX2,' V=',VMAX2
413: 413: 
414:            THETA=DPRAND()*PI414:            THETA=DPRAND()*PI
415:            PHI=DPRAND()*PI*2.0D0415:            PHI=DPRAND()*PI*2.0D0
416: !416: !
417: !  Evaporation is judged from the origin, not the centre of mass. We don't want the417: !  Evaporation is judged from the origin, not the centre of mass. We don't want the
418: !  angular move to cause evaporation. Obviously this will cause problems if we have a cluster that drifts418: !  angular move to cause evaporation. Obviously this will cause problems if we have a cluster that drifts
591:               COORDS(J2-1,NP)=COORDS(J2-1,NP)+LOCALSTEP*RANDOM*DUMMY591:               COORDS(J2-1,NP)=COORDS(J2-1,NP)+LOCALSTEP*RANDOM*DUMMY
592:               RANDOM=(DPRAND()-0.5D0)*2.0D0592:               RANDOM=(DPRAND()-0.5D0)*2.0D0
593: !             COORDS(J2,NP)=COORDS(J2,NP)+LOCALSTEP*RANDOM*CMDIST(J1)/CMMAX593: !             COORDS(J2,NP)=COORDS(J2,NP)+LOCALSTEP*RANDOM*CMDIST(J1)/CMMAX
594:               IF (.NOT.TWOD) COORDS(J2,NP)=COORDS(J2,NP)+LOCALSTEP*RANDOM*DUMMY594:               IF (.NOT.TWOD) COORDS(J2,NP)=COORDS(J2,NP)+LOCALSTEP*RANDOM*DUMMY
595:            ENDIF595:            ENDIF
596: !596: !
597: ! Stop atoms leaving the container in this step597: ! Stop atoms leaving the container in this step
598: !598: !
599:            IF ((.NOT.PERIODIC).AND.(.NOT.AMBERT).AND.(.NOT.(RIGID.AND.((J1.GT.NATOMS/2)))).AND.(.NOT.BLNT).AND.(.NOT.MLP3T)599:            IF ((.NOT.PERIODIC).AND.(.NOT.AMBERT).AND.(.NOT.(RIGID.AND.((J1.GT.NATOMS/2)))).AND.(.NOT.BLNT).AND.(.NOT.MLP3T)
600:      1     .AND.(.NOT.PERCOLATET).AND.(.NOT.DIFFRACTT).AND.(.NOT.THOMSONT).AND.(.NOT.GAUSST).AND.(.NOT.QCIPOTT)600:      1     .AND.(.NOT.PERCOLATET).AND.(.NOT.DIFFRACTT).AND.(.NOT.THOMSONT).AND.(.NOT.GAUSST).AND.(.NOT.QCIPOTT)
601:      2     .AND.(.NOT.MKTRAPT).AND.(.NOT.MLPB3T)) THEN601:      2     .AND.(.NOT.MKTRAPT)) THEN
602: !          IF ((.NOT.PERIODIC).AND.(.NOT.AMBER).AND.(.NOT.(RIGID.AND.(LOCALSTEP.EQ.0.0D0))).AND.(.NOT.BLNT)) THEN602: !          IF ((.NOT.PERIODIC).AND.(.NOT.AMBER).AND.(.NOT.(RIGID.AND.(LOCALSTEP.EQ.0.0D0))).AND.(.NOT.BLNT)) THEN
603:               DUMMY=COORDS(J2-2,NP)**2+COORDS(J2-1,NP)**2+COORDS(J2,NP)**2603:               DUMMY=COORDS(J2-2,NP)**2+COORDS(J2-1,NP)**2+COORDS(J2,NP)**2
604: !604: !
605: !  Simply rescaling the radius of an atom that leaves the container will bias the sampling605: !  Simply rescaling the radius of an atom that leaves the container will bias the sampling
606: !  of configuration space. However, we are not using takestep for bspt thermodynamic sampling!606: !  of configuration space. However, we are not using takestep for bspt thermodynamic sampling!
607: !  So, put the atom back in the container on the other side!607: !  So, put the atom back in the container on the other side!
608: !608: !
609: !              IF (DUMMY.GT.RADIUS) THEN609: !              IF (DUMMY.GT.RADIUS) THEN
610: !                 COORDS(J2-2,NP)=(SQRT(RADIUS)-0.5D0)*COORDS(J2-2,NP)/SQRT(DUMMY)610: !                 COORDS(J2-2,NP)=(SQRT(RADIUS)-0.5D0)*COORDS(J2-2,NP)/SQRT(DUMMY)
611: !                 COORDS(J2-1,NP)=(SQRT(RADIUS)-0.5D0)*COORDS(J2-1,NP)/SQRT(DUMMY)611: !                 COORDS(J2-1,NP)=(SQRT(RADIUS)-0.5D0)*COORDS(J2-1,NP)/SQRT(DUMMY)


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0