hdiff output

r29011/boxcentroid.f90 2015-11-17 23:33:28.144882205 +0000 r29010/boxcentroid.f90 2015-11-17 23:33:29.852905110 +0000
  1: !   GMIN: A program for finding global minima  1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/GMIN/source/boxcentroid.f90' in revision 29010
  2: !   Copyright (C) 1999-2006 David J. Wales 
  3: !   This file is part of GMIN. 
  4: ! 
  5: !   GMIN is free software; you can redistribute it and/or modify 
  6: !   it under the terms of the GNU General Public License as published by 
  7: !   the Free Software Foundation; either version 2 of the License, or 
  8: !   (at your option) any later version. 
  9: ! 
 10: !   GMIN is distributed in the hope that it will be useful, 
 11: !   but WITHOUT ANY WARRANTY; without even the implied warranty of 
 12: !   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 13: !   GNU General Public License for more details. 
 14: ! 
 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 
 17: !   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
 18:  
 19: SUBROUTINE BOXCENTROID(X) 
 20:   ! 
 21:   !ds656> Box centroid to specified rectangular region. 
 22:   ! 
 23:   USE COMMONS, ONLY : NATOMS, BOXCENTROID_X, BOXCENTROID_DX, & 
 24:        BOXCENTROID_DISCRETE, MYUNIT 
 25:   ! 
 26:   IMPLICIT NONE 
 27:   ! 
 28:   DOUBLE PRECISION, INTENT(INOUT) :: X(3*NATOMS) 
 29:   LOGICAL :: SHIFT 
 30:   INTEGER :: I,J,K 
 31:   DOUBLE PRECISION :: CENTROID(3), OFFSET(3), DUMMY(3*NATOMS), E0, E1 
 32:   ! 
 33:   ! First find centre of geometry 
 34:   CENTROID(:)=0.0D0; K=0 
 35:   DO I=1,NATOMS 
 36:      DO J=1,3 
 37:         K=K+1 
 38:         CENTROID(J) = CENTROID(J) + X(K) 
 39:      ENDDO 
 40:   ENDDO 
 41:   CENTROID(1:3) = CENTROID(1:3)/DBLE(NATOMS) 
 42:   ! 
 43:   ! Now determine the offset by which we will be shifting 
 44:   SHIFT=.FALSE. 
 45:   DO I=1,3 
 46:      IF( ABS(CENTROID(I)-BOXCENTROID_X(I)) > BOXCENTROID_DX(I) ) THEN 
 47:         SHIFT=.TRUE. 
 48:         OFFSET(I) = CENTROID(I) - BOXCENTROID_X(I) 
 49:         IF(BOXCENTROID_DISCRETE(I)) THEN 
 50:            ! This rounding is for substrates with periodicity... 
 51:            ! in which case the DX ought to be equal to the period! 
 52:            OFFSET(I) = BOXCENTROID_DX(I)*DBLE(NINT(OFFSET(I)/BOXCENTROID_DX(I))) 
 53:         ENDIF 
 54:      ELSE 
 55:         OFFSET(I)=0.0D0 
 56:      ENDIF 
 57:   ENDDO 
 58:   ! 
 59:   IF(SHIFT) THEN 
 60:      ! 
 61:      !CALL POTENTIAL(X,DUMMY,E0,.false.,.false.) 
 62:      !WRITE(MYUNIT,'(A,3(1X,F15.8))') & 
 63:      !     'boxcog> Old CoG: ', (CENTROID(J), J=1,3) 
 64:      !WRITE(MYUNIT,'(A,3(1X,F15.8))') & 
 65:      !     'boxcog> Move by: ', (OFFSET(J), J=1,3) 
 66:      ! 
 67:      ! Apply shift and compute new CoG 
 68:      CENTROID(:)=0.0D0; K=0 
 69:      DO I=1,NATOMS 
 70:         DO J=1,3 
 71:            K=K+1 
 72:            X(K) = X(K) - OFFSET(J) 
 73:            CENTROID(J) = CENTROID(J) + X(K) 
 74:         ENDDO 
 75:      ENDDO 
 76:      CENTROID(1:3) = CENTROID(1:3)/DBLE(NATOMS) 
 77:      WRITE(MYUNIT,'(A,3(1X,F15.8))') & 
 78:           'boxcentroid> Shifted to ', (CENTROID(J), J=1,3) 
 79:      ! 
 80:      !CALL POTENTIAL(X,DUMMY,E1,.false.,.false.) 
 81:      !WRITE(MYUNIT,'(A,2(1X,F20.10))') & 
 82:      !     'boxcog> E0 and E1:', E0, E1 
 83:      ! 
 84:   ENDIF 
 85:   ! 
 86:   RETURN 
 87:   ! 
 88: END SUBROUTINE BOXCENTROID 


r29011/commons.f90 2015-11-17 23:33:28.336884776 +0000 r29010/commons.f90 2015-11-17 23:33:30.056907846 +0000
198:       DOUBLE PRECISION, ALLOCATABLE :: HBONDMAXE(:)198:       DOUBLE PRECISION, ALLOCATABLE :: HBONDMAXE(:)
199:       INTEGER :: HBONDNRES, HBONDMATCHN, MAXHBONDGROUPS199:       INTEGER :: HBONDNRES, HBONDMATCHN, MAXHBONDGROUPS
200: ! END OF HBONDMATRIX VARIABLES200: ! END OF HBONDMATRIX VARIABLES
201: 201: 
202:       INTEGER  NGBSITE, NPYSITE, PYBINARYTYPE1, PYSWAP(3), MAXINTERACTIONS202:       INTEGER  NGBSITE, NPYSITE, PYBINARYTYPE1, PYSWAP(3), MAXINTERACTIONS
203:    203:    
204:       DOUBLE PRECISION :: DZP1, DZP2, DZP3, DZP4, DZP5, DZP6, DZP7204:       DOUBLE PRECISION :: DZP1, DZP2, DZP3, DZP4, DZP5, DZP6, DZP7
205:       LOGICAL :: FIELDT, OHT, IHT, TDT, D5HT205:       LOGICAL :: FIELDT, OHT, IHT, TDT, D5HT
206:       DOUBLE PRECISION :: FOH, FIH, FTD, FD5H206:       DOUBLE PRECISION :: FOH, FIH, FTD, FD5H
207: 207: 
208:       !ds656> Box centroid to facilitate global 
209:       !       optimisation of supported clusters. 
210:       LOGICAL :: BOXCENTROIDT, BOXCENTROID_DISCRETE(3) 
211:       DOUBLE PRECISION :: BOXCENTROID_X(3), BOXCENTROID_DX(3) 
212:  
213:       !ds656> Mie field(s) for modelling substrate effects.208:       !ds656> Mie field(s) for modelling substrate effects.
214:       LOGICAL :: MIEFT, MIEF_CUTT, MIEF_PBCT209:       LOGICAL :: MIEFT, MIEF_CUTT, MIEF_PBCT
215:       CHARACTER(LEN=130) :: MIEF_FILENAME210:       CHARACTER(LEN=130) :: MIEF_FILENAME
216:       INTEGER :: MIEF_NSITES,MIEF_N,MIEF_M211:       INTEGER :: MIEF_NSITES,MIEF_N,MIEF_M
217:       DOUBLE PRECISION :: MIEF_BOX(3), MIEF_RCUT           212:       DOUBLE PRECISION :: MIEF_BOX(3), MIEF_RCUT           
218:       DOUBLE PRECISION, ALLOCATABLE :: MIEF_EPS(:), MIEF_SIG(:), &213:       DOUBLE PRECISION, ALLOCATABLE :: MIEF_EPS(:), MIEF_SIG(:), &
219:            MIEF_SITES(:,:), MIEF_U_RCUT(:), MIEF_DUDR_RCUT(:)214:            MIEF_SITES(:,:), MIEF_U_RCUT(:), MIEF_DUDR_RCUT(:)
220: 215: 
221:       CHARACTER(LEN=80) :: SYS216:       CHARACTER(LEN=80) :: SYS
222:       CHARACTER(LEN=80) :: INFILE=''217:       CHARACTER(LEN=80) :: INFILE=''


r29011/keywords.f 2015-11-17 23:33:28.524887297 +0000 r29010/keywords.f 2015-11-17 23:33:30.248910420 +0000
340:       CHECKCHIRALITY=.TRUE.340:       CHECKCHIRALITY=.TRUE.
341:       NOCISTRANS=.TRUE.341:       NOCISTRANS=.TRUE.
342:       NOCISTRANSRNA=.FALSE.342:       NOCISTRANSRNA=.FALSE.
343:       NOCISTRANSDNA=.FALSE.343:       NOCISTRANSDNA=.FALSE.
344:       MINOMEGA=150.D0344:       MINOMEGA=150.D0
345:       CIS_TRANS_TOL=180.0D0 - MINOMEGA345:       CIS_TRANS_TOL=180.0D0 - MINOMEGA
346:       UACHIRAL=.FALSE.346:       UACHIRAL=.FALSE.
347:       SETCHIRAL=.FALSE.347:       SETCHIRAL=.FALSE.
348:       SETCHIRALGENERIC=.FALSE.348:       SETCHIRALGENERIC=.FALSE.
349:       !349:       !
350:       !ds656> box centroid 
351:       BOXCENTROIDT=.FALSE. 
352:       BOXCENTROID_DISCRETE(1:3)=.FALSE. 
353:       BOXCENTROID_X(1:3)=0.0D0 
354:       BOXCENTROID_DX(1:3)=0.0D0 
355:       ! 
356:       !ds656> substrate field(s)350:       !ds656> substrate field(s)
357:       MIEFT=.FALSE.351:       MIEFT=.FALSE.
358:       MIEF_PBCT=.FALSE.352:       MIEF_PBCT=.FALSE.
359:       MIEF_CUTT=.FALSE.353:       MIEF_CUTT=.FALSE.
360:       MIEF_BOX(1:3) = 1.0D9354:       MIEF_BOX(1:3) = 1.0D9
361:       MIEF_RCUT= 1.0D9355:       MIEF_RCUT= 1.0D9
362:       !356:       !
363:       FIELDT=.FALSE.357:       FIELDT=.FALSE.
364:       OHT=.FALSE.358:       OHT=.FALSE.
365:       IHT=.FALSE.359:       IHT=.FALSE.
2735: 2729: 
2736:       ELSE IF (WORD .EQ. 'CUDATIME') THEN2730:       ELSE IF (WORD .EQ. 'CUDATIME') THEN
2737:          CUDATIMET=.TRUE.2731:          CUDATIMET=.TRUE.
2738: 2732: 
2739:       ELSE IF (WORD.EQ.'CUTOFF') THEN2733:       ELSE IF (WORD.EQ.'CUTOFF') THEN
2740:          CUTT=.TRUE.2734:          CUTT=.TRUE.
2741:          IF (NITEMS.GT.1) CALL READF(CUTOFF)2735:          IF (NITEMS.GT.1) CALL READF(CUTOFF)
2742:          FINALCUTOFF=CUTOFF2736:          FINALCUTOFF=CUTOFF
2743:          IF (NITEMS.GT.2) CALL READF(FINALCUTOFF)2737:          IF (NITEMS.GT.2) CALL READF(FINALCUTOFF)
2744:          2738:          
2745:       ELSE IF (WORD.EQ.'BOXCENTROID') THEN 
2746:          BOXCENTROIDT=.TRUE. 
2747:          CALL READF(BOXCENTROID_X(1)) 
2748:          CALL READF(BOXCENTROID_X(2)) 
2749:          CALL READF(BOXCENTROID_X(3)) 
2750:          CALL READF(BOXCENTROID_DX(1)) 
2751:          CALL READF(BOXCENTROID_DX(2)) 
2752:          CALL READF(BOXCENTROID_DX(3)) 
2753:          IF(NITEMS.GT.7) THEN 
2754:             DO J1=1,3 
2755:                CALL READI(J2) 
2756:                IF(J2==1) BOXCENTROID_DISCRETE(J1) = .TRUE. 
2757:             ENDDO 
2758:          ENDIF 
2759:           
2760:       ELSE IF (WORD.EQ.'MIE_FIELD') THEN2739:       ELSE IF (WORD.EQ.'MIE_FIELD') THEN
2761:          MIEFT=.TRUE.2740:          MIEFT=.TRUE.
2762:          CALL READA(MIEF_FILENAME)2741:          CALL READA(MIEF_FILENAME)
2763:          IF(NITEMS.GT.2) THEN2742:          IF(NITEMS.GT.2) THEN
2764:             MIEF_CUTT=.TRUE.2743:             MIEF_CUTT=.TRUE.
2765:             CALL READF(MIEF_RCUT)2744:             CALL READF(MIEF_RCUT)
2766:          ENDIF2745:          ENDIF
2767:          IF(NITEMS.GT.3) THEN2746:          IF(NITEMS.GT.3) THEN
2768:             MIEF_PBCT=.TRUE.2747:             MIEF_PBCT=.TRUE.
2769:             CALL READF(MIEF_BOX(1))2748:             CALL READF(MIEF_BOX(1))


r29011/Makefile 2015-11-17 23:33:27.756877003 +0000 r29010/Makefile 2015-11-17 23:33:29.476898885 +0000
 50:         operations.o overlap.o polirmod.o ps_intra_polir_b.o swmod.o chirality.o grafpack.o mbpol.o precision.o libmbpol.a gauss.o rad.o dihedral.o twist.o 50:         operations.o overlap.o polirmod.o ps_intra_polir_b.o swmod.o chirality.o grafpack.o mbpol.o precision.o libmbpol.a gauss.o rad.o dihedral.o twist.o
 51: OBJS2 =        centre.o genrigid.o rotations.o finalio.o modconsts_trans_97.o modconsts.o dist.o tryexchange.o \ 51: OBJS2 =        centre.o genrigid.o rotations.o finalio.o modconsts_trans_97.o modconsts.o dist.o tryexchange.o \
 52:         io1.o keywords.o  main.o mc.o mcruns.o morse.o \ 52:         io1.o keywords.o  main.o mc.o mcruns.o morse.o \
 53:         potential.o quench.o dprand.o saveit.o seed.o \ 53:         potential.o quench.o dprand.o saveit.o seed.o \
 54:         sort.o sort2.o sort3.o sort4.o takestep.o mycpu_time.o trans.o \ 54:         sort.o sort2.o sort3.o sort4.o takestep.o mycpu_time.o trans.o \
 55:         finalq.o symmetry.o symmetrycsm.o ptgrp.o eigsrt.o SiSW.o taboo.o reseed.o newinertia.o supermc.o pgsym.o pgsym_mod.o\ 55:         finalq.o symmetry.o symmetrycsm.o ptgrp.o eigsrt.o SiSW.o taboo.o reseed.o newinertia.o supermc.o pgsym.o pgsym_mod.o\
 56:         tosifumi.o ortho.o compress.o mylbfgs.o mymylbfgs.o input.o ddfpmin.o dlnsrch.o cgmin.o linmin.o \ 56:         tosifumi.o ortho.o compress.o mylbfgs.o mymylbfgs.o input.o ddfpmin.o dlnsrch.o cgmin.o linmin.o \
 57:         brent.o mnbrak.o dbrent.o f1dim.o zwischen.o hsmove.o PachecoC60.o AT.o EAMLJ_sub.o \ 57:         brent.o mnbrak.o dbrent.o f1dim.o zwischen.o hsmove.o PachecoC60.o AT.o EAMLJ_sub.o \
 58:         Pbglue.o wenzel.o odesd.o capsid.o rigidfuncs.o tip.o pah.o strand.o \ 58:         Pbglue.o wenzel.o odesd.o capsid.o rigidfuncs.o tip.o pah.o strand.o \
 59:         SW.o qmod.o ljpbin.o fdm.o dftb.o ljpshift.o dzugutov.o ljcoulomb.o \ 59:         SW.o qmod.o ljpbin.o fdm.o dftb.o ljpshift.o dzugutov.o ljcoulomb.o \
 60:         binary_id_swaps.o homoref.o homoref_addons.o enperms.o multiperm.o mie_field.o boxcentroid.o \ 60:         binary_id_swaps.o homoref.o homoref_addons.o enperms.o multiperm.o mie_field.o \
 61:         QALCSearch.o QALCS_surface.o QALCS_symmetry.o QALCS_symmetry_mod.o atom_label_swaps.o atom_label_flips.o stress.o \ 61:         QALCSearch.o QALCS_surface.o QALCS_symmetry.o QALCS_symmetry_mod.o atom_label_swaps.o atom_label_flips.o stress.o \
 62:         fd.o fedor.o welch.o glj_yukawa.o BGupta.o BLJcluster.o BLJcluster_nocut.o stock.o Farkas.o getorbits.o \ 62:         fd.o fedor.o welch.o glj_yukawa.o BGupta.o BLJcluster.o BLJcluster_nocut.o stock.o Farkas.o getorbits.o \
 63:         sc.o MSC.o MGupta.o MLJ.o Zetterling.o MSorig.o MSorigc.o MStrans.97.o convert.o \ 63:         sc.o MSC.o MGupta.o MLJ.o Zetterling.o MSorig.o MSorigc.o MStrans.97.o convert.o \
 64:         frausi.o p46merdiff.o g46merdiff.o lj.o modperm.o modf1com.o mododesd.o EAMal.o Alglue.o Mgglue.o \ 64:         frausi.o p46merdiff.o g46merdiff.o lj.o modperm.o modf1com.o mododesd.o EAMal.o Alglue.o Mgglue.o \
 65:         Gupta.o orient.o Natb.o sticky.o enumerate.o minperm.o minpermdist.o LB2.o \ 65:         Gupta.o orient.o Natb.o sticky.o enumerate.o minperm.o minpermdist.o LB2.o \
 66:         dgetrf.o dgetri.o reorient.o thomson.o Q4.o basinsampling.o tether.o tetherfunc.o BLN.o \ 66:         dgetrf.o dgetri.o reorient.o thomson.o Q4.o basinsampling.o tether.o tetherfunc.o BLN.o \
 67:         newmindist.o centrecom.o qorderparam_blj.o qorderparam_lj.o bspt.o GMINdump.o quad.o \ 67:         newmindist.o centrecom.o qorderparam_blj.o qorderparam_lj.o bspt.o GMINdump.o quad.o \
 68:         rigidbaa.o checkd.o capbin.o dbpg.o dbptd.o dmblmorse.o dmblpy.o gbcalamitic.o gbdiscotic.o gem.o gbddp.o linrod.o \ 68:         rigidbaa.o checkd.o capbin.o dbpg.o dbptd.o dmblmorse.o dmblpy.o gbcalamitic.o gbdiscotic.o gem.o gbddp.o linrod.o \
 69:         lwotp.o        newcapsid.o newpah.o msgayberne.o mstbin.o multstock.o paha.o pahw99.o pap.o ptstst.o papbin.o papjanus.o silane.o \ 69:         lwotp.o        newcapsid.o newpah.o msgayberne.o mstbin.o multstock.o paha.o pahw99.o pap.o ptstst.o papbin.o papjanus.o silane.o \
 70:         multpaha.o newtip.o patchy.o asaoos.o stockaa.o tetrahedra.o waterpdc.o waterpkz.o takestepmsgb.o dipolarmorse.o \ 70:         multpaha.o newtip.o patchy.o asaoos.o stockaa.o tetrahedra.o waterpdc.o waterpkz.o takestepmsgb.o dipolarmorse.o \
505: #${QUIPPROG}: libfullquip.a 505: #${QUIPPROG}: libfullquip.a 
506: libcharmm.a: commons.o modcharmm.o modmxatms.o506: libcharmm.a: commons.o modcharmm.o modmxatms.o
507: libamber.a: commons.o modamber9.o porfuncs.o grouprotation.o507: libamber.a: commons.o modamber9.o porfuncs.o grouprotation.o
508: #${OBJS2}: ${OBJS1} 508: #${OBJS2}: ${OBJS1} 
509: 509: 
510: 510: 
511: Alglue.o:      commons.o511: Alglue.o:      commons.o
512: atomlists.o:   commons.o512: atomlists.o:   commons.o
513: atom_label_swaps.o: commons.o513: atom_label_swaps.o: commons.o
514: atom_label_flips.o: commons.o514: atom_label_flips.o: commons.o
515: boxcentroid.o: commons.o         
516: binary_id_swaps.o: commons.o515: binary_id_swaps.o: commons.o
517: BLJcluster.o:  commons.o516: BLJcluster.o:  commons.o
518: GLJ.o:  commons.o517: GLJ.o:  commons.o
519: BLJcluster_nocut.o: commons.o518: BLJcluster_nocut.o: commons.o
520: BGupta.o:      commons.o519: BGupta.o:      commons.o
521: detsym.o:      commons.o520: detsym.o:      commons.o
522: homoref.o:     commons.o521: homoref.o:     commons.o
523: homoref_addons.o: commons.o522: homoref_addons.o: commons.o
524: enperms.o:     commons.o523: enperms.o:     commons.o
525: multiperm.o:   commons.o porfuncs.o524: multiperm.o:   commons.o porfuncs.o


r29011/mc.F 2015-11-17 23:33:28.720889928 +0000 r29010/mc.F 2015-11-17 23:33:30.456913210 +0000
1342:                DOGROUPROT=.FALSE.1342:                DOGROUPROT=.FALSE.
1343:                DODGROUPMOVET=.FALSE.1343:                DODGROUPMOVET=.FALSE.
1344:                DOEXPANDRIGID=.FALSE.1344:                DOEXPANDRIGID=.FALSE.
1345:                DOROTATERIGID=.FALSE.1345:                DOROTATERIGID=.FALSE.
1346:                DOTRANSLATERIGID=.FALSE.1346:                DOTRANSLATERIGID=.FALSE.
1347: !!!!!!!!!!!!!!!!!!!!!!!!!!!1347: !!!!!!!!!!!!!!!!!!!!!!!!!!!
1348: ! END OF STEP TAKING CALLS!1348: ! END OF STEP TAKING CALLS!
1349: !!!!!!!!!!!!!!!!!!!!!!!!!!!1349: !!!!!!!!!!!!!!!!!!!!!!!!!!!
1350: ! csw34> end of temporary IF block for new moves - look for NEWMOVEST1350: ! csw34> end of temporary IF block for new moves - look for NEWMOVEST
1351:             ENDIF1351:             ENDIF
1352:              
1353: ! ds656> Translate centre of geometry (COG) if needed 
1354:             IF(BOXCENTROIDT) CALL BOXCENTROID(COORDS(:,JP)) 
1355:  
1356: ! csw34> If you want to look at the effect of moves, you can dump out1352: ! csw34> If you want to look at the effect of moves, you can dump out
1357: ! the structure AFTER the move here.1353: ! the structure AFTER the move here.
1358: !              CALL A9DUMPPDB(COORDS(:,JP),"aftermove")1354: !              CALL A9DUMPPDB(COORDS(:,JP),"aftermove")
1359: !              CALL CHARMMDUMP(COORDS(:,JP),"aftermove")1355: !              CALL CHARMMDUMP(COORDS(:,JP),"aftermove")
1360:             1356:             
1361: ! KEYWORD <DUMPSTEPS> BLOCK            1357: ! KEYWORD <DUMPSTEPS> BLOCK            
1362: ! csw34> Dump the coordinates after every step in AMBER pdb and rst format 1358: ! csw34> Dump the coordinates after every step in AMBER pdb and rst format 
1363:                   IF (DUMPSTEPST) THEN1359:                   IF (DUMPSTEPST) THEN
1364:                       WRITE(QUENCHNUM,*) NQ(JP)1360:                       WRITE(QUENCHNUM,*) NQ(JP)
1365:                       IF(DMACRYST) THEN1361:                       IF(DMACRYST) THEN


r29011/QALCS_surface.f90 2015-11-17 23:33:27.960879732 +0000 r29010/QALCS_surface.f90 2015-11-17 23:33:29.664902585 +0000
 20: !   All routines in this file were implemented by 20: !   All routines in this file were implemented by
 21: !   Dmitri Schebarchov (ds656). 21: !   Dmitri Schebarchov (ds656).
 22: !=============================================================  22: !============================================================= 
 23: ! 23: !
 24: SUBROUTINE QALCS_SURF(NP,ITER,TIME,BRUN,QDONE,SCREENC) 24: SUBROUTINE QALCS_SURF(NP,ITER,TIME,BRUN,QDONE,SCREENC)
 25:   ! 25:   !
 26:   ! Quench-Assisted Local Combinatorial Search for surface vacancies. 26:   ! Quench-Assisted Local Combinatorial Search for surface vacancies.
 27:   ! Atoms are systematically swapped with "vacancies" (type 0). 27:   ! Atoms are systematically swapped with "vacancies" (type 0).
 28:   ! 28:   !
 29:   USE COMMONS, ONLY : NATOMS, VSITES, NNLISTS, COORDS, & 29:   USE COMMONS, ONLY : NATOMS, VSITES, NNLISTS, COORDS, &
 30:        NQ, ECONV, MYUNIT, TSTART, QALCSV, BOXCENTROIDT 30:        NQ, ECONV, MYUNIT, TSTART, QALCSV
 31:   ! 31:   !
 32:   IMPLICIT NONE 32:   IMPLICIT NONE
 33:   ! 33:   !
 34:   ! Parse passed variables 34:   ! Parse passed variables
 35:   INTEGER, INTENT(IN) :: NP 35:   INTEGER, INTENT(IN) :: NP
 36:   INTEGER, INTENT(INOUT) :: ITER, BRUN, QDONE ! for QUENCH 36:   INTEGER, INTENT(INOUT) :: ITER, BRUN, QDONE ! for QUENCH
 37:   DOUBLE PRECISION, INTENT(INOUT) :: TIME, SCREENC(3*NATOMS) ! for QUENCH 37:   DOUBLE PRECISION, INTENT(INOUT) :: TIME, SCREENC(3*NATOMS) ! for QUENCH
 38:   ! 38:   !
 39:   LOGICAL ::  COMPLETE 39:   LOGICAL ::  COMPLETE
 40:   INTEGER :: I1,I2,I3,I33,K,NQTOT,ATOMS_SORTED_BY_NN(0:NATOMS), & 40:   INTEGER :: I1,I2,I3,I33,K,NQTOT,ATOMS_SORTED_BY_NN(0:NATOMS), &
 87:         DO I2=1,ATOMS_SORTED_BY_NN(0) ! loop thru worst atoms 87:         DO I2=1,ATOMS_SORTED_BY_NN(0) ! loop thru worst atoms
 88:            ! 88:            !
 89:            I3=ATOMS_SORTED_BY_NN(I2) ! actual atom index 89:            I3=ATOMS_SORTED_BY_NN(I2) ! actual atom index
 90:            ! 90:            !
 91:            I33=3*(I3-1) 91:            I33=3*(I3-1)
 92:            ! 92:            !
 93:            DO K=1,3 93:            DO K=1,3
 94:               COORDS(I33+K,NP) = VSITES(I1,K) 94:               COORDS(I33+K,NP) = VSITES(I1,K)
 95:            ENDDO 95:            ENDDO
 96:            ! 96:            !
 97:            IF(BOXCENTROIDT) CALL BOXCENTROID(COORDS(:,NP)) 
 98:            ! 
 99:            NQTOT = NQTOT + 1 97:            NQTOT = NQTOT + 1
100:            NQ(NP) = NQ(NP) + 1 98:            NQ(NP) = NQ(NP) + 1
101:            CALL QUENCH(.FALSE.,NP,ITER,TIME,BRUN,QDONE,SCREENC) 99:            CALL QUENCH(.FALSE.,NP,ITER,TIME,BRUN,QDONE,SCREENC)
102:            IF(QALCSV) CALL PRINT_QUENCH(NP, ITER, '  ')100:            IF(QALCSV) CALL PRINT_QUENCH(NP, ITER, '  ')
103:            !101:            !
104:            IF(POTEL < E - ECONV) THEN ! improvemenet102:            IF(POTEL < E - ECONV) THEN ! improvemenet
105:               COMPLETE = .FALSE.103:               COMPLETE = .FALSE.
106:               E = POTEL104:               E = POTEL
107:               X(1:3*NATOMS) = COORDS(1:3*NATOMS,NP)105:               X(1:3*NATOMS) = COORDS(1:3*NATOMS,NP)
108:               WRITE(MYUNIT,'(A,F20.10)') &106:               WRITE(MYUNIT,'(A,F20.10)') &


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0