hdiff output

r29932/commons.f90 2016-03-16 18:33:36.999096186 +0000 r29931/commons.f90 2016-03-16 18:33:38.411110711 +0000
 58:      &                 TBPMIN, TBPSTEP, TBPHF, TBPCF, TBPINCR, SHIFTV, GEOMDIFFTOL, LJATTOC, GCMU, & 58:      &                 TBPMIN, TBPSTEP, TBPHF, TBPCF, TBPINCR, SHIFTV, GEOMDIFFTOL, LJATTOC, GCMU, &
 59:      &                 SRATIO, TRATIO, EXCHINT, DDMCUT, SUMTEMP, SUMSTEP, SUMOSTEP, EXPANDFACTOR, ROTATEFACTOR, EPSRIGID, & 59:      &                 SRATIO, TRATIO, EXCHINT, DDMCUT, SUMTEMP, SUMSTEP, SUMOSTEP, EXPANDFACTOR, ROTATEFACTOR, EPSRIGID, &
 60:      &                 CONTOURBOUNDS(3,2), KCOMP_RIGID, RIGIDCOMDIST, PALPHA, PBETA, PGAMMA, LAT(3,3), MFETPCTL, MFETTRGT, QUIPEQDIST, & 60:      &                 CONTOURBOUNDS(3,2), KCOMP_RIGID, RIGIDCOMDIST, PALPHA, PBETA, PGAMMA, LAT(3,3), MFETPCTL, MFETTRGT, QUIPEQDIST, &
 61:  61: 
 62: !   parameters for anisotropic potentials 62: !   parameters for anisotropic potentials
 63: ! 63: !
 64: !    DC430 > 64: !    DC430 >
 65:      &                 CAPEPS2, CAPRAD, CAPRHO, CAPHEIGHT1, CAPHEIGHT2, & 65:      &                 CAPEPS2, CAPRAD, CAPRHO, CAPHEIGHT1, CAPHEIGHT2, &
 66:      &                 EPSR, GBKAPPA, GBKAPPRM, GBMU,GBNU, GBSIGNOT, GBEPSNOT, GBCHI, GBCHIPRM, & 66:      &                 EPSR, GBKAPPA, GBKAPPRM, GBMU,GBNU, GBSIGNOT, GBEPSNOT, GBCHI, GBCHIPRM, &
 67:      &                 SIGNOT, EPSNOT, SIGMAF, INVKAP, ESA(3), LPRSQ, LSQDFR, GBDPMU, GBDPEPS, GBDPFCT, & 67:      &                 SIGNOT, EPSNOT, SIGMAF, INVKAP, ESA(3), LPRSQ, LSQDFR, GBDPMU, GBDPEPS, GBDPFCT, &
 68:      &                 PYSIGNOT, PYEPSNOT, PYA1(3), PYA2(3), PYDPMU, PYDPEPS, PYDPFCT, PYGRAVITYC1, PYGRAVITYC2, & 68:      &                 PYSIGNOT, PYEPSNOT, PYA1(3), PYA2(3), PYDPMU, PYDPEPS, PYDPFCT, &
 69:      &                 LWRCUT, LWCNSTA, LWCNSTB, LWRCUTSQ, LWRCUT2SQ, DELRC, PAPALP, PAPS, PAPCD, PAPEPS, PAPANG1, PAPANG2, &     69:      &                 LWRCUT, LWCNSTA, LWCNSTB, LWRCUTSQ, LWRCUT2SQ, DELRC, PAPALP, PAPS, PAPCD, PAPEPS, PAPANG1, PAPANG2, &    
 70:      &                 DBEPSBB, DBEPSAB, DBSIGBB, DBSIGAB, DBPMU, EFIELD, YKAPPA, YEPS, GEMRC, MREQ, HSEFF, BEPS, & 70:      &                 DBEPSBB, DBEPSAB, DBSIGBB, DBSIGAB, DBPMU, EFIELD, YKAPPA, YEPS, GEMRC, MREQ, HSEFF, BEPS, &
 71:      &                 EPS11, EPS22, EPS12, MRHO11, MRHO22, MRHO12, REQ11, REQ22, REQ12, & 71:      &                 EPS11, EPS22, EPS12, MRHO11, MRHO22, MRHO12, REQ11, REQ22, REQ12, &
 72:      &                 RHOCC0, RHOCC10, RHOCC20,  RHOHH0, RHOHH10, RHOHH20, RHOCH0, RHOC10H, & 72:      &                 RHOCC0, RHOCC10, RHOCC20,  RHOHH0, RHOHH10, RHOHH20, RHOCH0, RHOC10H, &
 73:      &                 RHOCH10, RHOC20H, RHOCH20, ALPHACC, ALPHAHH, ALPHACH, DC6CC, DC6HH, DC6CH, KKJ, CCKJ, SYMFCTR, & 73:      &                 RHOCH10, RHOC20H, RHOCH20, ALPHACC, ALPHAHH, ALPHACH, DC6CC, DC6HH, DC6CH, KKJ, CCKJ, SYMFCTR, &
 74:      &                 GBANISOTROPYR,GBWELLDEPTHR,PARAMa1,PARAMb1,PARAMc1,PARAMa2,PARAMB2,PARAMc2,PSIGMA0(2),PEPSILON0,& 74:      &                 GBANISOTROPYR,GBWELLDEPTHR,PARAMa1,PARAMb1,PARAMc1,PARAMa2,PARAMB2,PARAMc2,PSIGMA0(2),PEPSILON0,&
 75:      &                 PEPSILON1(3),PSCALEFAC1(2),PSCALEFAC2(2),PYA11(3),PYA21(3),PYA12(3),PYA22(3), & 75:      &                 PEPSILON1(3),PSCALEFAC1(2),PSCALEFAC2(2),PYA11(3),PYA21(3),PYA12(3),PYA22(3), &
 76:      &                 PEPSILONATTR(2),PSIGMAATTR(2), PYOVERLAPTHRESH, PYCFTHRESH, LJSITECOORDS(3), & 76:      &                 PEPSILONATTR(2),PSIGMAATTR(2), PYOVERLAPTHRESH, PYCFTHRESH, LJSITECOORDS(3), &
 77:      &                 MSTART,MFINISH,MBSTART1,MBFINISH1,MBSTART2,MBFINISH2,MBHEIGHT1,MBHEIGHT2,ME1,ME2,ME3, & 77:      &                 MSTART,MFINISH,MBSTART1,MBFINISH1,MBSTART2,MBFINISH2,MBHEIGHT1,MBHEIGHT2,ME1,ME2,ME3, &
 78:      &                 BSPTQMAX, BSPTQMIN, PFORCE, CSMNORM, CSMGUIDENORM, CSMEPS, PERCCUT, & 78:      &                 BSPTQMAX, BSPTQMIN, PFORCE, CSMNORM, CSMGUIDENORM, CSMEPS, PERCCUT, &
209:       INTEGER :: NHBONDGROUPS, HBONDLIGANDN209:       INTEGER :: NHBONDGROUPS, HBONDLIGANDN
210:       INTEGER, ALLOCATABLE :: HBONDGROUPS(:,:,:), HBONDMAT(:,:), HBONDGROUPPOP(:),HBONDGROUPIDS(:)210:       INTEGER, ALLOCATABLE :: HBONDGROUPS(:,:,:), HBONDMAT(:,:), HBONDGROUPPOP(:),HBONDGROUPIDS(:)
211:       INTEGER, ALLOCATABLE :: HBONDSOFTMAT(:,:)211:       INTEGER, ALLOCATABLE :: HBONDSOFTMAT(:,:)
212:       DOUBLE PRECISION :: HBONDESAVE, HBONDQUZEROE212:       DOUBLE PRECISION :: HBONDESAVE, HBONDQUZEROE
213:       DOUBLE PRECISION, ALLOCATABLE :: HBONDBESTCOORDS(:,:)213:       DOUBLE PRECISION, ALLOCATABLE :: HBONDBESTCOORDS(:,:)
214:       DOUBLE PRECISION, ALLOCATABLE :: HBONDMARKOV(:), HBONDBEST(:),HBONDQUE(:)214:       DOUBLE PRECISION, ALLOCATABLE :: HBONDMARKOV(:), HBONDBEST(:),HBONDQUE(:)
215:       DOUBLE PRECISION, ALLOCATABLE :: HBONDMAXE(:)215:       DOUBLE PRECISION, ALLOCATABLE :: HBONDMAXE(:)
216:       INTEGER :: HBONDNRES, HBONDMATCHN, MAXHBONDGROUPS216:       INTEGER :: HBONDNRES, HBONDMATCHN, MAXHBONDGROUPS
217: ! END OF HBONDMATRIX VARIABLES217: ! END OF HBONDMATRIX VARIABLES
218: 218: 
219: ! sf344> Modular global optimization variables 
220:       INTEGER :: MODULARNMIN, MODULARNMAX, MODULARNINCR, MODULARLOWEST,MODULARCURRENTN 
221:       LOGICAL :: MODULART,MODULARRESTARTT 
222:       LOGICAL, ALLOCATABLE :: EXCLUDED(:) 
223:       CHARACTER(LEN=80) :: MODULARRESTARTFILE  
224: ! sf344> end of modular global optimization variables 
225:  
226:       INTEGER  NGBSITE, NPYSITE, PYBINARYTYPE1, PYSWAP(3), MAXINTERACTIONS219:       INTEGER  NGBSITE, NPYSITE, PYBINARYTYPE1, PYSWAP(3), MAXINTERACTIONS
227:    220:    
228:       DOUBLE PRECISION :: DZP1, DZP2, DZP3, DZP4, DZP5, DZP6, DZP7221:       DOUBLE PRECISION :: DZP1, DZP2, DZP3, DZP4, DZP5, DZP6, DZP7
229:       LOGICAL :: FIELDT, OHT, IHT, TDT, D5HT222:       LOGICAL :: FIELDT, OHT, IHT, TDT, D5HT
230:       DOUBLE PRECISION :: FOH, FIH, FTD, FD5H223:       DOUBLE PRECISION :: FOH, FIH, FTD, FD5H
231: 224: 
232:       !ds656> Box centroid to facilitate global225:       !ds656> Box centroid to facilitate global
233:       !       optimisation of supported clusters.226:       !       optimisation of supported clusters.
234:       LOGICAL :: BOXCENTROIDT, BOXCENTROID_DISCRETE(3)227:       LOGICAL :: BOXCENTROIDT, BOXCENTROID_DISCRETE(3)
235:       DOUBLE PRECISION :: BOXCENTROID_X(3), BOXCENTROID_DX(3)228:       DOUBLE PRECISION :: BOXCENTROID_X(3), BOXCENTROID_DX(3)


r29932/keywords.f 2016-03-16 18:33:37.199098243 +0000 r29931/keywords.f 2016-03-16 18:33:38.607112720 +0000
298:       FREEZECORE=.TRUE.298:       FREEZECORE=.TRUE.
299:       FREEZE=.FALSE.299:       FREEZE=.FALSE.
300:       FREEZERES=.FALSE.300:       FREEZERES=.FALSE.
301:       FREEZEALL=.FALSE.301:       FREEZEALL=.FALSE.
302:       UNFREEZERES =.FALSE.302:       UNFREEZERES =.FALSE.
303: ! sf344> unfreeze structures at the final quench303: ! sf344> unfreeze structures at the final quench
304:       UNFREEZEFINALQ=.FALSE.304:       UNFREEZEFINALQ=.FALSE.
305:       NFREEZE=0305:       NFREEZE=0
306:       ALLOCATE(FROZEN(NATOMSALLOC))306:       ALLOCATE(FROZEN(NATOMSALLOC))
307:       FREEZESAVE=.TRUE.307:       FREEZESAVE=.TRUE.
308: ! sf344> Modular global optimization defaults 
309:       MODULART=.FALSE. 
310:       MODULARRESTARTT=.FALSE. 
311:       MODULARLOWEST=1 
312:       ALLOCATE(EXCLUDED(NATOMS)) 
313:       EXCLUDED(:)=.FALSE. 
314: ! csw34> The FROZENRES array is bigger than needed308: ! csw34> The FROZENRES array is bigger than needed
315:       ALLOCATE(FROZENRES(NATOMSALLOC))309:       ALLOCATE(FROZENRES(NATOMSALLOC))
316:       DO J1=1,NATOMSALLOC310:       DO J1=1,NATOMSALLOC
317:          FROZEN(J1)=.FALSE.311:          FROZEN(J1)=.FALSE.
318:          FROZENRES(J1)=.FALSE.312:          FROZENRES(J1)=.FALSE.
319:       ENDDO313:       ENDDO
320:       FREEZEGROUPTYPE='GT'314:       FREEZEGROUPTYPE='GT'
321:       FREEZEGROUPT=.FALSE.315:       FREEZEGROUPT=.FALSE.
322: ! jdf43> FROZENRIGIDBODY316: ! jdf43> FROZENRIGIDBODY
323:       ALLOCATE(FROZENRIGIDBODY(NATOMSALLOC))317:       ALLOCATE(FROZENRIGIDBODY(NATOMSALLOC))
4380:          IF (NITEMS.GT.2) THEN4374:          IF (NITEMS.GT.2) THEN
4381:             CALL READI(IX)4375:             CALL READI(IX)
4382:             MAXIT2=IX4376:             MAXIT2=IX
4383:          ENDIF4377:          ENDIF
4384: 4378: 
4385:       ELSE IF (WORD.EQ.'MGGLUE') THEN4379:       ELSE IF (WORD.EQ.'MGGLUE') THEN
4386:          MGGLUET=.TRUE.4380:          MGGLUET=.TRUE.
4387: 4381: 
4388:       ELSE IF (WORD.EQ.'MINDENSITY') THEN4382:       ELSE IF (WORD.EQ.'MINDENSITY') THEN
4389:          MINDENSITYT=.TRUE.4383:          MINDENSITYT=.TRUE.
4390: ! sf344> Modular global optimization algorithm 
4391:       ELSE IF (WORD.EQ.'MODULAR') THEN 
4392:          MODULART=.TRUE. 
4393:             CALL READI(MODULARNMIN) 
4394:             CALL READI(MODULARNMAX) 
4395:             CALL READI(MODULARNINCR) 
4396:          IF(NITEMS.GT.4) THEN 
4397:             CALL READI(MODULARLOWEST) 
4398:             IF(NITEMS.GT.5) THEN 
4399:                  CALL READA(MODULARRESTARTFILE) 
4400:                  MODULARRESTARTT=.TRUE. 
4401:             END IF 
4402:          END IF 
4403:          IF(MODULARNMAX.GT.NATOMS) THEN 
4404:             WRITE(MYUNIT,'(A)') 'keywords> Something is wrong, NMAX>NATOMS, is the coords file properly set up? - quitting!' 
4405:             STOP 
4406:          END IF 
4407:          FREEZE=.TRUE.  ! freeze all coordinates even without using FREEZEALL 
4408:          FREEZEALL=.TRUE. 
4409:          NFREEZE=NATOMS 
4410:          DO J1=1,NATOMS 
4411:             FROZEN(J1)=.TRUE. 
4412:          ENDDO 
4413: 4384: 
4414: ! khs26> for use with free energy basin-hopping4385: ! khs26> for use with free energy basin-hopping
4415: ! this keyword ensures that minimisation is repeated to a stricter convergence criterion if4386: ! this keyword ensures that minimisation is repeated to a stricter convergence criterion if
4416: ! the zero and non-zero eigenvalues are not separated by MIN_ZERO_SEP4387: ! the zero and non-zero eigenvalues are not separated by MIN_ZERO_SEP
4417:       ELSE IF (WORD.EQ.'MIN_ZERO_SEP') THEN4388:       ELSE IF (WORD.EQ.'MIN_ZERO_SEP') THEN
4418:          IF (NITEMS.GT.1) THEN4389:          IF (NITEMS.GT.1) THEN
4419:              CALL READF(MIN_ZERO_SEP)4390:              CALL READF(MIN_ZERO_SEP)
4420: ! Refers to frequencies, but checks eigenvalues.4391: ! Refers to frequencies, but checks eigenvalues.
4421:              MIN_ZERO_SEP = MIN_ZERO_SEP**24392:              MIN_ZERO_SEP = MIN_ZERO_SEP**2
4422:          END IF4393:          END IF
6417:                 BOXLY = BOXLY*PCUTOFF6388:                 BOXLY = BOXLY*PCUTOFF
6418:                 WRITE(MYUNIT,*) "PBC Y:",BOXLY6389:                 WRITE(MYUNIT,*) "PBC Y:",BOXLY
6419:             ENDIF6390:             ENDIF
6420:             IF (SCAN(PBC,'Zz').NE.0) THEN6391:             IF (SCAN(PBC,'Zz').NE.0) THEN
6421:                 PARAMONOVPBCZ=.TRUE.6392:                 PARAMONOVPBCZ=.TRUE.
6422:                 CALL READF(BOXLZ)6393:                 CALL READF(BOXLZ)
6423:                 BOXLZ = BOXLZ*PCUTOFF6394:                 BOXLZ = BOXLZ*PCUTOFF
6424:                 WRITE(MYUNIT,*) "PBC Z:",BOXLZ6395:                 WRITE(MYUNIT,*) "PBC Z:",BOXLZ
6425:             ENDIF6396:             ENDIF
6426:          ENDIF6397:          ENDIF
6427:       ELSE IF (WORD .EQ. 'PYGRAVITY') THEN6398: 
6428:          CALL READF(PYGRAVITYC1) 
6429:          CALL READF(PYGRAVITYC2) 
6430:          EFIELDT=.TRUE. 
6431:       ELSE IF (WORD.EQ.'PYOVERLAPTHRESH') THEN6399:       ELSE IF (WORD.EQ.'PYOVERLAPTHRESH') THEN
6432:          CALL READF(PYOVERLAPTHRESH)6400:          CALL READF(PYOVERLAPTHRESH)
6433:          WRITE(MYUNIT,'(A,F8.3)') 'keyword> ellipsoids considered to overlap for an ECF value below ', PYOVERLAPTHRESH6401:          WRITE(MYUNIT,'(A,F8.3)') 'keyword> ellipsoids considered to overlap for an ECF value below ', PYOVERLAPTHRESH
6434:          IF(NITEMS.GT.2) CALL READF(PYCFTHRESH)6402:          IF(NITEMS.GT.2) CALL READF(PYCFTHRESH)
6435:          WRITE(MYUNIT,'(A,F8.3)') 'keyword> cold fusion will be diagnosed for an ECF value below ', PYCFTHRESH6403:          WRITE(MYUNIT,'(A,F8.3)') 'keyword> cold fusion will be diagnosed for an ECF value below ', PYCFTHRESH
6436:  6404:  
6437:       ELSE IF (WORD.EQ.'GAYBERNE') THEN6405:       ELSE IF (WORD.EQ.'GAYBERNE') THEN
6438: 6406: 
6439:          GAYBERNET=.TRUE.6407:          GAYBERNET=.TRUE.
6440:          ELLIPSOIDT=.TRUE.6408:          ELLIPSOIDT=.TRUE.


r29932/Makefile 2016-03-16 18:33:36.807094212 +0000 r29931/Makefile 2016-03-16 18:33:38.215108682 +0000
198:                    $(LIBDIR35)/pert.a $(LIBDIR35)/quantum.a $(LIBDIR35)/rxncor.a $(LIBDIR35)/shapes.a $(LIBDIR35)/solvation.a \198:                    $(LIBDIR35)/pert.a $(LIBDIR35)/quantum.a $(LIBDIR35)/rxncor.a $(LIBDIR35)/shapes.a $(LIBDIR35)/solvation.a \
199:                    $(LIBDIR35)/util.a $(LIBDIR35)/vibran.a libcharmm.a199:                    $(LIBDIR35)/util.a $(LIBDIR35)/vibran.a libcharmm.a
200: endif200: endif
201: #### end CHARMM 35 201: #### end CHARMM 35 
202: 202: 
203: endif203: endif
204: 204: 
205: ###################################### COMPILERS AND COMPILER FLAGS ###################################### 205: ###################################### COMPILERS AND COMPILER FLAGS ###################################### 
206: #206: #
207: ######### The Portland Group Compiler Technology Fortran 90 compiler {{207: ######### The Portland Group Compiler Technology Fortran 90 compiler {{
208:  FC = pgf90208: # FC = pgf90
209: ## FC = mpif77  # for lam - don't forget to uncomment MPI!209: ## FC = mpif77  # for lam - don't forget to uncomment MPI!
210: ## FC = mpif90  # for mpich and openmpi - don't forget to uncomment MPI!210: ## FC = mpif90  # for mpich and openmpi - don't forget to uncomment MPI!
211: ## DEFS = -DMPI211: ## DEFS = -DMPI
212: ## The usual flags for AMBGMIN:212: ## The usual flags for AMBGMIN:
213: ## FFLAGS= -Mextend -O3 -Mvect=assoc,cachesize:1024000,recog,transform213: ## FFLAGS= -Mextend -O3 -Mvect=assoc,cachesize:1024000,recog,transform
214: ## These are the CHARMM31 flags for mpif90 64 bit library.214: ## These are the CHARMM31 flags for mpif90 64 bit library.
215: ## It is ESSENTIAL to use the same flags as for the CHARMM build!!!!215: ## It is ESSENTIAL to use the same flags as for the CHARMM build!!!!
216: ##216: ##
217: ## FFLAGS= -Mextend -O3 -Munroll -Mnoframe # used this for normal stuff217: ## FFLAGS= -Mextend -O3 -Munroll -Mnoframe # used this for normal stuff
218: # FFLAGS= -Mextend -O0 -Mnoframe218: # FFLAGS= -Mextend -O0 -Mnoframe
221: ## FFLAGS= -Mextend -g -traceback ## used this for debugging with pgdbg swo24221: ## FFLAGS= -Mextend -g -traceback ## used this for debugging with pgdbg swo24
222: ## Debugging flags222: ## Debugging flags
223: ## FFLAGS= -Mextend -C -g -gopt -Mbounds -Mchkfpstk -Mchkptr -Mchkstk -Mcoff -Mdwarf1 -Mdwarf2 -Melf -Mpgicoff -traceback223: ## FFLAGS= -Mextend -C -g -gopt -Mbounds -Mchkfpstk -Mchkptr -Mchkstk -Mcoff -Mdwarf1 -Mdwarf2 -Melf -Mpgicoff -traceback
224: ## FFLAGS= -Mextend -C -g -gopt -Mbounds -Mchkfpstk -Mchkptr -Mchkstk -Mcoff -Mdwarf1 -Mdwarf2 -Mdwarf3 -Melf -Mpgicoff -traceback224: ## FFLAGS= -Mextend -C -g -gopt -Mbounds -Mchkfpstk -Mchkptr -Mchkstk -Mcoff -Mdwarf1 -Mdwarf2 -Mdwarf3 -Melf -Mpgicoff -traceback
225: ## flags for AMBER9225: ## flags for AMBER9
226: ##226: ##
227: ## FREEFORMAT_FLAG= -Mfree227: ## FREEFORMAT_FLAG= -Mfree
228: ## EXTRA_FLAGS=-module228: ## EXTRA_FLAGS=-module
229: ## MOD_LOCATION= -module $(@D)229: ## MOD_LOCATION= -module $(@D)
230: ##230: ##
231:  NOOPT = -O0 -Mextend231: # NOOPT = -O0 -Mextend
232:  SEARCH_PATH =  -I..232: # SEARCH_PATH =  -I..
233: ## the double reference to -lblas seems to be needed!233: ## the double reference to -lblas seems to be needed!
234: # LIBS = libmyblas.a libmylapack.a libmyblas.a #libmbpol.a234: # LIBS = libmyblas.a libmylapack.a libmyblas.a #libmbpol.a
235: # LDFLAGS= -L. -lstdc++235: # LDFLAGS= -L. -lstdc++
236: # SWITCH=pgi236: # SWITCH=pgi
237: ## }}}237: ## }}}
238: ####### end of The Portland Group Compiler Technology Fortran 90 compiler }}}238: ####### end of The Portland Group Compiler Technology Fortran 90 compiler }}}
239: #239: #
240: #### NAGWare Fortran 240: #### NAGWare Fortran 
241: ## use this compiler for nag/64/5.1241: ## use this compiler for nag/64/5.1
242: ## FC = f95242: ## FC = f95
263: ##FREEFORMAT_FLAG= -free263: ##FREEFORMAT_FLAG= -free
264: ##EXTRA_FLAGS=-I264: ##EXTRA_FLAGS=-I
265: ##265: ##
266: ####### end of NAGWare Fortran 95 compiler flags 266: ####### end of NAGWare Fortran 95 compiler flags 
267: #267: #
268: ###########################################################268: ###########################################################
269: # Intel compilers 269: # Intel compilers 
270: #270: #
271: # GMIN + CHARMM35 - tested with the options which contain "##" in front 271: # GMIN + CHARMM35 - tested with the options which contain "##" in front 
272: # 272: # 
273: # FC = ifort273:  FC = ifort
274: # FC = mpif77 274: # FC = mpif77 
275: # FC = mpif90  275: # FC = mpif90  
276: # DEFS = -DMPI 276: # DEFS = -DMPI 
277: # DEFS = -DCUDA         # CUDAGMIN compiled with the Makefile currently cannot be used with AMBER - in the meantime use CMake277: # DEFS = -DCUDA         # CUDAGMIN compiled with the Makefile currently cannot be used with AMBER - in the meantime use CMake
278: ##### ifort debugging flags 278: ##### ifort debugging flags 
279: # FFLAGS= -132 -C -g -traceback -debug full279: # FFLAGS= -132 -C -g -traceback -debug full
280: # FFLAGS= -132 -O0 -g -traceback -fpe:0 -check all280: # FFLAGS= -132 -O0 -g -traceback -fpe:0 -check all
281: # FFLAGS= -132 -g -debug all -check all -implicitnone -warn unused -fp-stack-check -heap-arrays -ftrapuv -check pointers -check bounds281: # FFLAGS= -132 -g -debug all -check all -implicitnone -warn unused -fp-stack-check -heap-arrays -ftrapuv -check pointers -check bounds
282: # FFLAGS= -132 -g -debug all -warn unused -fp-stack-check -heap-arrays -ftrapuv -check pointers -check bounds \282: # FFLAGS= -132 -g -debug all -warn unused -fp-stack-check -heap-arrays -ftrapuv -check pointers -check bounds \
283: #      -O0 -traceback -debug full -check uninit -stand f03 -assume realloc_lhs -check all,noarg_temp_created \283: #      -O0 -traceback -debug full -check uninit -stand f03 -assume realloc_lhs -check all,noarg_temp_created \
284: #      -traceback -warn all -fstack-protector -assume protect_parens -implicitnone284: #      -traceback -warn all -fstack-protector -assume protect_parens -implicitnone
285: ##### ifort optimization flags285: ##### ifort optimization flags
286: # FFLAGS= -132 -O3286:  FFLAGS= -132 -O3
287: # FFLAGS= -132 -Vaxlib -O3 # for ifc287: # FFLAGS= -132 -Vaxlib -O3 # for ifc
288: # FFLAGS= -132 -O3 -ip -static # -ipo or -fast doesnt work 288: # FFLAGS= -132 -O3 -ip -static # -ipo or -fast doesnt work 
289: # FFLAGS= -132 -O4289: # FFLAGS= -132 -O4
290: ## FFLAGS= -O2 -extend_source -g -traceback290: ## FFLAGS= -O2 -extend_source -g -traceback
291:  NOOPT= -132 -O0291:  NOOPT= -132 -O0
292:  SWITCH=ifort292:  SWITCH=ifort
293:  SEARCH_PATH= -I.293:  SEARCH_PATH= -I.
294:  SEARCH_PATH= -I..294:  SEARCH_PATH= -I..
295:  LDFLAGS= -L. -lstdc++295:  LDFLAGS= -L. -lstdc++
296:  LIBS = libmyblas.a libmylapack.a libmyblas.a  296:  LIBS = libmyblas.a libmylapack.a libmyblas.a  


r29932/mc.F 2016-03-16 18:33:37.395100259 +0000 r29931/mc.F 2016-03-16 18:33:38.803114737 +0000
 89:  89: 
 90: ! khs26> Energy decomposition for AMBER 12 90: ! khs26> Energy decomposition for AMBER 12
 91:       TYPE(POT_ENE_REC_C) :: AMBER12_ENERGY_DECOMP 91:       TYPE(POT_ENE_REC_C) :: AMBER12_ENERGY_DECOMP
 92:  92: 
 93: ! ds656 > energy before and after BGUPTA swap (without relaxation) 93: ! ds656 > energy before and after BGUPTA swap (without relaxation)
 94:       DOUBLE PRECISION :: EBSWAP=0.0D0, EASWAP=0.0D0, EASWAPQ=0.0D0, DE1=0.0D0, DE2=0.0D0 94:       DOUBLE PRECISION :: EBSWAP=0.0D0, EASWAP=0.0D0, EASWAPQ=0.0D0, DE1=0.0D0, DE2=0.0D0
 95:  95: 
 96:       QNEWRES=0 96:       QNEWRES=0
 97:       QGCBH=0 97:       QGCBH=0
 98:  98: 
 99: ! sf344> selectively unfreeze the last added building blocks (MODULARNINCR) 
100: !        for sequential MC loops in modular global optimization 
101:       IF(MODULART) THEN 
102:         FROZEN(:)=.TRUE. 
103:            IF(MODULARCURRENTN==MODULARNMIN) THEN   ! unfreeze every atom in the first step of MODULARNMIN molecules 
104:                 J6=0 
105:            ELSE 
106:                 J6=MODULARNINCR 
107:            END IF 
108:         WRITE(MYUNIT,'(A,2I3,A)') '-------------- MC cycle ', MODULARCURRENTN-MODULARNMIN+1,MODULARCURRENTN, ' -------------------' 
109:            FROZEN(1:MODULARCURRENTN-J6)=.TRUE. 
110:             FROZEN(MODULARCURRENTN-J6+1:MODULARCURRENTN)=.FALSE. 
111:            EXCLUDED(:)=.FALSE. 
112:            IF(RIGID) THEN  
113:                 FROZEN(NATOMS/2+1:MODULARCURRENTN+NATOMS/2-J6)=.TRUE. 
114:                 FROZEN(MODULARCURRENTN-J6+1+NATOMS/2:MODULARCURRENTN+NATOMS/2)=.FALSE. 
115:                 EXCLUDED(MODULARCURRENTN+1:NATOMS/2)=.TRUE. 
116:                 EXCLUDED(MODULARCURRENTN+1+NATOMS/2:NATOMS)=.TRUE. 
117:            ELSE 
118:                 EXCLUDED(MODULARCURRENTN+1:NATOMS)=.TRUE. 
119:            END IF 
120:             IF(MODULARCURRENTN==MODULARNMIN) THEN   ! unfreeze every atom in the first step of MODULARNMIN molecules 
121:                 FROZEN(1:MODULARCURRENTN)=.FALSE.  
122:                 IF(RIGID) THEN  
123:                   FROZEN(NATOMS/2+1:MODULARCURRENTN+NATOMS/2)=.FALSE. 
124:                 END IF 
125:             END IF 
126:       WRITE(MYUNIT,*) 'excluded list ', EXCLUDED(:) 
127:         WRITE(MYUNIT,*) 'frozen list ', FROZEN(:) 
128:          IF(MODULARCURRENTN-MODULARNMIN+1>1) call py_takestep(1)   !take a step before the new quench 
129:       END IF 
130:  
131: ! csw34> initialise RANDOM to 0.0D0 to avoid printing uninitialised variable if not set in 99: ! csw34> initialise RANDOM to 0.0D0 to avoid printing uninitialised variable if not set in
132: !        TRANSITION (e.g. if Qu 1 causes cold fusion)100: !        TRANSITION (e.g. if Qu 1 causes cold fusion)
133:       RANDOM=0.0D0101:       RANDOM=0.0D0
134: 102: 
135:       IF (FREEZEGROUPT) THEN103:       IF (FREEZEGROUPT) THEN
136:          OPEN(UNIT=4431,FILE='frozen.dat',STATUS='UNKNOWN',FORM='FORMATTED')104:          OPEN(UNIT=4431,FILE='frozen.dat',STATUS='UNKNOWN',FORM='FORMATTED')
137:          DO J6=1,NATOMS105:          DO J6=1,NATOMS
138: !106: !
139: ! Work out the distance from GROUPCENTRE to the current atom J1107: ! Work out the distance from GROUPCENTRE to the current atom J1
140: ! 108: ! 
1948:                      ELSE1916:                      ELSE
1949:                         EPREV(JP)=HBONDESAVE1917:                         EPREV(JP)=HBONDESAVE
1950: !                        WRITE(MYUNIT,'(A)') " HBONDMATRIX> Markov energy reset to pass sanity checks"1918: !                        WRITE(MYUNIT,'(A)') " HBONDMATRIX> Markov energy reset to pass sanity checks"
1951:                      ENDIF1919:                      ENDIF
1952:                   ENDIF1920:                   ENDIF
1953:                ENDIF1921:                ENDIF
1954: !1922: !
1955: !  Sanity check to make sure the Markov energy agrees with COORDSO. 1923: !  Sanity check to make sure the Markov energy agrees with COORDSO. 
1956: !  Stop if not true.1924: !  Stop if not true.
1957: !1925: !
1958:                IF ((DEBUG.OR.CHECKMARKOVT).AND.(.NOT.(HBONDMATRIX.OR.PERMOPT.OR.PERMINVOPT.OR.FEBHT.OR.QALCST.OR.MODULART))) THEN1926:                IF ((DEBUG.OR.CHECKMARKOVT).AND.(.NOT.(HBONDMATRIX.OR.PERMOPT.OR.PERMINVOPT.OR.FEBHT.OR.QALCST))) THEN
1959:                   CALL POTENTIAL(COORDSO(:,JP),GRAD,OPOTEL,.FALSE.,.FALSE.)1927:                   CALL POTENTIAL(COORDSO(:,JP),GRAD,OPOTEL,.FALSE.,.FALSE.)
1960:                   IF (ABS(OPOTEL-EPREV(JP)).GT.ABS(ECONV)) THEN1928:                   IF (ABS(OPOTEL-EPREV(JP)).GT.ABS(ECONV)) THEN
1961:                      IF (EVAP) THEN1929:                      IF (EVAP) THEN
1962:                         WRITE(MYUNIT,'(3(A,G20.10))') 'mc> WARNING - energy for saved coordinates ',OPOTEL,1930:                         WRITE(MYUNIT,'(3(A,G20.10))') 'mc> WARNING - energy for saved coordinates ',OPOTEL,
1963:      &                     ' differs from Markov energy ',EPREV(JP),' because an atom moved outside the container'1931:      &                     ' differs from Markov energy ',EPREV(JP),' because an atom moved outside the container'
1964:                      ELSE1932:                      ELSE
1965:                         WRITE(MYUNIT,'(2(A,G20.10))') 'mc> ERROR - energy for coordinates in COORDSO=',OPOTEL,1933:                         WRITE(MYUNIT,'(2(A,G20.10))') 'mc> ERROR - energy for coordinates in COORDSO=',OPOTEL,
1966:      &                                                 ' but Markov energy=',EPREV(JP)1934:      &                                                 ' but Markov energy=',EPREV(JP)
1967:                         IF (.NOT.(CHEMSHIFT2)) STOP1935:                         IF (.NOT.(CHEMSHIFT2)) STOP
1968:                      ENDIF1936:                      ENDIF
1973:                   CALL NULLMOVE(SCREENC,COORDSO(:,JP),ATEST,NULLMOVES,JP)1941:                   CALL NULLMOVE(SCREENC,COORDSO(:,JP),ATEST,NULLMOVES,JP)
1974:                ENDIF1942:                ENDIF
1975: 1943: 
1976: ! Accept or reject step. If the quench did not converge then allow a1944: ! Accept or reject step. If the quench did not converge then allow a
1977: ! potenial move, but count it as a rejection in terms of NSUCCESS and1945: ! potenial move, but count it as a rejection in terms of NSUCCESS and
1978: ! NFAIL. This way we will accept a lower minimum if found, but the steps won;t become so big.1946: ! NFAIL. This way we will accept a lower minimum if found, but the steps won;t become so big.
1979: ! However, for TIP5P some cold fusion events that had not actually reached the threshold for1947: ! However, for TIP5P some cold fusion events that had not actually reached the threshold for
1980: ! rejection were actually accepted. Must prevent this!1948: ! rejection were actually accepted. Must prevent this!
1981:                IF (ATEST) THEN1949:                IF (ATEST) THEN
1982: #ifdef MPI1950: #ifdef MPI
1983:                   IF (DEBUG) THEN1951:                   IF (DEBUG) THEN
1984:                      WRITE(MYUNIT,334) JP,RANDOM,POTEL,EPREV(JP),NSUCCESS(JP),NFAIL(JP)1952:                      WRITE(MYUNIT,334) JP,RANDOM,POTEL,EPREV(JP),NSUCCESS(JP),NFAIL(JP)
1985: 334                   FORMAT('JP,RAN,POTEL,EPREV,NSUC,NFAIL=',I2,3F15.7,2I6,' ACC')1953: 334                   FORMAT('JP,RAN,POTEL,EPREV,NSUC,NFAIL=',I2,3F15.7,2I6,' ACC')
1986:                   ENDIF1954:                   ENDIF
1987: #else1955: #else
1988:                   IF (DEBUG) THEN1956:                   IF (DEBUG) THEN
1989: ! csw34> Make sure the group Markov energy is printed if using HBONDMATRIX1957: ! csw34> Make sure the group Markov energy is printed if using HBONDMATRIX
1990:                      IF (HBONDMATRIX) THEN1958:                      IF (HBONDMATRIX) THEN
1991:                         IF (HBONDMATCH) THEN1959:                         IF (HBONDMATCH) THEN
1992:                            WRITE(MYUNIT,34) JP,RANDOM,POTEL,HBONDMARKOV(HBONDMATCHN),NSUCCESS(JP),NFAIL(JP)1960:                            WRITE(MYUNIT,34) JP,RANDOM,POTEL,HBONDMARKOV(HBONDMATCHN),NSUCCESS(JP),NFAIL(JP)
1993:                         ENDIF 1961:                         ENDIF 


r29932/perc.f90 2016-03-16 18:33:37.595102315 +0000 r29931/perc.f90 2016-03-16 18:33:39.011116876 +0000
 10: !   GMIN is distributed in the hope that it will be useful, 10: !   GMIN is distributed in the hope that it will be useful,
 11: !   but WITHOUT ANY WARRANTY; without even the implied warranty of 11: !   but WITHOUT ANY WARRANTY; without even the implied warranty of
 12: !   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 12: !   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 13: !   GNU General Public License for more details. 13: !   GNU General Public License for more details.
 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: SUBROUTINE PERC(P,NATOMS,PERCCUT,PERCT,DEBUG,MYUNIT,RIGID) 19: SUBROUTINE PERC(P,NATOMS,PERCCUT,PERCT,DEBUG,MYUNIT,RIGID)
 20:   USE COMMONS, ONLY : MODULARCURRENTN,MODULART 20: 
 21:   IMPLICIT NONE 21:   IMPLICIT NONE
 22:  22: 
 23:   INTEGER, INTENT(IN)  :: NATOMS, MYUNIT 23:   INTEGER, INTENT(IN)  :: NATOMS, MYUNIT
 24:   LOGICAL, INTENT(IN)  :: DEBUG, RIGID 24:   LOGICAL, INTENT(IN)  :: DEBUG, RIGID
 25:   LOGICAL, INTENT(OUT) :: PERCT 25:   LOGICAL, INTENT(OUT) :: PERCT
 26:   DOUBLE PRECISION, INTENT(IN)  :: P(3*NATOMS), PERCCUT 26:   DOUBLE PRECISION, INTENT(IN)  :: P(3*NATOMS), PERCCUT
 27:   INTEGER NSITES, J1, J2, NCYCLE, DMIN1, DMAX1, NUNCON1 27:   INTEGER NSITES, J1, J2, NCYCLE, DMIN1, DMAX1, NUNCON1
 28:   INTEGER, ALLOCATABLE :: NDIST1(:) 28:   INTEGER, ALLOCATABLE :: NDIST1(:)
 29:   DOUBLE PRECISION DUMMY 29:   DOUBLE PRECISION DUMMY
 30:   LOGICAL CHANGED 30:   LOGICAL CHANGED
 31:   LOGICAL, ALLOCATABLE :: CON(:,:) 31:   LOGICAL, ALLOCATABLE :: CON(:,:)
 32:  32: 
 33:   IF(MODULART) THEN 33:   NSITES = NATOMS
 34:     NSITES = MODULARCURRENTN  
 35:   ELSE 
 36:     NSITES = NATOMS 
 37:   END IF 
 38:   IF (RIGID) THEN 34:   IF (RIGID) THEN
 39:     NSITES = NSITES/2 35:     NSITES = NSITES/2
 40:   ENDIF 36:   ENDIF
 41:  37: 
 42:   ALLOCATE(NDIST1(NSITES), CON(NSITES,NSITES)) 38:   ALLOCATE(NDIST1(NSITES), CON(NSITES,NSITES))
 43:  39: 
 44:   CON(1:NSITES,1:NSITES)=.FALSE. 40:   CON(1:NSITES,1:NSITES)=.FALSE.
 45:   DO J1=1,NSITES 41:   DO J1=1,NSITES
 46:     DO J2=J1+1,NSITES 42:     DO J2=J1+1,NSITES
 47:       DUMMY=(P(3*(J2-1)+1)-P(3*(J1-1)+1))**2+(P(3*(J2-1)+2)-P(3*(J1-1)+2))**2+(P(3*(J2-1)+3)-P(3*(J1-1)+3))**2 43:       DUMMY=(P(3*(J2-1)+1)-P(3*(J1-1)+1))**2+(P(3*(J2-1)+2)-P(3*(J1-1)+2))**2+(P(3*(J2-1)+3)-P(3*(J1-1)+3))**2


r29932/py.f90 2016-03-16 18:33:37.807104491 +0000 r29931/py.f90 2016-03-16 18:33:39.235119179 +0000
743:                 this_site%ells_same = .false.743:                 this_site%ells_same = .false.
744:                 call initialize_py_ellipsoid(this_site, this_site%att)744:                 call initialize_py_ellipsoid(this_site, this_site%att)
745:             end if745:             end if
746:                 746:                 
747:         end do747:         end do
748:     end do748:     end do
749: 749: 
750: end subroutine py_input750: end subroutine py_input
751: 751: 
752: subroutine py(x, grad, energy, gtest)752: subroutine py(x, grad, energy, gtest)
753:     use commons, only: natoms, vt, frozen, efieldt753:     use commons, only: natoms, vt, frozen
754:     use py_module754:     use py_module
755:     implicit none755:     implicit none
756:     logical, intent(in) :: gtest756:     logical, intent(in) :: gtest
757:     double precision, intent(inout) :: x(3 * natoms)757:     double precision, intent(inout) :: x(3 * natoms)
758:     double precision, intent(out) :: energy, grad(3 * natoms)758:     double precision, intent(out) :: energy, grad(3 * natoms)
759: 759: 
760:     type(py_molecule), pointer :: moli, molj760:     type(py_molecule), pointer :: moli, molj
761:     type(py_site), pointer :: sitei, sitej761:     type(py_site), pointer :: sitei, sitej
762:     integer :: num_mols762:     integer :: num_mols
763:     integer :: moli_index, molj_index, sitei_index, sitej_index, i1763:     integer :: moli_index, molj_index, sitei_index, sitej_index
764:     double precision :: energy_contrib, grad_contrib(12), energy_contrib2, grad_contrib2764:     double precision :: energy_contrib, grad_contrib(12)
765: 765: 
766:     num_mols = size(molecules)766:     num_mols = size(molecules)
767: 767: 
768:     energy = 0.d0768:     energy = 0.d0
769:     vt(:) = 0.d0769:     vt(:) = 0.d0
770:     if(gtest) grad(:) = 0.d0770:     if(gtest) grad(:) = 0.d0
771: 771: 
772:     ! update the values for all the molecules772:     ! update the values for all the molecules
773:     do moli_index = 1, num_mols773:     do moli_index = 1, num_mols
774:         moli => molecules(moli_index)774:         moli => molecules(moli_index)
775:         call update_py_molecule(moli, x(moli%r_index: moli%r_index + 2), &775:         call update_py_molecule(moli, x(moli%r_index: moli%r_index + 2), &
776:             & x(moli%p_index: moli%p_index + 2), gtest)776:             & x(moli%p_index: moli%p_index + 2), gtest)
777:     end do777:     end do
778: 778: 
779:     do i1 = 1, natoms/2 
780: !sf344> gravity field with constant gradient, and an r^-12 repulsion around z=0 
781:       if(efieldt) then 
782:         energy_contrib2=0.0 
783:         grad_contrib2=0.0 ! this is a scalar, we have only contribution along the z direction 
784:         call gravity(x(3*i1),energy_contrib2,grad_contrib2) 
785:         energy = energy + energy_contrib2 
786:         grad(3*i1)=grad(3*i1)+grad_contrib2 
787:       end if 
788:     end do 
789:  
790:     ! outer loop over molecules779:     ! outer loop over molecules
791:     do moli_index = 1, num_mols - 1780:     do moli_index = 1, num_mols - 1
792:         moli => molecules(moli_index)781:         moli => molecules(moli_index)
793: 782: 
794:         ! inner loop over molecules783:         ! inner loop over molecules
795:         do molj_index = moli_index + 1, num_mols784:         do molj_index = moli_index + 1, num_mols
796:             molj => molecules(molj_index)785:             molj => molecules(molj_index)
797: 786: 
798:             ! loop over sites in outer molecule787:             ! loop over sites in outer molecule
799:             do sitei_index = 1, size(moli%sites)788:             do sitei_index = 1, size(moli%sites)
816: 805: 
817:                     if(gtest) then  ! add gradient contributions806:                     if(gtest) then  ! add gradient contributions
818:                         grad(moli%r_index: moli%r_index + 2) = grad(moli%r_index: moli%r_index + 2) + grad_contrib(1: 3)807:                         grad(moli%r_index: moli%r_index + 2) = grad(moli%r_index: moli%r_index + 2) + grad_contrib(1: 3)
819:                         grad(molj%r_index: molj%r_index + 2) = grad(molj%r_index: molj%r_index + 2) + grad_contrib(4: 6)808:                         grad(molj%r_index: molj%r_index + 2) = grad(molj%r_index: molj%r_index + 2) + grad_contrib(4: 6)
820:                         grad(moli%p_index: moli%p_index + 2) = grad(moli%p_index: moli%p_index + 2) + grad_contrib(7: 9)809:                         grad(moli%p_index: moli%p_index + 2) = grad(moli%p_index: moli%p_index + 2) + grad_contrib(7: 9)
821:                         grad(molj%p_index: molj%p_index + 2) = grad(molj%p_index: molj%p_index + 2) + grad_contrib(10: 12)810:                         grad(molj%p_index: molj%p_index + 2) = grad(molj%p_index: molj%p_index + 2) + grad_contrib(10: 12)
822:                     end if811:                     end if
823: 812: 
824:                 end do813:                 end do
825:             end do814:             end do
826:         end do 815:         end do
827:        end do816:     end do
828: 817: 
829:     ! freeze keyword: set gradients to zero818:     ! freeze keyword: set gradients to zero
830:     if(gtest .and. any(frozen)) then819:     if(gtest .and. any(frozen)) then
831:         do moli_index = 1, num_mols820:         do moli_index = 1, num_mols
832:             moli => molecules(moli_index)821:             moli => molecules(moli_index)
833:             if(frozen(moli_index)) grad(moli%r_index: moli%r_index + 2) = 0.d0822:             if(frozen(moli_index)) grad(moli%r_index: moli%r_index + 2) = 0.d0
834:             if(frozen(moli_index + num_mols)) grad(moli%p_index: moli%p_index + 2) = 0.d0823:             if(frozen(moli_index + num_mols)) grad(moli%p_index: moli%p_index + 2) = 0.d0
835:         end do824:         end do
836:     end if825:     end if
837: 826: 
838: end subroutine py827: end subroutine py
839: 828: 
840: subroutine gravity(x,energy,g) 
841: use commons , only : pygravityc1,pygravityc2 
842: implicit none 
843:  
844: double precision :: x, energy, g 
845:  
846: if(x<-9.999D0) then 
847:         energy = -1.0D10 
848:         g = -1.0D10 
849: else 
850:         energy = pygravityc1/(x+10)**12 + pygravityc2*(x+10) ! using x+10 for backwards compatibility with existing databases  
851:         g = -12*pygravityc1/(x+10)**13 + pygravityc2    ! so that the potential goes to infinity at z=-10, also shifting the energy range 
852: end if 
853:  
854: end subroutine gravity 
855:  
856: subroutine py_output(output_file)829: subroutine py_output(output_file)
857:     ! writes ellipsoid.xyz for visualization830:     ! writes ellipsoid.xyz for visualization
858: 831: 
859:     ! nsave = number of saved minima832:     ! nsave = number of saved minima
860:     ! qmin[min] = energy of saved minimum833:     ! qmin[min] = energy of saved minimum
861:     ! qminp[min][xyz] = r and p coordinates of saved minima (as per x array)834:     ! qminp[min][xyz] = r and p coordinates of saved minima (as per x array)
862:     ! ff[min] = first step when minimum was found835:     ! ff[min] = first step when minimum was found
863:     use commons, only: nsave, mpit, mynode836:     use commons, only: nsave, mpit, mynode
864:     use qmodule, only: qmin, qminp, ff837:     use qmodule, only: qmin, qminp, ff
865:     use py_module838:     use py_module
1060:  use commons, only : natoms, contourbounds, gridsize 1033:  use commons, only : natoms, contourbounds, gridsize 
1061: implicit none1034: implicit none
1062:    1035:    
1063:    double precision :: x(3*natoms), grad(3*natoms), stepsize(3)1036:    double precision :: x(3*natoms), grad(3*natoms), stepsize(3)
1064:    double precision :: energymatrix(gridsize,gridsize,gridsize),ereal1037:    double precision :: energymatrix(gridsize,gridsize,gridsize),ereal
1065:    integer          :: ix, iy, iz, myunit3, myunit4, getunit1038:    integer          :: ix, iy, iz, myunit3, myunit4, getunit
1066:    logical          :: gradt1039:    logical          :: gradt
1067:     1040:     
1068:     x(:)=0.0D01041:     x(:)=0.0D0
1069:     x(9)=6.283185D01042:     x(9)=6.283185D0
1070: !    x(10)= 0.800457061053338914111043:     x(10)= 0.80045706105333891411
1071: !    x(11)=-1.41840695812026718059 1044:     x(11)=-1.41840695812026718059 
1072: !    x(12)=-0.800458073979061657251045:     x(12)=-0.80045807397906165725
1073:     x(12)=x(9)1046: !    x(12)=x(9)
1074:     stepsize(:)=(contourbounds(:,2)-contourbounds(:,1))/gridsize1047:     stepsize(:)=(contourbounds(:,2)-contourbounds(:,1))/gridsize
1075:     myunit3=getunit()1048:     myunit3=getunit()
1076:     myunit4=getunit()+11049:     myunit4=getunit()+1
1077:     open(unit=myunit3,file='energymatrix',status='unknown')1050:     open(unit=myunit3,file='energymatrix',status='unknown')
1078:     open(unit=myunit4,file='energycurve',status='unknown')1051:     open(unit=myunit4,file='energycurve',status='unknown')
1079:     ix=11052:     ix=1
1080:     iy=11053:     iy=1
1081:     iz=11054:     iz=1
1082:     do ix=1,gridsize1055:     do ix=1,gridsize
1083:       do iz=1,gridsize1056:       do iz=1,gridsize


r29932/saveit.f 2016-03-16 18:33:38.003106511 +0000 r29931/saveit.f 2016-03-16 18:33:39.447121357 +0000
 36:             QENERGIES(NATOMS)=EREAL 36:             QENERGIES(NATOMS)=EREAL
 37:             QPE(NATOMS)=FEBH_POT_ENE+NATOMS*GCMU 37:             QPE(NATOMS)=FEBH_POT_ENE+NATOMS*GCMU
 38:             DO J2=1,3*NATOMS 38:             DO J2=1,3*NATOMS
 39:                QCOORDINATES(NATOMS,J2)=P(J2) 39:                QCOORDINATES(NATOMS,J2)=P(J2)
 40:             ENDDO 40:             ENDDO
 41:          ENDIF 41:          ENDIF
 42:       ENDIF 42:       ENDIF
 43: C 43: C
 44: C  Save the lowest NSAVE distinguishable configurations. 44: C  Save the lowest NSAVE distinguishable configurations.
 45: C 45: C
 46: !      WRITE(MYUNIT,'(A,12E15.7)') 'EREAL,ECONV,QMIN',EREAL,ECONV,(QMIN(J1),J1=1,NSAVE) 46: C     WRITE(*,'(A,12E15.7)') 'EREAL,ECONV,QMIN',EREAL,ECONV,(QMIN(J1),J1=1,NSAVE)
 47:       DO J1=1,NSAVE 47:       DO J1=1,NSAVE
 48:          IF (DABS(EREAL-QMIN(J1)).LT.ECONV) THEN 48:          IF (DABS(EREAL-QMIN(J1)).LT.ECONV) THEN
 49: C 49: C
 50: C  These are probably the same - but just to make sure we save the  50: C  These are probably the same - but just to make sure we save the 
 51: C  lowest. 51: C  lowest.
 52: C 52: C
 53:             IF (EREAL.LT.QMIN(J1)) THEN 53:             IF (EREAL.LT.QMIN(J1)) THEN
 54:                QMINNATOMS(J1)=NATOMS 54:                QMINNATOMS(J1)=NATOMS
 55:                QMIN(J1)=EREAL 55:                QMIN(J1)=EREAL
 56:                DO J2=1,3*NATOMS 56:                DO J2=1,3*NATOMS


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0