hdiff output

r29296/commons.f90 2015-11-17 23:33:40.713050751 +0000 r29295/commons.f90 2015-11-17 23:33:41.293058532 +0000
147: 147: 
148: !148: !
149: ! csw34> Array to contain the number of atoms in the AVOID list when using NEWRESTART149: ! csw34> Array to contain the number of atoms in the AVOID list when using NEWRESTART
150: 150: 
151:       INTEGER, ALLOCATABLE :: AVOIDNATOMS(:)151:       INTEGER, ALLOCATABLE :: AVOIDNATOMS(:)
152: !152: !
153: 153: 
154: ! GROUP ROTATION MOVE PARAMETERS154: ! GROUP ROTATION MOVE PARAMETERS
155:       INTEGER :: GROUPROTFREQ, NGROUPS155:       INTEGER :: GROUPROTFREQ, NGROUPS
156:       LOGICAL :: GROUPROTT, DOGROUPROT=.FALSE., GR_SCALEROT, GR_SCALEPROB156:       LOGICAL :: GROUPROTT, DOGROUPROT=.FALSE., GR_SCALEROT, GR_SCALEPROB
157:       LOGICAL :: GROUPROT_SUPPRESS 
158:       CHARACTER(LEN=10), ALLOCATABLE :: ATOMGROUPNAMES(:)157:       CHARACTER(LEN=10), ALLOCATABLE :: ATOMGROUPNAMES(:)
159:       CHARACTER(LEN=30) :: GR_SCALEMODE158:       CHARACTER(LEN=30) :: GR_SCALEMODE
160:       INTEGER, ALLOCATABLE :: ATOMGROUPAXIS(:,:)159:       INTEGER, ALLOCATABLE :: ATOMGROUPAXIS(:,:)
161:       DOUBLE PRECISION, ALLOCATABLE :: ATOMGROUPSCALING(:),ATOMGROUPPSELECT(:)160:       DOUBLE PRECISION, ALLOCATABLE :: ATOMGROUPSCALING(:),ATOMGROUPPSELECT(:)
162:       LOGICAL, ALLOCATABLE :: ATOMGROUPS(:,:)161:       LOGICAL, ALLOCATABLE :: ATOMGROUPS(:,:)
163:       162:       
164: ! DIHEDRAL GROUP ROTATION MOVE PARAMETERS163: ! DIHEDRAL GROUP ROTATION MOVE PARAMETERS
165:       INTEGER :: DIHEDRALROTFREQ, NDIHEDRALGROUPS 164:       INTEGER :: DIHEDRALROTFREQ, NDIHEDRALGROUPS 
166:       LOGICAL :: DIHEDRALROTT, DODIHEDRALROT=.FALSE.165:       LOGICAL :: DIHEDRALROTT, DODIHEDRALROT=.FALSE.
167:       CHARACTER(LEN=10), ALLOCATABLE :: DIHEDRALGROUPNAMES(:), ANGLETYPE(:)166:       CHARACTER(LEN=10), ALLOCATABLE :: DIHEDRALGROUPNAMES(:), ANGLETYPE(:)


r29296/grouprotation.f90 2015-11-17 23:33:40.897053221 +0000 r29295/grouprotation.f90 2015-11-17 23:33:41.489061166 +0000
 92:       PI=ATAN(1.0D0)*4 92:       PI=ATAN(1.0D0)*4
 93:       TWOPI=2.0D0*PI 93:       TWOPI=2.0D0*PI
 94: ! For each group....       94: ! For each group....      
 95:       IF ( USERPOTT .OR. AMBERT .OR. AMBER12T .OR. (CHRMMT.AND.(.NOT.CHNEIGHBOURT)) ) THEN 95:       IF ( USERPOTT .OR. AMBERT .OR. AMBER12T .OR. (CHRMMT.AND.(.NOT.CHNEIGHBOURT)) ) THEN
 96:          DO I1=1,NGROUPS 96:          DO I1=1,NGROUPS
 97:             IF (ATOMGROUPPSELECT(I1).GE.DPRAND()) THEN 97:             IF (ATOMGROUPPSELECT(I1).GE.DPRAND()) THEN
 98: ! Group selected to be rotated - calculate rotation angle 98: ! Group selected to be rotated - calculate rotation angle
 99:                GROUPROTANGLE=(DPRAND()-0.5)*twopi*ATOMGROUPSCALING(I1) 99:                GROUPROTANGLE=(DPRAND()-0.5)*twopi*ATOMGROUPSCALING(I1)
100:                GROUPROTANGLEDEG=GROUPROTANGLE*(180/pi)100:                GROUPROTANGLEDEG=GROUPROTANGLE*(180/pi)
101: ! Print some into to GMIN_out for the user101: ! Print some into to GMIN_out for the user
102:                IF (.NOT. GROUPROT_SUPPRESS) THEN102:                WRITE(MYUNIT,*) 'GROUPROTATION> Rotating group ',TRIM(ADJUSTL(ATOMGROUPNAMES(I1))),' by ',GROUPROTANGLEDEG
103:                   WRITE(MYUNIT,*) 'GROUPROTATION> Rotating group ',TRIM(ADJUSTL(ATOMGROUPNAMES(I1))),' by ',GROUPROTANGLEDEG 
104:                END IF 
105: ! Call the rotation subroutine103: ! Call the rotation subroutine
106:                CALL GROUPROTATION(ATOMGROUPAXIS(I1,1),ATOMGROUPAXIS(I1,2),GROUPROTANGLE,ATOMGROUPS(I1,:),COORDS(:,JP))104:                CALL GROUPROTATION(ATOMGROUPAXIS(I1,1),ATOMGROUPAXIS(I1,2),GROUPROTANGLE,ATOMGROUPS(I1,:),COORDS(:,JP))
107:             ENDIF105:             ENDIF
108:          ENDDO 106:          ENDDO 
109:       ENDIF107:       ENDIF
110:       IF (CHRMMT.AND.CHNEIGHBOURT) THEN108:       IF (CHRMMT.AND.CHNEIGHBOURT) THEN
111: ! pick group and number of groups to be rotated (between 2 and 4)109: ! pick group and number of groups to be rotated (between 2 and 4)
112:           MYRANDOM=DPRAND()110:           MYRANDOM=DPRAND()
113:           RESC=1 + NINT(MYRANDOM*(NGROUPS-1))111:           RESC=1 + NINT(MYRANDOM*(NGROUPS-1))
114:           MYRANDOM=DPRAND()112:           MYRANDOM=DPRAND()
115:           RES1=RESC - NINT(2*MYRANDOM)113:           RES1=RESC - NINT(2*MYRANDOM)
116:           IF (RES1.LT.1) RES1=1114:           IF (RES1.LT.1) RES1=1
117:           MYRANDOM=DPRAND()115:           MYRANDOM=DPRAND()
118:           RES2=RESC + NINT(2*MYRANDOM)116:           RES2=RESC + NINT(2*MYRANDOM)
119:           IF (RES2.GT.NGROUPS) RES2=NGROUPS117:           IF (RES2.GT.NGROUPS) RES2=NGROUPS
120:           DO I1=RES1,RES2118:           DO I1=RES1,RES2
121:              GROUPROTANGLE=(DPRAND()-0.5)*twopi*ATOMGROUPSCALING(I1)119:              GROUPROTANGLE=(DPRAND()-0.5)*twopi*ATOMGROUPSCALING(I1)
122:              GROUPROTANGLEDEG=GROUPROTANGLE*(180/pi)120:              GROUPROTANGLEDEG=GROUPROTANGLE*(180/pi)
123: ! Print some into to GMIN_out for the user121: ! Print some into to GMIN_out for the user
124:              IF (.NOT. GROUPROT_SUPPRESS) THEN122:              WRITE(MYUNIT,*) 'GROUPROTATION> Rotating group ',TRIM(ADJUSTL(ATOMGROUPNAMES(I1))),' by ',GROUPROTANGLEDEG
125:                 WRITE(MYUNIT,*) 'GROUPROTATION> Rotating group ',TRIM(ADJUSTL(ATOMGROUPNAMES(I1))),' by ',GROUPROTANGLEDEG 
126:              END IF 
127: ! Call the rotation subroutine123: ! Call the rotation subroutine
128:              CALL GROUPROTATION(ATOMGROUPAXIS(I1,1),ATOMGROUPAXIS(I1,2),GROUPROTANGLE,ATOMGROUPS(I1,:),COORDS(:,JP))124:              CALL GROUPROTATION(ATOMGROUPAXIS(I1,1),ATOMGROUPAXIS(I1,2),GROUPROTANGLE,ATOMGROUPS(I1,:),COORDS(:,JP))
129:           ENDDO125:           ENDDO
130:       ENDIF126:       ENDIF
131: 127: 
132:       END SUBROUTINE GROUPROTSTEP128:       END SUBROUTINE GROUPROTSTEP
133: 129: 
134: ! The GROUPROTATION subroutine allows for almost any rotation of a defined set of atoms.130: ! The GROUPROTATION subroutine allows for almost any rotation of a defined set of atoms.
135: ! The rotation axis is defined by two atoms (BATOMS1 and BATOM2), the group of atoms to 131: ! The rotation axis is defined by two atoms (BATOMS1 and BATOM2), the group of atoms to 
136: ! rotate is defined by the logical array ATOMINGROUP (if element is .TRUE., that atom is132: ! rotate is defined by the logical array ATOMINGROUP (if element is .TRUE., that atom is


r29296/keywords.f 2015-11-17 23:33:41.097055904 +0000 r29295/keywords.f 2015-11-17 23:33:41.685063787 +0000
210: ! ns644>    Adding the TWIST keyword:210: ! ns644>    Adding the TWIST keyword:
211:       TWISTT=.FALSE.211:       TWISTT=.FALSE.
212:       NTWISTGROUPS=0212:       NTWISTGROUPS=0
213: 213: 
214: 214: 
215:       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),215:       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),
216:      @         JUMPMOVE(1),JUMPINT(1),JDUMP(1),COORDS(3*NATOMSALLOC,1),COORDSO(3*NATOMSALLOC,1),VAT(NATOMSALLOC,1),216:      @         JUMPMOVE(1),JUMPINT(1),JDUMP(1),COORDS(3*NATOMSALLOC,1),COORDSO(3*NATOMSALLOC,1),VAT(NATOMSALLOC,1),
217:      @         VATO(NATOMSALLOC,1),  217:      @         VATO(NATOMSALLOC,1),  
218:      @         JUMPTO(1),SHELLMOVES(1),PTGROUP(1),NSURFMOVES(1),NCORE(1))218:      @         JUMPTO(1),SHELLMOVES(1),PTGROUP(1),NSURFMOVES(1),NCORE(1))
219:       DO JP=1,1219:       DO JP=1,1
220:          EPREV(JP)=1.0D100 
221:          FIXSTEP(JP)=.FALSE.220:          FIXSTEP(JP)=.FALSE.
222:          FIXTEMP(JP)=.FALSE.221:          FIXTEMP(JP)=.FALSE.
223:          FIXBOTH(JP)=.FALSE.222:          FIXBOTH(JP)=.FALSE.
224:          TEMP(JP)=0.3D0223:          TEMP(JP)=0.3D0
225:          ACCRAT(JP)=0.5D0224:          ACCRAT(JP)=0.5D0
226:          STEP(JP)=0.3D0225:          STEP(JP)=0.3D0
227:          ASTEP(JP)=0.3D0226:          ASTEP(JP)=0.3D0
228:          OSTEP(JP)=0.3D0227:          OSTEP(JP)=0.3D0
229:          BLOCK(JP)=0228:          BLOCK(JP)=0
230:          NT(JP)=0229:          NT(JP)=0
611:       ROTOCCUW=0.004610:       ROTOCCUW=0.004
612:       ROTCENTRE=1611:       ROTCENTRE=1
613:       ROTCUTOFF=999.99612:       ROTCUTOFF=999.99
614: !613: !
615: !  csw34> atom group rotation moves614: !  csw34> atom group rotation moves
616: !615: !
617:       GROUPROTT=.FALSE.616:       GROUPROTT=.FALSE.
618:       NGROUPS=0617:       NGROUPS=0
619:       GROUPROTFREQ=1618:       GROUPROTFREQ=1
620:       GROUPOFFSET=0619:       GROUPOFFSET=0
621:       GROUPROT_SUPPRESS = .FALSE. 
622: ! logicals controlling move scaling620: ! logicals controlling move scaling
623:       GR_SCALEROT=.FALSE.621:       GR_SCALEROT=.FALSE.
624:       GR_SCALEPROB=.FALSE.622:       GR_SCALEPROB=.FALSE.
625:         623:         
626: !624: !
627: !  ab2111> dihedral group rotation moves625: !  ab2111> dihedral group rotation moves
628: !626: !
629:       DIHEDRALROTT=.FALSE.627:       DIHEDRALROTT=.FALSE.
630:       BGSMOVE=.FALSE.628:       BGSMOVE=.FALSE.
631:       NDIHEDRALGROUPS=0629:       NDIHEDRALGROUPS=0
3643:             WRITE(MYUNIT,'(A,2I5)') 'Atoms defining axis: ',ATOMGROUPAXIS(J1,1),ATOMGROUPAXIS(J1,2)3641:             WRITE(MYUNIT,'(A,2I5)') 'Atoms defining axis: ',ATOMGROUPAXIS(J1,1),ATOMGROUPAXIS(J1,2)
3644:             WRITE(MYUNIT,'(A,F5.2)') 'Rotation scaling: ',ATOMGROUPSCALING(J1)3642:             WRITE(MYUNIT,'(A,F5.2)') 'Rotation scaling: ',ATOMGROUPSCALING(J1)
3645:             WRITE(MYUNIT,'(A,F5.2)') 'Selection probablity: ',ATOMGROUPPSELECT(J1)3643:             WRITE(MYUNIT,'(A,F5.2)') 'Selection probablity: ',ATOMGROUPPSELECT(J1)
3646:             WRITE(MYUNIT,'(A)') 'Members:'3644:             WRITE(MYUNIT,'(A)') 'Members:'
3647:             DO J2=1,NATOMSALLOC3645:             DO J2=1,NATOMSALLOC
3648:                IF(ATOMGROUPS(J1,J2)) WRITE(MYUNIT,*) J23646:                IF(ATOMGROUPS(J1,J2)) WRITE(MYUNIT,*) J2
3649:             ENDDO3647:             ENDDO
3650:          ENDDO3648:          ENDDO
3651:          CLOSE(222)3649:          CLOSE(222)
3652: 3650: 
3653: ! Keyword to suppress output of group rotation moves 
3654:       ELSE IF (WORD .EQ. 'QUIETGROUPROT') THEN 
3655:          GROUPROT_SUPPRESS = .TRUE. 
3656:  
3657:  
3658: ! ab2111> Group rotation moves for dihedral angles 3651: ! ab2111> Group rotation moves for dihedral angles 
3659:       ELSE IF (WORD.EQ.'DIHEDRALROTATION') THEN3652:       ELSE IF (WORD.EQ.'DIHEDRALROTATION') THEN
3660: ! Check the group file is present3653: ! Check the group file is present
3661:          YESNO=.FALSE.3654:          YESNO=.FALSE.
3662:          INQUIRE(FILE='dihedralgroups',EXIST=YESNO)3655:          INQUIRE(FILE='dihedralgroups',EXIST=YESNO)
3663:          IF (YESNO) THEN3656:          IF (YESNO) THEN
3664:             DIHEDRALROTT=.TRUE.3657:             DIHEDRALROTT=.TRUE.
3665:             WRITE(MYUNIT,'(A)') ' keyword> AMBER dihedral group rotation moves enabled'3658:             WRITE(MYUNIT,'(A)') ' keyword> AMBER dihedral group rotation moves enabled'
3666:          ELSE3659:          ELSE
3667:             WRITE(MYUNIT,'(A)') ' keyword> ERROR: atom groups must be defined in dihedralgroups file'3660:             WRITE(MYUNIT,'(A)') ' keyword> ERROR: atom groups must be defined in dihedralgroups file'
4299:      @              JUMPTO,EPREV,COORDSO,VAT,VATO,SHELLMOVES,PTGROUP,NSURFMOVES,NCORE)4292:      @              JUMPTO,EPREV,COORDSO,VAT,VATO,SHELLMOVES,PTGROUP,NSURFMOVES,NCORE)
4300:          ALLOCATE(FIXSTEP(NPAR),FIXTEMP(NPAR),FIXBOTH(NPAR),TEMP(NPAR),ACCRAT(NPAR),STEP(NPAR),ASTEP(NPAR),OSTEP(NPAR),4293:          ALLOCATE(FIXSTEP(NPAR),FIXTEMP(NPAR),FIXBOTH(NPAR),TEMP(NPAR),ACCRAT(NPAR),STEP(NPAR),ASTEP(NPAR),OSTEP(NPAR),
4301:      @         BLOCK(NPAR),NT(NPAR),JUMPMOVE(NPAR),JUMPINT(NPAR),JDUMP(NPAR),COORDS(3*NATOMSALLOC,NPAR),NQ(NPAR),4294:      @         BLOCK(NPAR),NT(NPAR),JUMPMOVE(NPAR),JUMPINT(NPAR),JDUMP(NPAR),COORDS(3*NATOMSALLOC,NPAR),NQ(NPAR),
4302:      @         JUMPTO(NPAR),EPREV(NPAR),4295:      @         JUMPTO(NPAR),EPREV(NPAR),
4303:      @         COORDSO(3*NATOMSALLOC,NPAR),VAT(NATOMSALLOC,NPAR),VATO(NATOMSALLOC,NPAR))4296:      @         COORDSO(3*NATOMSALLOC,NPAR),VAT(NATOMSALLOC,NPAR),VATO(NATOMSALLOC,NPAR))
4304:          ALLOCATE(SHELLMOVES(NPAR))4297:          ALLOCATE(SHELLMOVES(NPAR))
4305:          ALLOCATE(PTGROUP(NPAR))4298:          ALLOCATE(PTGROUP(NPAR))
4306:          ALLOCATE(NSURFMOVES(NPAR))4299:          ALLOCATE(NSURFMOVES(NPAR))
4307:          ALLOCATE(NCORE(NPAR))4300:          ALLOCATE(NCORE(NPAR))
4308:          DO JP=1,NPAR4301:          DO JP=1,NPAR
4309:             EPREV(JP)=1.0D100 
4310:             FIXSTEP(JP)=.FALSE.4302:             FIXSTEP(JP)=.FALSE.
4311:             FIXTEMP(JP)=.FALSE.4303:             FIXTEMP(JP)=.FALSE.
4312:             FIXBOTH(JP)=.FALSE.4304:             FIXBOTH(JP)=.FALSE.
4313:             TEMP(JP)=0.3D04305:             TEMP(JP)=0.3D0
4314:             ACCRAT(JP)=0.5D04306:             ACCRAT(JP)=0.5D0
4315:             STEP(JP)=0.3D04307:             STEP(JP)=0.3D0
4316:             ASTEP(JP)=0.3D04308:             ASTEP(JP)=0.3D0
4317:             OSTEP(JP)=0.3D04309:             OSTEP(JP)=0.3D0
4318:             BLOCK(JP)=04310:             BLOCK(JP)=0
4319:             NT(JP)=04311:             NT(JP)=0


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0