hdiff output

r29994/amber_top_reader.f90 2016-03-16 18:34:12.459460816 +0000 r29993/amber_top_reader.f90 2016-03-16 18:34:13.243468875 +0000
  1: SUBROUTINE TOPOLOGY_READER(NBOND)  1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/GMIN/source/amber_top_reader.f90' in revision 29993
  2: USE COMMONS,ONLY : BONDS,MYUNIT 
  3: USE PORFUNCS  
  4:    IMPLICIT NONE 
  5:    CHARACTER(100) ENTRY 
  6:    INTEGER :: MYUNIT2,GETUNIT 
  7:    INTEGER,INTENT(OUT) :: NBOND 
  8:    INTEGER :: J1,START_IND,END_IND,NBONDH,NBONDA,HENTRIES,J3,J4,J5,NDUMMY,INTDUM,J6 
  9:    INTEGER , PARAMETER :: NWORDS=20 
 10:    CHARACTER(25) :: ENTRIES(NWORDS)='' 
 11:    !INTEGER, DIMENSION(:,:), ALLOCATABLE :: BONDS 
 12:  
 13:    MYUNIT2=GETUNIT() 
 14:    OPEN(MYUNIT2,FILE='coords.prmtop',STATUS='OLD') 
 15: reading:DO 
 16:  
 17: 98    READ(MYUNIT2,'(A)',END=99) ENTRY 
 18:       CALL READ_LINE(ENTRY,NWORDS,ENTRIES)      !get all words in line 
 19:       IF (ENTRIES(2).EQ.'POINTERS') THEN        !get number of bonds 
 20:          READ(MYUNIT2,*)                             !ignore format identifier after flag 
 21:          READ(MYUNIT2,'(A)',END=99) ENTRY 
 22:          CALL READ_LINE(ENTRY,NWORDS,ENTRIES) 
 23:          READ(ENTRIES(3),'(I8)') NBONDH 
 24:          READ(ENTRIES(4),'(I8)') NBONDA 
 25:          NBOND = NBONDH + NBONDA 
 26:          WRITE(MYUNIT,'(A,I8)') 'readtopology> Number of bonds:',NBOND 
 27:          ALLOCATE(BONDS(NBOND,2)) 
 28:       ENDIF 
 29:       IF (ENTRIES(2).EQ. 'BONDS_INC_HYDROGEN') THEN 
 30:          READ(MYUNIT2,*)                             !ignore format identifier after flag 
 31:          HENTRIES=(NBONDH*3)/10 
 32:          HENTRIES=HENTRIES+((NBONDH*3)-(HENTRIES*10)) !number of lines of entries 
 33:          NDUMMY=1 
 34:          J5=1 
 35:          DO J3=1,HENTRIES                             !go through all lines 
 36:             READ(MYUNIT2,'(A)',END=99) ENTRY               !read line 
 37:             CALL READ_LINE(ENTRY,NWORDS,ENTRIES) 
 38:             J4=1 
 39:             DO WHILE(J4.LE.10) 
 40:                IF (NDUMMY.LE.NBONDH) THEN 
 41:                   IF (J5.EQ.1) THEN 
 42:                      READ(ENTRIES(J4),'(I8)') INTDUM 
 43:                      BONDS(NDUMMY,1) = INTDUM/3+1        !atom1 
 44:                      J5=2 
 45:                   ELSE IF (J5.EQ.2) THEN 
 46:                      READ(ENTRIES(J4),'(I8)') INTDUM 
 47:                      BONDS(NDUMMY,2) = INTDUM/3+1        !atom2 
 48:                      J5=3 
 49:                   ELSE 
 50:                      J5=1 
 51:                      NDUMMY=NDUMMY+1 
 52:                   ENDIF 
 53:                ELSE 
 54:                   GOTO 98 
 55:                ENDIF 
 56:                J4=J4+1 
 57:             ENDDO 
 58:          ENDDO 
 59:       ENDIF 
 60:       IF (ENTRIES(2).EQ. 'BONDS_WITHOUT_HYDROGEN') THEN 
 61:          READ(MYUNIT2,*)                             !ignore format identifier after flag 
 62:          HENTRIES=(NBONDA*3)/10 
 63:          HENTRIES=HENTRIES+((NBONDA*3)-(HENTRIES*10)) !number of lines of entries 
 64:          NDUMMY=NBONDH+1 
 65:          J5=1 
 66:          DO J3=1,HENTRIES                             !go through all lines 
 67:             READ(MYUNIT2,'(A)',END=99) ENTRY               !read line 
 68:             CALL READ_LINE(ENTRY,NWORDS,ENTRIES) 
 69:             J4=1 
 70:             DO WHILE(J4.LE.10) 
 71:                IF (NDUMMY.LE.(NBONDH+NBONDA)) THEN 
 72:                   IF (J5.EQ.1) THEN 
 73:                      READ(ENTRIES(J4),'(I8)') INTDUM 
 74:                      BONDS(NDUMMY,1) = INTDUM/3+1 
 75:                      J5=2 
 76:                   ELSE IF (J5.EQ.2) THEN 
 77:                      READ(ENTRIES(J4),'(I8)') INTDUM 
 78:                      BONDS(NDUMMY,2) = INTDUM/3+1 
 79:                      J5=3 
 80:                   ELSE 
 81:                      J5=1 
 82:                      NDUMMY=NDUMMY+1 
 83:                   ENDIF 
 84:                ELSE 
 85:                   GOTO 98 
 86:                ENDIF 
 87:                J4=J4+1 
 88:             ENDDO 
 89:          ENDDO 
 90:       ENDIF 
 91:  
 92:    ENDDO reading 
 93: 99 CLOSE(MYUNIT2) 
 94:    DO J6=1,NBOND 
 95:       WRITE(MYUNIT,'(A,I8,A,I8)') 'readtopology> Bond between',BONDS(J6,1),' and',BONDS(J6,2) 
 96:    ENDDO 
 97:  
 98: END SUBROUTINE 
 99:    
100: SUBROUTINE READ_LINE(LINE,NWORDS,WORDSOUT) 
101:       CHARACTER(*), INTENT(IN) :: LINE 
102:       INTEGER, INTENT(IN) :: NWORDS 
103:       CHARACTER(*), DIMENSION(NWORDS), INTENT(OUT) :: WORDSOUT 
104:       INTEGER:: J1,START_IND,END_IND,J2 
105:       CHARACTER(25) :: WORD 
106:       START_IND=0 
107:       END_IND=0 
108:       J1=1 
109:       J2=0 
110:       DO WHILE(J1.LE.LEN(LINE)) 
111:           IF ((START_IND.EQ.0).AND.(LINE(J1:J1).NE.' ')) THEN 
112:              START_IND=J1 
113:           ENDIF 
114:           IF (START_IND.GT.0) THEN 
115:              IF (LINE(J1:J1).EQ.' ') END_IND=J1-1 
116:              IF (J1.EQ.LEN(LINE)) END_IND=J1 
117:              IF (END_IND.GT.0) THEN 
118:                 J2=J2+1 
119:                 WORD=LINE(START_IND:END_IND) 
120:                 WORDSOUT(J2)=TRIM(WORD) 
121:                 START_IND=0 
122:                 END_IND=0 
123:              ENDIF 
124:           ENDIF 
125:           J1=J1+1 
126:       ENDDO 
127: END SUBROUTINE 
128:  
129:  


r29994/commons.f90 2016-03-16 18:34:12.655462829 +0000 r29993/commons.f90 2016-03-16 18:34:13.439470893 +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, MLPB3T, MULTIPOTT, QCIAMBERT118:      &        MLP3T, MKTRAPT, MLPB3T, MULTIPOTT
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
620:       INTEGER, ALLOCATABLE :: CONI(:), CONJ(:), CONION(:), CONJON(:)620:       INTEGER, ALLOCATABLE :: CONI(:), CONJ(:), CONION(:), CONJON(:)
621:       INTEGER, ALLOCATABLE :: CONIFIX(:), CONJFIX(:), REPIFIX(:), REPJFIX(:)621:       INTEGER, ALLOCATABLE :: CONIFIX(:), CONJFIX(:), REPIFIX(:), REPJFIX(:)
622:       INTEGER, ALLOCATABLE :: REPI(:), REPJ(:)622:       INTEGER, ALLOCATABLE :: REPI(:), REPJ(:)
623:       INTEGER, ALLOCATABLE :: CPCONI(:), CPCONJ(:)623:       INTEGER, ALLOCATABLE :: CPCONI(:), CPCONJ(:)
624:       INTEGER, ALLOCATABLE :: CPREPI(:), CPREPJ(:)624:       INTEGER, ALLOCATABLE :: CPREPI(:), CPREPJ(:)
625:       DOUBLE PRECISION, ALLOCATABLE :: REPCUT(:), NREPCUT(:), CPREPCUT(:), REPCUTFIX(:)625:       DOUBLE PRECISION, ALLOCATABLE :: REPCUT(:), NREPCUT(:), CPREPCUT(:), REPCUTFIX(:)
626:       INTEGER, ALLOCATABLE :: NREPI(:), NREPJ(:)626:       INTEGER, ALLOCATABLE :: NREPI(:), NREPJ(:)
627:       LOGICAL, ALLOCATABLE, DIMENSION(:) :: INTFROZEN  !  MXATMS627:       LOGICAL, ALLOCATABLE, DIMENSION(:) :: INTFROZEN  !  MXATMS
628:       DOUBLE PRECISION, ALLOCATABLE ::  MLPDAT(:,:)628:       DOUBLE PRECISION, ALLOCATABLE ::  MLPDAT(:,:)
629:       INTEGER, ALLOCATABLE ::  MLPOUTCOME(:)629:       INTEGER, ALLOCATABLE ::  MLPOUTCOME(:)
630:       INTEGER, DIMENSION(:,:), ALLOCATABLE :: BONDS !for QCIAMBER 
631: 630: 
632: END MODULE COMMONS631: END MODULE COMMONS


r29994/intlbfgs.f90 2016-03-16 18:34:12.855464886 +0000 r29993/intlbfgs.f90 2016-03-16 18:34:13.639472952 +0000
2128:          CALL CONGRAD2(NMAXINT,NMININT,ETOTAL,XYZ,GGG,EEE,IMGFREEZE,RMS)2128:          CALL CONGRAD2(NMAXINT,NMININT,ETOTAL,XYZ,GGG,EEE,IMGFREEZE,RMS)
2129:       ELSE2129:       ELSE
2130:          CALL CONGRAD(NMAXINT,NMININT,ETOTAL,XYZ,GGG,EEE,IMGFREEZE,RMS)2130:          CALL CONGRAD(NMAXINT,NMININT,ETOTAL,XYZ,GGG,EEE,IMGFREEZE,RMS)
2131:       ENDIF2131:       ENDIF
2132: 2132: 
2133: END SUBROUTINE DOADDATOM2133: END SUBROUTINE DOADDATOM
2134: 2134: 
2135: SUBROUTINE CHECKPERC(LXYZ,LINTCONSTRAINTTOL,NQCIFREEZE,NCPFIT)2135: SUBROUTINE CHECKPERC(LXYZ,LINTCONSTRAINTTOL,NQCIFREEZE,NCPFIT)
2136: USE COMMONS, ONLY : ATOMACTIVE, NCONSTRAINT, INTFROZEN, CONI, CONJ, CONDISTREF, INTCONMAX, INTCONSTRAINTTOL, &2136: USE COMMONS, ONLY : ATOMACTIVE, NCONSTRAINT, INTFROZEN, CONI, CONJ, CONDISTREF, INTCONMAX, INTCONSTRAINTTOL, &
2137:   &             INTCONSEP, NCONGEOM, CONGEOM, CONIFIX, CONJFIX, CONDISTREFFIX, MYUNIT, INTCONCUT, &2137:   &             INTCONSEP, NCONGEOM, CONGEOM, CONIFIX, CONJFIX, CONDISTREFFIX, MYUNIT, INTCONCUT, &
2138:   &             NCONSTRAINTFIX, PERIODIC, TWOD, RIGID, CONDATT, CONCUT, CONCUTFIX, NATOMS, DEBUG, BOXLX, BOXLY, BOXLZ, &2138:   &             NCONSTRAINTFIX, PERIODIC, TWOD, RIGID, CONDATT, CONCUT, CONCUTFIX, NATOMS, DEBUG, BOXLX, BOXLY, BOXLZ
2139:   &             BONDS, QCIAMBERT 
2140: IMPLICIT NONE2139: IMPLICIT NONE
2141: INTEGER NDIST1(NATOMS), NCYCLE, DMIN1, DMAX1, NUNCON1, J1, J2, J3, NQCIFREEZE, J4, NCPFIT2140: INTEGER NDIST1(NATOMS), NCYCLE, DMIN1, DMAX1, NUNCON1, J1, J2, J3, NQCIFREEZE, J4, NCPFIT
2142: DOUBLE PRECISION LINTCONSTRAINTTOL, MAXCONDIST, MINCONDIST, DS, DF, LXYZ((3*NATOMS)*2)2141: DOUBLE PRECISION LINTCONSTRAINTTOL, MAXCONDIST, MINCONDIST, DS, DF, LXYZ((3*NATOMS)*2)
2143: DOUBLE PRECISION DSMIN, DSMAX, DSMEAN, D, DIST2, RMAT(3,3)2142: DOUBLE PRECISION DSMIN, DSMAX, DSMEAN, D, DIST2, RMAT(3,3)
2144: LOGICAL CHANGED, LDEBUG2143: LOGICAL CHANGED, LDEBUG
2145: LOGICAL :: CALLED=.FALSE.2144: LOGICAL :: CALLED=.FALSE.
2146: SAVE CALLED2145: SAVE CALLED
2147: !for QCIAMBER 
2148: INTEGER NBOND 
2149: 2146: 
2150: LINTCONSTRAINTTOL=INTCONSTRAINTTOL2147: LINTCONSTRAINTTOL=INTCONSTRAINTTOL
2151: 2148: 
2152: IF (.NOT.ALLOCATED(ATOMACTIVE)) ALLOCATE(ATOMACTIVE(NATOMS))2149: IF (.NOT.ALLOCATED(ATOMACTIVE)) ALLOCATE(ATOMACTIVE(NATOMS))
2153: !2150: !
2154: ! Fixed constraints based on congeom file entries2151: ! Fixed constraints based on congeom file entries
2155: ! Just need to adjust the list based on any frozen atoms. We2152: ! Just need to adjust the list based on any frozen atoms. We
2156: ! want to exclude any constraints between two frozen atoms 2153: ! want to exclude any constraints between two frozen atoms 
2157: ! from the list, because subsequent code depends on this.2154: ! from the list, because subsequent code depends on this.
2158: !2155: !
2200:          CALL MINPERMDIST(CONGEOM(1,1:3*NATOMS),CONGEOM(J2,1:3*NATOMS),NATOMS,LDEBUG, &2197:          CALL MINPERMDIST(CONGEOM(1,1:3*NATOMS),CONGEOM(J2,1:3*NATOMS),NATOMS,LDEBUG, &
2201:   &                       BOXLX,BOXLY,BOXLZ,PERIODIC,TWOD,D,DIST2,RIGID,RMAT)2198:   &                       BOXLX,BOXLY,BOXLZ,PERIODIC,TWOD,D,DIST2,RIGID,RMAT)
2202:       ENDDO2199:       ENDDO
2203:    ENDIF2200:    ENDIF
2204:    ALLOCATE(CONIFIX(INTCONMAX),CONJFIX(INTCONMAX),CONCUTFIX(INTCONMAX),CONDISTREFFIX(INTCONMAX))2201:    ALLOCATE(CONIFIX(INTCONMAX),CONJFIX(INTCONMAX),CONCUTFIX(INTCONMAX),CONDISTREFFIX(INTCONMAX))
2205: ENDIF2202: ENDIF
2206: 2203: 
2207: 51   NCONSTRAINT=0 2204: 51   NCONSTRAINT=0 
2208: MAXCONDIST=-1.0D02205: MAXCONDIST=-1.0D0
2209: MINCONDIST=1.0D1002206: MINCONDIST=1.0D100
2210: IF (QCIAMBERT) THEN             !kr366> assume we use two endpoints and topology for amber constraints2207: IF (NCONGEOM.LT.2) THEN 
2211:    CALL TOPOLOGY_READER(NBOND)  !get number of bonds and bonds from topology 
2212:    DO J2=1,NBOND                !loop through all bonds and add them to constraint list 
2213:       IF (INTFROZEN(BONDS(J2,1)).AND.INTFROZEN(BONDS(J2,2))) THEN 
2214:          INTFROZEN(BONDS(J2,1))=.FALSE. 
2215:          INTFROZEN(BONDS(J2,2))=.FALSE. 
2216:          WRITE(MYUNIT,'(A,2I6)') 'qciamber> Unfreeze bonded atoms: ', BONDS(J2,1),BONDS(J2,2) 
2217:          NQCIFREEZE=NQCIFREEZE-2 
2218:       ENDIF 
2219:       DS=SQRT((LXYZ(3*(BONDS(J2,1)-1)+1)-LXYZ(3*(BONDS(J2,2)-1)+1))**2 & 
2220:   &          +(LXYZ(3*(BONDS(J2,1)-1)+2)-LXYZ(3*(BONDS(J2,2)-1)+2))**2 & 
2221:   &          +(LXYZ(3*(BONDS(J2,1)-1)+3)-LXYZ(3*(BONDS(J2,2)-1)+3))**2) 
2222:       DF=SQRT((LXYZ(3*NATOMS+3*(BONDS(J2,1)-1)+1)-LXYZ(3*NATOMS+3*(BONDS(J2,2)-1)+1))**2 & 
2223:   &          +(LXYZ(3*NATOMS+3*(BONDS(J2,1)-1)+2)-LXYZ(3*NATOMS+3*(BONDS(J2,2)-1)+2))**2 & 
2224:   &          +(LXYZ(3*NATOMS+3*(BONDS(J2,1)-1)+3)-LXYZ(3*NATOMS+3*(BONDS(J2,2)-1)+3))**2) 
2225:       WRITE(MYUNIT,'(A,2I6,2G20.10)') 'intlbfgs> J2,J3,DS,DF=', BONDS(J2,1),BONDS(J2,2),DS,DF 
2226:       NCONSTRAINT=NCONSTRAINT+1 
2227:       WRITE(MYUNIT,'(A,2I6,A,I6)') 'intlbfgs> Adding constraint for atoms ',BONDS(J2,1),BONDS(J2,2), & 
2228:   &                     '  total=',NCONSTRAINT 
2229:       CONI(NCONSTRAINT)=BONDS(J2,1) 
2230:       CONJ(NCONSTRAINT)=BONDS(J2,2) 
2231:       CONDISTREF(NCONSTRAINT)=(DF+DS)/2.0D0 
2232:       CONCUT(NCONSTRAINT)=ABS(DF-DS)/2.0D0 
2233:       IF (CONDISTREF(NCONSTRAINT).GT.MAXCONDIST) MAXCONDIST=CONDISTREF(NCONSTRAINT) 
2234:       IF (CONDISTREF(NCONSTRAINT).LT.MINCONDIST) MINCONDIST=CONDISTREF(NCONSTRAINT) 
2235:    ENDDO 
2236:    IF (DEBUG) WRITE(MYUNIT,'(A,I6,2(A,F15.5))') ' intlbfgs> Total distance constraints=',NCONSTRAINT, & 
2237:   &                                     ' shortest=',MINCONDIST,' longest=',MAXCONDIST       
2238:    
2239: ELSE IF (NCONGEOM.LT.2) THEN  
2240:    DO J2=1,NATOMS2208:    DO J2=1,NATOMS
2241:       DO J3=J2+1,NATOMS2209:       DO J3=J2+1,NATOMS
2242: 2210: 
2243:          IF (J3-J2.GT.INTCONSEP) CYCLE ! forbid constraints corresponding to atoms distant in sequence2211:          IF (J3-J2.GT.INTCONSEP) CYCLE ! forbid constraints corresponding to atoms distant in sequence
2244:          IF (INTFROZEN(J2).AND.INTFROZEN(J3)) CYCLE ! no constraints between intfrozen atoms2212:          IF (INTFROZEN(J2).AND.INTFROZEN(J3)) CYCLE ! no constraints between intfrozen atoms
2245:          DS=SQRT((LXYZ(3*(J2-1)+1)-LXYZ(3*(J3-1)+1))**2 &2213:          DS=SQRT((LXYZ(3*(J2-1)+1)-LXYZ(3*(J3-1)+1))**2 &
2246:   &             +(LXYZ(3*(J2-1)+2)-LXYZ(3*(J3-1)+2))**2 &2214:   &             +(LXYZ(3*(J2-1)+2)-LXYZ(3*(J3-1)+2))**2 &
2247:   &             +(LXYZ(3*(J2-1)+3)-LXYZ(3*(J3-1)+3))**2) 2215:   &             +(LXYZ(3*(J2-1)+3)-LXYZ(3*(J3-1)+3))**2) 
2248:          IF (DS.GT.INTCONCUT) CYCLE ! don't allow constraints if either endpoint separation is too large DJW2216:          IF (DS.GT.INTCONCUT) CYCLE ! don't allow constraints if either endpoint separation is too large DJW
2249:          DF=SQRT((LXYZ(3*NATOMS+3*(J2-1)+1)-LXYZ(3*NATOMS+3*(J3-1)+1))**2 &2217:          DF=SQRT((LXYZ(3*NATOMS+3*(J2-1)+1)-LXYZ(3*NATOMS+3*(J3-1)+1))**2 &


r29994/keywords.f 2016-03-16 18:34:13.055466943 +0000 r29993/keywords.f 2016-03-16 18:34:13.839475006 +0000
205:          CONCUTABST=.TRUE.205:          CONCUTABST=.TRUE.
206:          CONCUTFRAC=0.1D0206:          CONCUTFRAC=0.1D0
207:          CONCUTFRACT=.FALSE.207:          CONCUTFRACT=.FALSE.
208:          CHECKREPINTERVAL=10208:          CHECKREPINTERVAL=10
209:          CHECKREPCUTOFF=2.0D0209:          CHECKREPCUTOFF=2.0D0
210:          DUMPINTXYZ=.FALSE.210:          DUMPINTXYZ=.FALSE.
211:          DUMPINTEOS=.FALSE.211:          DUMPINTEOS=.FALSE.
212:          DUMPINTXYZFREQ=100212:          DUMPINTXYZFREQ=100
213:          DUMPINTEOSFREQ=100213:          DUMPINTEOSFREQ=100
214:          KINT=0.0D0214:          KINT=0.0D0
215:          QCIAMBERT=.FALSE. 
216: 215: 
217: ! ns644>    Adding the TWIST keyword:216: ! ns644>    Adding the TWIST keyword:
218:       TWISTT=.FALSE.217:       TWISTT=.FALSE.
219:       NTWISTGROUPS=0218:       NTWISTGROUPS=0
220: 219: 
221: 220: 
222:       ALLOCATE(FIXSTEP(1),FIXTEMP(1),FIXBOTH(1),TEMP(1),ACCRAT(1),STEP(1),ASTEP(1),OSTEP(1),BLOCK(1),NT(1),NQ(1),EPREV(1),221:       ALLOCATE(FIXSTEP(1),FIXTEMP(1),FIXBOTH(1),TEMP(1),ACCRAT(1),STEP(1),ASTEP(1),OSTEP(1),BLOCK(1),NT(1),NQ(1),EPREV(1),
223:      @         JUMPMOVE(1),JUMPINT(1),JDUMP(1),COORDS(3*NATOMSALLOC,1),COORDSO(3*NATOMSALLOC,1),VAT(NATOMSALLOC,1),222:      @         JUMPMOVE(1),JUMPINT(1),JDUMP(1),COORDS(3*NATOMSALLOC,1),COORDSO(3*NATOMSALLOC,1),VAT(NATOMSALLOC,1),
224:      @         VATO(NATOMSALLOC,1),  223:      @         VATO(NATOMSALLOC,1),  
225:      @         JUMPTO(1),SHELLMOVES(1),PTGROUP(1),NSURFMOVES(1),NCORE(1))224:      @         JUMPTO(1),SHELLMOVES(1),PTGROUP(1),NSURFMOVES(1),NCORE(1))
5221:          CALL READI(PATOM1)5220:          CALL READI(PATOM1)
5222:          CALL READI(PATOM2)5221:          CALL READI(PATOM2)
5223:          CALL READF(PFORCE)5222:          CALL READF(PFORCE)
5224:          WRITE(MYUNIT,'(A,I6,A,I6,A,G20.10)') ' keyword> Pulling atoms ',PATOM1,' and ',PATOM2,' force=',PFORCE5223:          WRITE(MYUNIT,'(A,I6,A,I6,A,G20.10)') ' keyword> Pulling atoms ',PATOM1,' and ',PATOM2,' force=',PFORCE
5225: !5224: !
5226: ! Request calculation of structural order parameters Q on the fly 5225: ! Request calculation of structural order parameters Q on the fly 
5227: ! NOT DOCUMENTED.5226: ! NOT DOCUMENTED.
5228: !5227: !
5229:       ELSE IF (WORD.EQ.'CALCQ') THEN5228:       ELSE IF (WORD.EQ.'CALCQ') THEN
5230:          CALCQT=.TRUE.5229:          CALCQT=.TRUE.
5231:  
5232: ! 
5233: !Use topology information for QCI constraints for AMBER 
5234: ! 
5235:       ELSE IF (WORD.EQ.'QCIAMBER') THEN 
5236:          QCIAMBERT=.TRUE. 
5237:          WRITE(MYUNIT,'(A)') ' keyword> Use topology file for constrtaints in QCI' 
5238:  
5239: !5230: !
5240: ! Distance cut-off for Coulomb interactions in AMBER (the PNM hand-coded version).5231: ! Distance cut-off for Coulomb interactions in AMBER (the PNM hand-coded version).
5241: !5232: !
5242: !      ELSE IF (WORD.EQ.'QCUTOFF') THEN5233: !      ELSE IF (WORD.EQ.'QCUTOFF') THEN
5243: !         AMCUT=.TRUE.5234: !         AMCUT=.TRUE.
5244: !         CALL READF(REALQCUTOFF)5235: !         CALL READF(REALQCUTOFF)
5245: !         QCUTOFF=1.1D0*REALQCUTOFF5236: !         QCUTOFF=1.1D0*REALQCUTOFF
5246: !5237: !
5247: ! NOT DOCUMENTED5238: ! NOT DOCUMENTED
5248: !5239: !


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0