hdiff output

r29255/commons.f90 2015-11-17 23:33:21.312790575 +0000 r29254/commons.f90 2015-11-17 23:33:22.068800716 +0000
138: ! csw34> PAIRDIST variables138: ! csw34> PAIRDIST variables
139: !139: !
140:       INTEGER :: NPAIRS140:       INTEGER :: NPAIRS
141:       INTEGER, ALLOCATABLE :: PAIRDIST(:,:)141:       INTEGER, ALLOCATABLE :: PAIRDIST(:,:)
142:       LOGICAL :: PAIRDISTT142:       LOGICAL :: PAIRDISTT
143: !143: !
144: ! csw34> Reporter for chirality and cis/trans checks in quench.f144: ! csw34> Reporter for chirality and cis/trans checks in quench.f
145: !145: !
146:       LOGICAL :: GOODSTRUCTURE146:       LOGICAL :: GOODSTRUCTURE
147: 147: 
148: ! 
149: ! csw34> Array to contain the number of atoms in the AVOID list when using NEWRESTART 
150:  
151:       INTEGER, ALLOCATABLE :: AVOIDNATOMS(:) 
152: ! 
153:  
154: ! GROUP ROTATION MOVE PARAMETERS148: ! GROUP ROTATION MOVE PARAMETERS
155:       INTEGER :: GROUPROTFREQ, NGROUPS149:       INTEGER :: GROUPROTFREQ, NGROUPS
156:       LOGICAL :: GROUPROTT, DOGROUPROT=.FALSE., GR_SCALEROT, GR_SCALEPROB150:       LOGICAL :: GROUPROTT, DOGROUPROT=.FALSE., GR_SCALEROT, GR_SCALEPROB
157:       CHARACTER(LEN=10), ALLOCATABLE :: ATOMGROUPNAMES(:)151:       CHARACTER(LEN=10), ALLOCATABLE :: ATOMGROUPNAMES(:)
158:       CHARACTER(LEN=30) :: GR_SCALEMODE152:       CHARACTER(LEN=30) :: GR_SCALEMODE
159:       INTEGER, ALLOCATABLE :: ATOMGROUPAXIS(:,:)153:       INTEGER, ALLOCATABLE :: ATOMGROUPAXIS(:,:)
160:       DOUBLE PRECISION, ALLOCATABLE :: ATOMGROUPSCALING(:),ATOMGROUPPSELECT(:)154:       DOUBLE PRECISION, ALLOCATABLE :: ATOMGROUPSCALING(:),ATOMGROUPPSELECT(:)
161:       LOGICAL, ALLOCATABLE :: ATOMGROUPS(:,:)155:       LOGICAL, ALLOCATABLE :: ATOMGROUPS(:,:)
162:       156:       
163: ! DIHEDRAL GROUP ROTATION MOVE PARAMETERS157: ! DIHEDRAL GROUP ROTATION MOVE PARAMETERS


r29255/GMINdump.f90 2015-11-17 23:33:21.124788055 +0000 r29254/GMINdump.f90 2015-11-17 23:33:21.880798195 +0000
  1: SUBROUTINE DUMPSTATE(NDONE,EBEST,BESTCOORDS,JBEST,JP)  1: SUBROUTINE DUMPSTATE(NDONE,EBEST,BESTCOORDS,JBEST,JP)
  2: !USE COMMONS,ONLY : NATOMS, NPAR, STEP, ASTEP, OSTEP, TEMP, NMSBSAVE, MSBE, MSBCOORDS, &  2: !USE COMMONS,ONLY : NATOMS, NPAR, STEP, ASTEP, OSTEP, TEMP, NMSBSAVE, MSBE, MSBCOORDS, &
  3: !  &                NSAVE, MAXSAVE, MYUNIT, A9INTET, NSAVEINTE, COORDSO, &  3: !  &                NSAVE, MAXSAVE, MYUNIT, A9INTET, NSAVEINTE, COORDSO, &
  4: !  &                DUMPSTRUCTURES, DUMPMINT, NPCALL, NATOMSALLOC !jdf43>  4: !  &                DUMPSTRUCTURES, DUMPMINT, NPCALL, NATOMSALLOC !jdf43>
  5: USE COMMONS,ONLY : NATOMS, NPAR, STEP, ASTEP, OSTEP, TEMP, NMSBSAVE, MSBE, MSBCOORDS, &  5: USE COMMONS,ONLY : NATOMS, NPAR, STEP, ASTEP, OSTEP, TEMP, NMSBSAVE, MSBE, MSBCOORDS, &
  6:   &                NSAVE, MAXSAVE, MYUNIT, A9INTET, NSAVEINTE, &  6:   &                NSAVE, MAXSAVE, MYUNIT, A9INTET, NSAVEINTE, &
  7:   &                DUMPSTRUCTURES, DUMPMINT, NPCALL, NATOMSALLOC, & !jdf43>  7:   &                DUMPSTRUCTURES, DUMPMINT, NPCALL, NATOMSALLOC, & !jdf43>
  8:   &                GCBHT, GCNATOMS, QENERGIES, QPE, QCOORDINATES, AVOIDNATOMS  8:   &                GCBHT, GCNATOMS, QENERGIES, QPE, QCOORDINATES
  9:   9: 
 10: USE QMODULE 10: USE QMODULE
 11: USE PORFUNCS 11: USE PORFUNCS
 12: USE OUTPUT, ONLY : WRITE_MARKOV_COORDS 12: USE OUTPUT, ONLY : WRITE_MARKOV_COORDS
 13: IMPLICIT NONE 13: IMPLICIT NONE
 14: INTEGER NDONE, JBEST(NPAR), JP, J1, MYUNIT2, GETUNIT, LUNIT 14: INTEGER NDONE, JBEST(NPAR), JP, J1, MYUNIT2, GETUNIT, LUNIT
 15: DOUBLE PRECISION EBEST(NPAR), BESTCOORDS(3*NATOMSALLOC,NPAR) 15: DOUBLE PRECISION EBEST(NPAR), BESTCOORDS(3*NATOMSALLOC,NPAR)
 16: DOUBLE PRECISION  DUMGRAD(3*NATOMSALLOC), OPOTEL, SAVEP 16: DOUBLE PRECISION  DUMGRAD(3*NATOMSALLOC), OPOTEL, SAVEP
 17: CHARACTER(LEN=20) :: ISTR 17: CHARACTER(LEN=20) :: ISTR
 18: ! ss2029> added variable ISTR1  18: ! ss2029> added variable ISTR1 
 86:   WRITE(MYUNIT2, '(A,I8)') 'run number ',JP 86:   WRITE(MYUNIT2, '(A,I8)') 'run number ',JP
 87:   WRITE(MYUNIT2, '(I8,F25.15)') JBEST(JP), EBEST(JP) 87:   WRITE(MYUNIT2, '(I8,F25.15)') JBEST(JP), EBEST(JP)
 88:   WRITE(MYUNIT2, '(I8)') QMINNATOMS(1) 88:   WRITE(MYUNIT2, '(I8)') QMINNATOMS(1)
 89:   WRITE(MYUNIT2, '(3F25.15)') BESTCOORDS(1:3*QMINNATOMS(1),JP) 89:   WRITE(MYUNIT2, '(3F25.15)') BESTCOORDS(1:3*QMINNATOMS(1),JP)
 90: ! bs360: the following is not tested for MPI (July 2010) 90: ! bs360: the following is not tested for MPI (July 2010)
 91:   WRITE(MYUNIT2, '(A)') 'new restart procedure - saved energies and coordinates in MSB list' 91:   WRITE(MYUNIT2, '(A)') 'new restart procedure - saved energies and coordinates in MSB list'
 92:   WRITE(MYUNIT2, '(I8)') NMSBSAVE 92:   WRITE(MYUNIT2, '(I8)') NMSBSAVE
 93:   DO J1=1,MIN(NMSBSAVE,MAXSAVE) 93:   DO J1=1,MIN(NMSBSAVE,MAXSAVE)
 94:      WRITE(MYUNIT2, '(A,I8)') 'structure number ',J1 94:      WRITE(MYUNIT2, '(A,I8)') 'structure number ',J1
 95:      WRITE(MYUNIT2, '(G25.15)') MSBE(J1) 95:      WRITE(MYUNIT2, '(G25.15)') MSBE(J1)
 96:      WRITE(MYUNIT2, '(I8)') AVOIDNATOMS(J1) 96:      WRITE(MYUNIT2, '(I8)') QMINNATOMS(1)
 97:      WRITE(MYUNIT2, '(3F25.15)') MSBCOORDS(1:3*AVOIDNATOMS(J1),JP) 97:      WRITE(MYUNIT2, '(3F25.15)') MSBCOORDS(1:3*QMINNATOMS(J1),JP)
 98:   ENDDO 98:   ENDDO
 99: ! WRITE(MYUNIT2, '(A)','old taboo procedure: energy and inertia determinant' 99: ! WRITE(MYUNIT2, '(A)','old taboo procedure: energy and inertia determinant'
100: ! DO J1=1,NPAR100: ! DO J1=1,NPAR
101:    ! WRITE(MYUNIT2, '(A,I8)') 'taboo structure ',J1101:    ! WRITE(MYUNIT2, '(A,I8)') 'taboo structure ',J1
102:    ! WRITE(MYUNIT2, '(2G25.15)') ESAVE(J1), XINSAVE(J1)102:    ! WRITE(MYUNIT2, '(2G25.15)') ESAVE(J1), XINSAVE(J1)
103: ! ENDDO103: ! ENDDO
104: !104: !
105:   CLOSE(MYUNIT2)105:   CLOSE(MYUNIT2)
106: 106: 
107: 107: 
125:      CLOSE(UNIT=LUNIT)125:      CLOSE(UNIT=LUNIT)
126:   ENDIF126:   ENDIF
127: ENDIF127: ENDIF
128: 128: 
129: RETURN129: RETURN
130: END SUBROUTINE DUMPSTATE130: END SUBROUTINE DUMPSTATE
131: 131: 
132: SUBROUTINE RESTORESTATE(NDONE,EBEST,BESTCOORDS,JBEST,JP)132: SUBROUTINE RESTORESTATE(NDONE,EBEST,BESTCOORDS,JBEST,JP)
133: USE COMMONS,ONLY : NATOMS, COORDS, NPAR, STEP, ASTEP, OSTEP, TEMP, NMSBSAVE, MSBE, MSBCOORDS, &133: USE COMMONS,ONLY : NATOMS, COORDS, NPAR, STEP, ASTEP, OSTEP, TEMP, NMSBSAVE, MSBE, MSBCOORDS, &
134:   &                NSAVE, MAXSAVE, MYUNIT, AMHT, SEEDT, A9INTET, NSAVEINTE, INTEDUMPFILE, INTERESTORE, NPCALL, GCBHT, &134:   &                NSAVE, MAXSAVE, MYUNIT, AMHT, SEEDT, A9INTET, NSAVEINTE, INTEDUMPFILE, INTERESTORE, NPCALL, GCBHT, &
135:   &                GCNATOMS, QENERGIES, QPE, QCOORDINATES, AVOIDNATOMS135:   &                GCNATOMS, QENERGIES, QPE, QCOORDINATES
136: USE QMODULE136: USE QMODULE
137: IMPLICIT NONE137: IMPLICIT NONE
138: INTEGER NDONE, JBEST(NPAR), JP, J1, OLDSAVE, MYUNIT2, LUNIT, GETUNIT, NDUMMY138: INTEGER NDONE, JBEST(NPAR), JP, J1, OLDSAVE, MYUNIT2, LUNIT, GETUNIT, NDUMMY
139: DOUBLE PRECISION EBEST(NPAR), BESTCOORDS(3*NATOMS,NPAR), DUMMYARRAY(3*NATOMS)139: DOUBLE PRECISION EBEST(NPAR), BESTCOORDS(3*NATOMS,NPAR), DUMMYARRAY(3*NATOMS)
140: CHARACTER(LEN=1) DUMMYS140: CHARACTER(LEN=1) DUMMYS
141: CHARACTER(LEN=20) :: ISTR141: CHARACTER(LEN=20) :: ISTR
142: 142: 
143: IF (NPAR.GT.1) THEN143: IF (NPAR.GT.1) THEN
144:    WRITE (ISTR, '(i10)') JP144:    WRITE (ISTR, '(i10)') JP
145:    MYUNIT2=GETUNIT()145:    MYUNIT2=GETUNIT()
194:                  READ(MYUNIT2,*) DUMMYS194:                  READ(MYUNIT2,*) DUMMYS
195:                  READ(MYUNIT2,*) QMIN(J1)195:                  READ(MYUNIT2,*) QMIN(J1)
196:                  READ(MYUNIT2,*) NPCALL_QMIN(J1)196:                  READ(MYUNIT2,*) NPCALL_QMIN(J1)
197:                  READ(MYUNIT2,*) QMINNATOMS(J1)197:                  READ(MYUNIT2,*) QMINNATOMS(J1)
198:                  READ(MYUNIT2,*) QMINP(J1,1:3*QMINNATOMS(J1))198:                  READ(MYUNIT2,*) QMINP(J1,1:3*QMINNATOMS(J1))
199:               ELSE 199:               ELSE 
200:                  READ(MYUNIT2,*) DUMMYS200:                  READ(MYUNIT2,*) DUMMYS
201:                  READ(MYUNIT2,*) DUMMYS201:                  READ(MYUNIT2,*) DUMMYS
202:                  READ(MYUNIT2,*) DUMMYS202:                  READ(MYUNIT2,*) DUMMYS
203:                  READ(MYUNIT2,*) QMINNATOMS(J1)203:                  READ(MYUNIT2,*) QMINNATOMS(J1)
 204:                  PRINT *,'J1,QMINNATOMS=',J1,QMINNATOMS(J1)
204:                  READ(MYUNIT2,*) DUMMYARRAY(1:3*QMINNATOMS(J1))205:                  READ(MYUNIT2,*) DUMMYARRAY(1:3*QMINNATOMS(J1))
205:               ENDIF206:               ENDIF
206:            ENDDO207:            ENDDO
207:         ELSEIF (NSAVE.GT.OLDSAVE) THEN208:         ELSEIF (NSAVE.GT.OLDSAVE) THEN
208:            PRINT *,'NSAVE>OLDSAVE - padding QMIN and QMINP with zeros'209:            PRINT *,'NSAVE>OLDSAVE - padding QMIN and QMINP with zeros'
209:            DO J1=1,NSAVE210:            DO J1=1,NSAVE
210:               IF (J1.LE.OLDSAVE) THEN211:               IF (J1.LE.OLDSAVE) THEN
211:                  READ(MYUNIT2,*) DUMMYS212:                  READ(MYUNIT2,*) DUMMYS
212:                  READ(MYUNIT2,*) QMIN(J1)213:                  READ(MYUNIT2,*) QMIN(J1)
213:                  READ(MYUNIT2,*) NPCALL_QMIN(J1)214:                  READ(MYUNIT2,*) NPCALL_QMIN(J1)
235:    READ(MYUNIT2,*) DUMMYS236:    READ(MYUNIT2,*) DUMMYS
236:    READ(MYUNIT2,*) JBEST(JP), EBEST(JP)237:    READ(MYUNIT2,*) JBEST(JP), EBEST(JP)
237:    READ(MYUNIT2,*) NDUMMY238:    READ(MYUNIT2,*) NDUMMY
238:    READ(MYUNIT2,*) BESTCOORDS(1:3*NDUMMY,JP)239:    READ(MYUNIT2,*) BESTCOORDS(1:3*NDUMMY,JP)
239: ! bs360: the following is not tested for MPI (July 2010)240: ! bs360: the following is not tested for MPI (July 2010)
240:   READ(MYUNIT2,*) DUMMYS241:   READ(MYUNIT2,*) DUMMYS
241:   READ(MYUNIT2,*) NMSBSAVE242:   READ(MYUNIT2,*) NMSBSAVE
242:   DO J1=1,MIN(NMSBSAVE,MAXSAVE)243:   DO J1=1,MIN(NMSBSAVE,MAXSAVE)
243:      READ(MYUNIT2,*) DUMMYS244:      READ(MYUNIT2,*) DUMMYS
244:      READ(MYUNIT2,*) MSBE(J1)245:      READ(MYUNIT2,*) MSBE(J1)
245:      READ(MYUNIT2,*) AVOIDNATOMS(J1)246:      READ(MYUNIT2,*) NDUMMY
246:      READ(MYUNIT2,*) MSBCOORDS(1:3*AVOIDNATOMS(J1),J1)247:      READ(MYUNIT2,*) MSBCOORDS(1:3*NDUMMY,J1)
247:   ENDDO248:   ENDDO
248: 249: 
249:   CLOSE(MYUNIT2)250:   CLOSE(MYUNIT2)
250: 251: 
251: 252: 
252: !   csw34> Add in restoring of the lowest interaction energies if A9INTE is specified253: !   csw34> Add in restoring of the lowest interaction energies if A9INTE is specified
253: !          INTERESTORE is .TRUE. if the RESTORE keyword has two arguements. The second is254: !          INTERESTORE is .TRUE. if the RESTORE keyword has two arguements. The second is
254: !          the name of the interaction energy dump file!255: !          the name of the interaction energy dump file!
255: IF (NPAR.EQ.1) THEN256: IF (NPAR.EQ.1) THEN
256: IF (A9INTET.AND.INTERESTORE) THEN257: IF (A9INTET.AND.INTERESTORE) THEN


r29255/main.F 2015-11-17 23:33:21.496793043 +0000 r29254/main.F 2015-11-17 23:33:22.252803183 +0000
 37:       !EXTERNAL READ_CMD_ARGS 37:       !EXTERNAL READ_CMD_ARGS
 38: #ifdef MPI 38: #ifdef MPI
 39:       INCLUDE 'mpif.h' 39:       INCLUDE 'mpif.h'
 40: #endif 40: #endif
 41:       INTEGER J1,J2, JP, MPIERR, NDUMMY3,NPTOTAL,VERSIONTEMP,GETUNIT,LUNIT 41:       INTEGER J1,J2, JP, MPIERR, NDUMMY3,NPTOTAL,VERSIONTEMP,GETUNIT,LUNIT
 42:       DOUBLE PRECISION, ALLOCATABLE :: SCREENC(:) 42:       DOUBLE PRECISION, ALLOCATABLE :: SCREENC(:)
 43:       DOUBLE PRECISION POTEL, DUMMY, INTFREEZETOLSAVE, RMAT(3,3), DUMMY2, DIST2, LINTCONSTRAINTTOL 43:       DOUBLE PRECISION POTEL, DUMMY, INTFREEZETOLSAVE, RMAT(3,3), DUMMY2, DIST2, LINTCONSTRAINTTOL
 44:       DOUBLE PRECISION, ALLOCATABLE :: TMPCOORDS(:), ENDCOORDS(:,:) 44:       DOUBLE PRECISION, ALLOCATABLE :: TMPCOORDS(:), ENDCOORDS(:,:)
 45:       INTEGER, ALLOCATABLE :: NDUMMY(:), NDUMMY2(:,:) 45:       INTEGER, ALLOCATABLE :: NDUMMY(:), NDUMMY2(:,:)
 46:       LOGICAL LOPEN, YESNO 46:       LOGICAL LOPEN, YESNO
 47:       INTEGER J6, EPOCH 47:       INTEGER J6
 48:  48: 
 49:       CHARACTER(LEN=130) ISTR,JSTR 49:       CHARACTER(LEN=130) ISTR,JSTR
 50:       CHARACTER(LEN=40) :: atom1,atom2,atompair 50:       CHARACTER(LEN=40) :: atom1,atom2,atompair
 51:  51: 
 52:       CHARACTER(LEN=13) :: CUDAFILENAME1 52:       CHARACTER(LEN=13) :: CUDAFILENAME1
 53:       CHARACTER(LEN=19) :: CUDAFILENAME2 53:       CHARACTER(LEN=19) :: CUDAFILENAME2
 54:       CHARACTER(LEN=21) :: CUDAFILENAME3 54:       CHARACTER(LEN=21) :: CUDAFILENAME3
 55:       CHARACTER(LEN=24) :: CUDAFILENAME4 55:       CHARACTER(LEN=24) :: CUDAFILENAME4
 56:       CHARACTER(LEN=17) :: CUDAFILENAME5 56:       CHARACTER(LEN=17) :: CUDAFILENAME5
 57:  57: 
 86:       AMBPDB_UNIT=18000 86:       AMBPDB_UNIT=18000
 87:       AMBFINALIO_NODE=1 87:       AMBFINALIO_NODE=1
 88:       IF (TRIM(ADJUSTL(INFILE)).EQ.'') THEN 88:       IF (TRIM(ADJUSTL(INFILE)).EQ.'') THEN
 89:          MYFILENAME="output" 89:          MYFILENAME="output"
 90:       ELSE 90:       ELSE
 91:          MYFILENAME=TRIM(ADJUSTL(INFILE)) 91:          MYFILENAME=TRIM(ADJUSTL(INFILE))
 92:       ENDIF 92:       ENDIF
 93:       OPEN(MYUNIT,FILE=MYFILENAME, STATUS="unknown", form="formatted") 93:       OPEN(MYUNIT,FILE=MYFILENAME, STATUS="unknown", form="formatted")
 94:       WRITE(MYUNIT, '(A,I10,A,I10,A)') "Starting serial execution" 94:       WRITE(MYUNIT, '(A,I10,A,I10,A)') "Starting serial execution"
 95: #endif 95: #endif
 96:  
 97: ! csw34> TIME LIMITING BINARIES 
 98: !        If you want to compile a time limited binary, uncomment the below 
 99: !        and replace the time in seconds after IF (EPOCH.LT. with your own 
100: !        and update the error messages to make sense in your case 
101:  
102: ! find the number of seconds since 0000 on 1/1/1970 (unix epoch) 
103: !      EPOCH=TIME() 
104: ! compare this to the number that will have passed at 1am on 5/11/15 
105: !      IF (EPOCH.LT.1449277200) THEN 
106: !         WRITE(MYUNIT, '(A)') "NOTE: Binary only licensed for use at AlgoSB2015" 
107: !      ELSE 
108: ! if after the workshop has ended, stop execution with error 
109: !         WRITE(MYUNIT, '(A)') "ERROR: license missing, contact dw34@cam.ac.uk. Stopping." 
110: !         STOP    
111: !      END IF 
112:  
113: ! Add the GMIN version to the output - helps bug hunting :) 96: ! Add the GMIN version to the output - helps bug hunting :)
114:       !WRITE(MYUNIT, '(A,I5)') 'GMIN version r',VERSIONTEMP 97:       !WRITE(MYUNIT, '(A,I5)') 'GMIN version r',VERSIONTEMP
115: !     CALL DISPLAY_VERSION(MYUNIT) 98: !     CALL DISPLAY_VERSION(MYUNIT)
116:       CALL COUNTATOMS(MYUNIT, NPAR, GCBHT, GCMU, GCNATOMS) 99:       CALL COUNTATOMS(MYUNIT, NPAR, GCBHT, GCMU, GCNATOMS)
117:       IF (CHRMMT) WRITE(MYUNIT,'(A,I8)') 'main> MAXAIM parameter for CHARMM MXATMS=',MXATMS100:       IF (CHRMMT) WRITE(MYUNIT,'(A,I8)') 'main> MAXAIM parameter for CHARMM MXATMS=',MXATMS
118: !101: !
119: ! NATOMS is set to NUMBER_OF_ATOMS in modcommonunit102: ! NATOMS is set to NUMBER_OF_ATOMS in modcommonunit
120: !103: !
121:       NATOMSALLOC=NUMBER_OF_ATOMS104:       NATOMSALLOC=NUMBER_OF_ATOMS
122:       NATOMS=NUMBER_OF_ATOMS105:       NATOMS=NUMBER_OF_ATOMS
314: !        conversion?297: !        conversion?
315: !         298: !         
316:          OPEN(UNIT=1,FILE='compare',STATUS='OLD')299:          OPEN(UNIT=1,FILE='compare',STATUS='OLD')
317:          READ(1,*) (COORCOMP(J1),J1=1,3*NATOMS)300:          READ(1,*) (COORCOMP(J1),J1=1,3*NATOMS)
318:          CLOSE(1)301:          CLOSE(1)
319:       ENDIF302:       ENDIF
320: 303: 
321:       ALLOCATE(FF(NSAVE),QMIN(MAX(NSAVE,1)))304:       ALLOCATE(FF(NSAVE),QMIN(MAX(NSAVE,1)))
322:       ALLOCATE(QMINP(NSAVE,3*NATOMSALLOC))305:       ALLOCATE(QMINP(NSAVE,3*NATOMSALLOC))
323:       ALLOCATE(QMINNATOMS(NSAVE))306:       ALLOCATE(QMINNATOMS(NSAVE))
324:       ALLOCATE(AVOIDNATOMS(MAXSAVE)) 
325:       ALLOCATE(QMINT(NSAVE,NATOMSALLOC))307:       ALLOCATE(QMINT(NSAVE,NATOMSALLOC))
326:       ALLOCATE(NPCALL_QMIN(NSAVE))308:       ALLOCATE(NPCALL_QMIN(NSAVE))
327:       IF (MONITORT) THEN309:       IF (MONITORT) THEN
328:          ALLOCATE(LOWESTC(3*NATOMSALLOC))310:          ALLOCATE(LOWESTC(3*NATOMSALLOC))
329:       ENDIF311:       ENDIF
330: 312: 
331: !        csw34> ALLOCATE the interaction energy tracking arrays if A9INTE in data313: !        csw34> ALLOCATE the interaction energy tracking arrays if A9INTE in data
332:       IF (A9INTET.AND.AMBERT) THEN 314:       IF (A9INTET.AND.AMBERT) THEN 
333:          ALLOCATE(INTEFF(NSAVEINTE),INTEQMIN(NSAVEINTE))315:          ALLOCATE(INTEFF(NSAVEINTE),INTEQMIN(NSAVEINTE))
334:          ALLOCATE(INTEQMINP(NSAVEINTE,3*NATOMS))316:          ALLOCATE(INTEQMINP(NSAVEINTE,3*NATOMS))
341:          ALLOCATE(GAUSSKK(3*NATOMSALLOC,GMODES),GAUSSEE(GMODES),GKSMALL(3*NATOMSALLOC))323:          ALLOCATE(GAUSSKK(3*NATOMSALLOC,GMODES),GAUSSEE(GMODES),GKSMALL(3*NATOMSALLOC))
342:          CALL KEGEN ! INITIAL SETUP 324:          CALL KEGEN ! INITIAL SETUP 
343:          DO J1=1,GMODES325:          DO J1=1,GMODES
344:              PRINT *,J1,GAUSSEE(J1)326:              PRINT *,J1,GAUSSEE(J1)
345:          ENDDO327:          ENDDO
346:       ENDIF328:       ENDIF
347: 329: 
348:       QMINP(1:NSAVE,1:3*NATOMSALLOC)=0.0D0 ! to prevent reading from uninitialised memory330:       QMINP(1:NSAVE,1:3*NATOMSALLOC)=0.0D0 ! to prevent reading from uninitialised memory
349:       QMINT(1:NSAVE,1:NATOMSALLOC)=1 ! to prevent reading from uninitialised memory331:       QMINT(1:NSAVE,1:NATOMSALLOC)=1 ! to prevent reading from uninitialised memory
350:       QMINNATOMS(1:NSAVE)=NATOMS ! to prevent reading from uninitialised memory332:       QMINNATOMS(1:NSAVE)=NATOMS ! to prevent reading from uninitialised memory
351:       AVOIDNATOMS(1:MAXSAVE)=NATOMS ! as above 
352:       COORDSO(1:3*NATOMSALLOC,1:NPAR)=0.0D0 ! to prevent reading from uninitialised memory333:       COORDSO(1:3*NATOMSALLOC,1:NPAR)=0.0D0 ! to prevent reading from uninitialised memory
353:       FF(1:NSAVE)=0 ! to prevent reading from uninitialised memorY334:       FF(1:NSAVE)=0 ! to prevent reading from uninitialised memorY
354:       VATO(1:NATOMSALLOC,1:NPAR)=0.0D0 ! to prevent reading from uninitialised memory335:       VATO(1:NATOMSALLOC,1:NPAR)=0.0D0 ! to prevent reading from uninitialised memory
355:       ALLOCATE(ESAVE(NTAB,NPAR),XINSAVE(NTAB,NPAR))336:       ALLOCATE(ESAVE(NTAB,NPAR),XINSAVE(NTAB,NPAR))
356:       ALLOCATE(VEC(NVEC))337:       ALLOCATE(VEC(NVEC))
357: 338: 
358: !     IF (SYMMETRIZE.AND.(.NOT.CENT)) THEN339: !     IF (SYMMETRIZE.AND.(.NOT.CENT)) THEN
359: !        PRINT '(A)','Probable input error - SYMMETRIZE true but CENT false'340: !        PRINT '(A)','Probable input error - SYMMETRIZE true but CENT false'
360: !        STOP341: !        STOP
361: !     ENDIF342: !     ENDIF


r29255/mc.F 2015-11-17 23:33:21.688795624 +0000 r29254/mc.F 2015-11-17 23:33:22.444805757 +0000
2963:          ELSEIF (RES1.OR.(RES2.AND.(DISTANCE.GT.0.1D0))) THEN ! new condition2963:          ELSEIF (RES1.OR.(RES2.AND.(DISTANCE.GT.0.1D0))) THEN ! new condition
2964:             NMSBSAVE=NMSBSAVE+12964:             NMSBSAVE=NMSBSAVE+1
2965:             NPOSITION=MOD(NMSBSAVE,MAXSAVE)2965:             NPOSITION=MOD(NMSBSAVE,MAXSAVE)
2966:             IF (NPOSITION.EQ.0) NPOSITION=MAXSAVE2966:             IF (NPOSITION.EQ.0) NPOSITION=MAXSAVE
2967:             MSBE(NPOSITION)=EBEST(JP)2967:             MSBE(NPOSITION)=EBEST(JP)
2968:             FCOORDS(1:3*NATOMS)=BESTCOORDS(1:3*NATOMS,JP)2968:             FCOORDS(1:3*NATOMS)=BESTCOORDS(1:3*NATOMS,JP)
2969: 2969: 
2970:             CALL MYORIENT(FCOORDS,DUMMY,NORBIT1,1,NORBIT2,1,NATOMS,DEBUG,ROTA,ROTINVA,STOCKT)2970:             CALL MYORIENT(FCOORDS,DUMMY,NORBIT1,1,NORBIT2,1,NATOMS,DEBUG,ROTA,ROTINVA,STOCKT)
2971: 2971: 
2972:             MSBCOORDS(1:3*NATOMS,NPOSITION)=DUMMY(1:3*NATOMS)2972:             MSBCOORDS(1:3*NATOMS,NPOSITION)=DUMMY(1:3*NATOMS)
2973: ! csw34> store the number of atoms in the new structure for dumping in DUMPSTATE 
2974:             AVOIDNATOMS(NPOSITION) = NATOMS 
2975: 2973: 
2976:             WRITE(MYUNIT,'(A,I6,A,G20.10)') 'newres> Moving current best minimum to position ',NPOSITION,2974:             WRITE(MYUNIT,'(A,I6,A,G20.10)') 'newres> Moving current best minimum to position ',NPOSITION,
2977:      &                         ' in the AVOID list E=',EBEST(JP)2975:      &                         ' in the AVOID list E=',EBEST(JP)
2978: !           OPEN(UNIT=34,FILE='MSBdata',POSITION='APPEND')2976: !           OPEN(UNIT=34,FILE='MSBdata',POSITION='APPEND')
2979: !           WRITE(34,'(G20.10)') MSBE(NPOSITION) 2977: !           WRITE(34,'(G20.10)') MSBE(NPOSITION) 
2980: !           WRITE(34,'(3G20.10)') BESTCOORDS(1:3*NATOMS,JP)2978: !           WRITE(34,'(3G20.10)') BESTCOORDS(1:3*NATOMS,JP)
2981: !           CLOSE(34)2979: !           CLOSE(34)
2982:          ELSEIF (RES2.AND.(DISTANCE.LE.0.01D0)) THEN2980:          ELSEIF (RES2.AND.(DISTANCE.LE.0.01D0)) THEN
2983: !           IF (NMSBSAVE.LT.MAXSAVE) THEN2981: !           IF (NMSBSAVE.LT.MAXSAVE) THEN
2984:                NMSBSAVE=NMSBSAVE+12982:                NMSBSAVE=NMSBSAVE+1
2985:                NPOSITION=MOD(NMSBSAVE,MAXSAVE)2983:                NPOSITION=MOD(NMSBSAVE,MAXSAVE)
2986:                IF (NPOSITION.EQ.0) NPOSITION=MAXSAVE2984:                IF (NPOSITION.EQ.0) NPOSITION=MAXSAVE
2987:                MSBE(NPOSITION)=EBESTP2985:                MSBE(NPOSITION)=EBESTP
2988:                FCOORDS(1:3*NATOMS)=BESTCOORDSP(1:3*NATOMS)2986:                FCOORDS(1:3*NATOMS)=BESTCOORDSP(1:3*NATOMS)
2989:                CALL MYORIENT(FCOORDS,DUMMY,NORBIT1,1,NORBIT2,1,NATOMS,DEBUG,ROTA,ROTINVA,STOCKT)2987:                CALL MYORIENT(FCOORDS,DUMMY,NORBIT1,1,NORBIT2,1,NATOMS,DEBUG,ROTA,ROTINVA,STOCKT)
2990:  
2991:                MSBCOORDS(1:3*NATOMS,NPOSITION)=DUMMY(1:3*NATOMS)2988:                MSBCOORDS(1:3*NATOMS,NPOSITION)=DUMMY(1:3*NATOMS)
2992: ! csw34> store the number of atoms in the new structure for dumping in DUMPSTATE 
2993:                AVOIDNATOMS(NPOSITION) = NATOMS 
2994:  
2995:                WRITE(MYUNIT,'(A,I6,A,G20.10)') 'newres> Moving previous best minimum to position ',NPOSITION,2989:                WRITE(MYUNIT,'(A,I6,A,G20.10)') 'newres> Moving previous best minimum to position ',NPOSITION,
2996:      1                             ' in the AVOID list E=',EBESTP2990:      1                             ' in the AVOID list E=',EBESTP
2997: !           ENDIF2991: !           ENDIF
2998:          ENDIF ! end new condition2992:          ENDIF ! end new condition
2999: 2993: 
3000:          IF (NEWRESTART_MD) THEN ! lb4152994:          IF (NEWRESTART_MD) THEN ! lb415
3001:             IF (RES1) WRITE(MYUNIT,'(A,I8,A)') 'newres> Energy has not improved since step ',JBEST(JP),' - perturbing'2995:             IF (RES1) WRITE(MYUNIT,'(A,I8,A)') 'newres> Energy has not improved since step ',JBEST(JP),' - perturbing'
3002:             WRITE(MYUNIT,'(A,I8,A)') 'newres> Reseeding via a short high temperature MD run'2996:             WRITE(MYUNIT,'(A,I8,A)') 'newres> Reseeding via a short high temperature MD run'
3003:             CHANGE_TEMP = .true.2997:             CHANGE_TEMP = .true.
3004: 2998: 


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0