hdiff output

r22940/amberinterface.f 2017-03-30 13:30:21.932405077 +0100 r22939/amberinterface.f 2017-03-30 13:30:24.740442397 +0100
1078:    END IF 1078:    END IF 
1079: !ATOM      3 C1   ROH A   1    -135.903 245.156 -37.918  1.00   1.00 C 1079: !ATOM      3 C1   ROH A   1    -135.903 245.156 -37.918  1.00   1.00 C 
1080:         WRITE(20,'(A6,I5,1X,A4,A1,A3,1X,A1,I4,A1,3X,3F8.3,F6.2,1X,F6.2,1X,A1)') 'ATOM  ',i1, &1080:         WRITE(20,'(A6,I5,1X,A4,A1,A3,1X,A1,I4,A1,3X,3F8.3,F6.2,1X,F6.2,1X,A1)') 'ATOM  ',i1, &
1081: &       ih(m04+I1-1),' ', ih(CURRENTRESIDUE+m02-1), 'A', CURRENTRESIDUE, ' ', &1081: &       ih(m04+I1-1),' ', ih(CURRENTRESIDUE+m02-1), 'A', CURRENTRESIDUE, ' ', &
1082: &       DUMPCOORDS(3*I1-2),DUMPCOORDS(3*I1-1),DUMPCOORDS(3*I1), 1.0, 1.0, ih(m04+I1-1)1082: &       DUMPCOORDS(3*I1-2),DUMPCOORDS(3*I1-1),DUMPCOORDS(3*I1), 1.0, 1.0, ih(m04+I1-1)
1083: ! check if we're at a terminus - if so, add TER to the PDB file1083: ! check if we're at a terminus - if so, add TER to the PDB file
1084:    IF(TRIM(ADJUSTL(ih(m04+I1-1)))=='OXT') THEN1084:    IF(TRIM(ADJUSTL(ih(m04+I1-1)))=='OXT') THEN
1085:         write(20,'(A3)') 'TER'1085:         write(20,'(A3)') 'TER'
1086:    END IF1086:    END IF
1087: END DO1087: END DO
1088: ! add END statement to help seperate frames if cating files 
1089: write(20,'(A3)') 'END' 
1090: CLOSE(20)1088: CLOSE(20)
1091: END SUBROUTINE A9DUMPPDB1089: END SUBROUTINE A9DUMPPDB
1092: 1090: 
1093: SUBROUTINE AMBERFINALIO(nsave,nunit,node,ostring,filth,coords2)1091: SUBROUTINE AMBERFINALIO(nsave,nunit,node,ostring,filth,coords2)
1094: ! writes final geometries into AMBER rst and pdb files1092: ! writes final geometries into AMBER rst and pdb files
1095: 1093: 
1096: use modamber91094: use modamber9
1097: 1095: 
1098: implicit none1096: implicit none
1099: 1097: 


r22940/commons.f90 2017-03-30 13:30:22.900417939 +0100 r22939/commons.f90 2017-03-30 13:30:25.540453032 +0100
126: ! GROUP ROTATION MOVE PARAMETERS126: ! GROUP ROTATION MOVE PARAMETERS
127:       INTEGER :: GROUPROTFREQ, NGROUPS127:       INTEGER :: GROUPROTFREQ, NGROUPS
128:       LOGICAL :: GROUPROTT, DOGROUPROT=.FALSE.128:       LOGICAL :: GROUPROTT, DOGROUPROT=.FALSE.
129:       CHARACTER(LEN=10), ALLOCATABLE :: ATOMGROUPNAMES(:)129:       CHARACTER(LEN=10), ALLOCATABLE :: ATOMGROUPNAMES(:)
130:       INTEGER, ALLOCATABLE :: ATOMGROUPAXIS(:,:)130:       INTEGER, ALLOCATABLE :: ATOMGROUPAXIS(:,:)
131:       DOUBLE PRECISION, ALLOCATABLE :: ATOMGROUPSCALING(:),ATOMGROUPPSELECT(:)131:       DOUBLE PRECISION, ALLOCATABLE :: ATOMGROUPSCALING(:),ATOMGROUPPSELECT(:)
132:       LOGICAL, ALLOCATABLE :: ATOMGROUPS(:,:)132:       LOGICAL, ALLOCATABLE :: ATOMGROUPS(:,:)
133:       133:       
134: ! END OF GROUP ROTATION MOVE PARAMETERS134: ! END OF GROUP ROTATION MOVE PARAMETERS
135: 135: 
136: ! csw34> HBONDMATRIX VARIABLES 
137:       LOGICAL :: HBONDMATRIX, HBONDMATCH, HBONDACCEPT 
138:       CHARACTER(LEN=80) :: HBONDDONORSACCEPTORS, HBONDRESIDUES, NHBONDGROUPSCHAR, HBONDGROUPNAME 
139:       CHARACTER(LEN=6) :: HBONDTYPE 
140:       INTEGER :: NHBONDGROUPS 
141:       INTEGER, ALLOCATABLE :: HBONDGROUPS(:,:,:), HBONDMAT(:,:), HBONDGROUPPOP(:),HBONDGROUPIDS(:) 
142:       DOUBLE PRECISION :: HBONDESAVE, HBONDQUZEROE 
143:       DOUBLE PRECISION, ALLOCATABLE :: HBONDBESTCOORDS(:,:) 
144:       DOUBLE PRECISION, ALLOCATABLE :: HBONDMARKOV(:), HBONDBEST(:),HBONDQUE(:) 
145:       DOUBLE PRECISION, ALLOCATABLE :: HBONDMAXE(:) 
146:       INTEGER :: HBONDNRES, HBONDMATCHN, MAXHBONDGROUPS 
147: ! END OF HBONDMATRIX VARIABLES 
148:  
149:       INTEGER  NGBSITE, NPYSITE, PYBINARYTYPE1, PYSWAP(3), MAXINTERACTIONS136:       INTEGER  NGBSITE, NPYSITE, PYBINARYTYPE1, PYSWAP(3), MAXINTERACTIONS
150:    137:    
151:       DOUBLE PRECISION :: DZP1, DZP2, DZP3, DZP4, DZP5, DZP6, DZP7138:       DOUBLE PRECISION :: DZP1, DZP2, DZP3, DZP4, DZP5, DZP6, DZP7
152:       LOGICAL :: FIELDT, OHT, IHT, TDT, D5HT139:       LOGICAL :: FIELDT, OHT, IHT, TDT, D5HT
153:       DOUBLE PRECISION :: FOH, FIH, FTD, FD5H140:       DOUBLE PRECISION :: FOH, FIH, FTD, FD5H
154: 141: 
155:       CHARACTER(LEN=80) :: SYS142:       CHARACTER(LEN=80) :: SYS
156:       CHARACTER(LEN=80) :: INFILE=''143:       CHARACTER(LEN=80) :: INFILE=''
157:       CHARACTER(LEN=1), ALLOCATABLE :: BEADLETTER(:), BLNSSTRUCT(:)144:       CHARACTER(LEN=1), ALLOCATABLE :: BEADLETTER(:), BLNSSTRUCT(:)
158:       CHARACTER(LEN=130) DUMPFILE, MYFILENAME, INTEDUMPFILE145:       CHARACTER(LEN=130) DUMPFILE, MYFILENAME, INTEDUMPFILE


r22940/finalio.f90 2017-03-30 13:30:23.276422944 +0100 r22939/finalio.f90 2017-03-30 13:30:25.804456543 +0100
  1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/GMIN/source/finalio.f90' in revision 22940  1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/GMIN/source/finalio.f90' in revision 22939


r22940/GMIN.tex 2017-03-30 13:30:22.308410232 +0100 r22939/GMIN.tex 2017-03-30 13:30:25.024446172 +0100
794: % {\it targetwl} is the requested number of WL iterations, which serves as a794: % {\it targetwl} is the requested number of WL iterations, which serves as a
795: % convergence criterion for the Wang-Landau sampling. 795: % convergence criterion for the Wang-Landau sampling. 
796: % {\it hpercent} is the histogram flatness criterion, the value by which visits to a given bin are allowed to deviate from the mean796: % {\it hpercent} is the histogram flatness criterion, the value by which visits to a given bin are allowed to deviate from the mean
797: % while the histogram is still considered flat.797: % while the histogram is still considered flat.
798: 798: 
799: % \item{\it HISTRESTART}: if present, basin-sampling run reads in the 799: % \item{\it HISTRESTART}: if present, basin-sampling run reads in the 
800: % {\tt lnWeight.his, Distance.his, MinDistance.his,800: % {\tt lnWeight.his, Distance.his, MinDistance.his,
801: % VisitsTotal.his} statistics and restarts from a WL iteration specified in 801: % VisitsTotal.his} statistics and restarts from a WL iteration specified in 
802: % {\tt nWL.restart} and {\tt lnModfac.restart}.802: % {\tt nWL.restart} and {\tt lnModfac.restart}.
803: 803: 
804: \item{\it HBONDMATRIX donoracceptorfile residuefile mode\/}: used with the {\it AMBER} keyword to focus GMIN sampling on  
805: the diversity of ligand binding-modes in a protein/ligand system. {\it donoracceptorfile} should contain the AMBER ptraj 
806: definitions of the hydrogen-bond donor and acceptor atoms for your system as described in the AMBER Tools manual (see Google). 
807: {\it residuefile} should contain the list of residue numbers (one per line) that are involved in binding. When you have no  
808: specific information, this can just mean those in close proximity to the binding site. {\it mode} is an optional arguement, which 
809: defaults to ACCEPT. If REJECT is used instead, {\it HBONDMATRIX} will instead restrict sampling to the binding mode identified after 
810: the initial quench. This can be used to optimise a single binding mode. 
811:  
812: \item{\it INTMIN}: used with {\it CHARMM} keyword to specify minimisation in internal 804: \item{\it INTMIN}: used with {\it CHARMM} keyword to specify minimisation in internal 
813: coordinates. This generally appears to be805: coordinates. This generally appears to be
814: slower than using Cartesian coordinates.806: slower than using Cartesian coordinates.
815: 807: 
816: \item{\it JC}: Specifies Murrell's two- plus three-body808: \item{\it JC}: Specifies Murrell's two- plus three-body
817: potential.\cite{murrellm90,murrellr90,alderzijmr91,eggenjlm92,fengjm93}809: potential.\cite{murrellm90,murrellr90,alderzijmr91,eggenjlm92,fengjm93}
818: A file {\tt JMparams} must810: A file {\tt JMparams} must
819: exist in the current directory containing the parameters $c_0,\ c_1,\ldots,\ c_{10},\ r_e,\811: exist in the current directory containing the parameters $c_0,\ c_1,\ldots,\ c_{10},\ r_e,\
820: D,\ a_2$ and $a_3$. An optional cutoff parameter can also be provided at the end of the812: D,\ a_2$ and $a_3$. An optional cutoff parameter can also be provided at the end of the
821: {\tt JMparams} file.813: {\tt JMparams} file.


r22940/hbondmatrix.f90 2017-03-30 13:30:23.592427140 +0100 r22939/hbondmatrix.f90 2017-03-30 13:30:26.072460102 +0100
  1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/GMIN/source/hbondmatrix.f90' in revision 22940  1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/GMIN/source/hbondmatrix.f90' in revision 22939


r22940/initialization.f90 2017-03-30 13:30:23.884431021 +0100 r22939/initialization.f90 2017-03-30 13:30:26.356463876 +0100
 63: ENDIF 63: ENDIF
 64:  64: 
 65: ! js850> initialize overlap 65: ! js850> initialize overlap
 66: IF (OVERLAPK) THEN 66: IF (OVERLAPK) THEN
 67:    CALL OVERLAP_SETUP( COORDS(1:3*NATOMS,1), OVERLAP_DR) 67:    CALL OVERLAP_SETUP( COORDS(1:3*NATOMS,1), OVERLAP_DR)
 68:    !sanity check 68:    !sanity check
 69:    !CALL OVERLAP_get_overlap( COORDS(1:3*NATOMS,1), dummy) 69:    !CALL OVERLAP_get_overlap( COORDS(1:3*NATOMS,1), dummy)
 70:    !write(*,*) "initial overlap", dummy 70:    !write(*,*) "initial overlap", dummy
 71: ENDIF 71: ENDIF
 72:  72: 
 73: ! csw34> initialize hydrogen-bond grouping 
 74: ! Maximum of 1000 groups by default in keyword.f 
 75: IF (HBONDMATRIX) THEN 
 76:    ALLOCATE(HBONDGROUPS(MAXHBONDGROUPS,HBONDNRES,HBONDNRES)) 
 77:    ALLOCATE(HBONDMAT(HBONDNRES,HBONDNRES)) 
 78:    ALLOCATE(HBONDGROUPPOP(MAXHBONDGROUPS)) 
 79:    ALLOCATE(HBONDBEST(MAXHBONDGROUPS)) 
 80:    ALLOCATE(HBONDMARKOV(MAXHBONDGROUPS)) 
 81:    ALLOCATE(HBONDMAXE(MAXHBONDGROUPS)) 
 82:    ALLOCATE(HBONDQUE(MCSTEPS(1))) 
 83:    ALLOCATE(HBONDGROUPIDS(MCSTEPS(1))) 
 84:    ALLOCATE(HBONDBESTCOORDS(MAXHBONDGROUPS,3*NATOMS)) 
 85:    HBONDGROUPIDS(:)=0 
 86:    HBONDGROUPPOP(:)=0 
 87:    HBONDGROUPS(:,:,:)=0 
 88:    HBONDMAT(:,:)=0 
 89:    HBONDMARKOV(:)=HUGE(1.0D0) 
 90:    HBONDBEST(:)=HUGE(1.0D0) 
 91:    HBONDQUE(:)=HUGE(1.0D0) 
 92:    HBONDBESTCOORDS(:,:)=0.0D0 
 93:    HBONDMAXE(:)=-HUGE(1.0D0) 
 94:    HBONDESAVE=HUGE(1.0D0) 
 95:    HBONDQUZEROE=HUGE(1.0D0) 
 96: ENDIF 
 97:  
 98: END SUBROUTINE INITIALIZATIONS 73: END SUBROUTINE INITIALIZATIONS


r22940/Makefile 2017-03-30 13:30:22.604413997 +0100 r22939/Makefile 2017-03-30 13:30:25.268449414 +0100
 55:         dgetrf.o dgetri.o reorient.o thomson.o Q4.o basinsampling.o tether.o tetherfunc.o BLN.o \ 55:         dgetrf.o dgetri.o reorient.o thomson.o Q4.o basinsampling.o tether.o tetherfunc.o BLN.o \
 56:         gauss.o newmindist.o centrecom.o qorderparam_blj.o qorderparam_lj.o bspt.o GMINdump.o quad.o \ 56:         gauss.o newmindist.o centrecom.o qorderparam_blj.o qorderparam_lj.o bspt.o GMINdump.o quad.o \
 57:         rigidbaa.o checkd.o dbpg.o dbptd.o dmblmorse.o gbcalamitic.o gbdiscotic.o gem.o gbddp.o linrod.o \ 57:         rigidbaa.o checkd.o dbpg.o dbptd.o dmblmorse.o gbcalamitic.o gbdiscotic.o gem.o gbddp.o linrod.o \
 58:         lwotp.o        newcapsid.o newpah.o msgayberne.o mstbin.o multisitepy.o multstock.o paha.o pahw99.o pap.o pyg.o silane.o \ 58:         lwotp.o        newcapsid.o newpah.o msgayberne.o mstbin.o multisitepy.o multstock.o paha.o pahw99.o pap.o pyg.o silane.o \
 59:         multpaha.o newtip.o patchy.o asaoos.o pygdp.o stockaa.o tetrahedra.o waterpdc.o waterpkz.o takestepmsgb.o takestepmspy.o \ 59:         multpaha.o newtip.o patchy.o asaoos.o pygdp.o stockaa.o tetrahedra.o waterpdc.o waterpkz.o takestepmsgb.o takestepmspy.o \
 60:         gay-berne.o JM.o projI.o projIh.o model1.o FS.o vgw.o \ 60:         gay-berne.o JM.o projI.o projIh.o model1.o FS.o vgw.o \
 61:         mysd.o qdtest.o qdtest2.o MB.o dlsode.o dummyoptim.o Ackland_metals.o Ackland_wrapper.o DF1.o CSMinit.o \ 61:         mysd.o qdtest.o qdtest2.o MB.o dlsode.o dummyoptim.o Ackland_metals.o Ackland_wrapper.o DF1.o CSMinit.o \
 62:         read_cmd_args.o display_version.o file_manager.o output.o chaperonin.o bulkmindist.o perc.o \ 62:         read_cmd_args.o display_version.o file_manager.o output.o chaperonin.o bulkmindist.o perc.o \
 63:         ga_modules.o ga_main.o ga_select.o ga_bln.o ga_cluster.o dummy_dmacrys.o dummy_userpot.o vec3.o \ 63:         ga_modules.o ga_main.o ga_select.o ga_bln.o ga_cluster.o dummy_dmacrys.o dummy_userpot.o vec3.o \
 64:         dummy_testing.o harmonic.o utils.o minpermdistrbcom.o rbperm.o msaveit.o soft_sphere.o bhpt.o \ 64:         dummy_testing.o harmonic.o utils.o minpermdistrbcom.o rbperm.o msaveit.o soft_sphere.o bhpt.o \
 65:         initialization.o chiro.o sandbox.o hbondmatrix.o 65:         initialization.o chiro.o sandbox.o
 66:  66: 
 67: OBJS = ${OBJS1} ${OBJS2} 67: OBJS = ${OBJS1} ${OBJS2}
 68: GENF90FILES = porfuncs.f90 68: GENF90FILES = porfuncs.f90
 69: CHDUM = chdummy.o 69: CHDUM = chdummy.o
 70: AMHDUM = amhdummy.o 70: AMHDUM = amhdummy.o
 71: AMB9DUM = amber9dummy.o 71: AMB9DUM = amber9dummy.o
 72: VPATH = .:CHARMM:AMH:. 72: VPATH = .:CHARMM:AMH:.
 73: LDFLAGS = -L. 73: LDFLAGS = -L.
 74: DEFS = 74: DEFS =
 75: # CPP = /usr/bin/cpp 75: # CPP = /usr/bin/cpp
535: tosifumi.o:    commons.o535: tosifumi.o:    commons.o
536: welch.o:       commons.o536: welch.o:       commons.o
537: waterpdc.o:    commons.o537: waterpdc.o:    commons.o
538: waterpkz.o:    commons.o538: waterpkz.o:    commons.o
539: zwischen.o:    commons.o modf1com.o 539: zwischen.o:    commons.o modf1com.o 
540: stock.o:       commons.o540: stock.o:       commons.o
541: sticky.o:      commons.o541: sticky.o:      commons.o
542: tether.o:      tetherfunc.o542: tether.o:      tetherfunc.o
543: mycpu_time.o:  commons.o543: mycpu_time.o:  commons.o
544: gauss.o:       commons.o544: gauss.o:       commons.o
545: mc.o:          qmod.o modcharmm.o porfuncs.o mc.f mc.F AMH/amhglobals.o AMH/amh_interfaces.o AMH/E_write.o commons.o operations.o utils.o rotations.o vec3.o bhpt.o hbondmatrix.o545: mc.o:          qmod.o modcharmm.o porfuncs.o mc.f mc.F AMH/amhglobals.o AMH/amh_interfaces.o AMH/E_write.o commons.o operations.o utils.o rotations.o vec3.o bhpt.o
546: mc.f: mc.F546: mc.f: mc.F
547: ptmc.f: ptmc.F547: ptmc.f: ptmc.F
548: ptmc.o:          qmod.o modcharmm.o porfuncs.o tetherfunc.o ptmc.f ptmc.F548: ptmc.o:          qmod.o modcharmm.o porfuncs.o tetherfunc.o ptmc.f ptmc.F
549: bspt.f: bspt.F549: bspt.f: bspt.F
550: bspt.o:          qmod.o modcharmm.o porfuncs.o tetherfunc.o bspt.f bspt.F utils.o overlap.o550: bspt.o:          qmod.o modcharmm.o porfuncs.o tetherfunc.o bspt.f bspt.F utils.o overlap.o
551: GMINdump.o: commons.o qmod.o porfuncs.o output.o551: GMINdump.o: commons.o qmod.o porfuncs.o output.o
552: output.o: commons.o file_manager.o552: output.o: commons.o file_manager.o
553: quad.o:        commons.o553: quad.o:        commons.o
554: enumerate.o:  commons.o554: enumerate.o:  commons.o
555: convert.o:  porfuncs.o555: convert.o:  porfuncs.o
559: MB.o: commons.o 559: MB.o: commons.o 
560: sort2.o: qmod.o commons.o560: sort2.o: qmod.o commons.o
561: model1.o: commons.o561: model1.o: commons.o
562: FS.o: commons.o562: FS.o: commons.o
563: Ackland_wrapper.o: commons.o563: Ackland_wrapper.o: commons.o
564: Ackland_metals.o:      ackland_sma.h ackland_mishin_cu.h ackland_mendelev_fe.h commons.o564: Ackland_metals.o:      ackland_sma.h ackland_mishin_cu.h ackland_mendelev_fe.h commons.o
565: DF1.o: commons.o565: DF1.o: commons.o
566: CSMinit.o: commons.o566: CSMinit.o: commons.o
567: minpermdist.o: commons.o porfuncs.o rbperm.o567: minpermdist.o: commons.o porfuncs.o rbperm.o
568: grouprotation.o: commons.o568: grouprotation.o: commons.o
569: hbondmatrix.o : porfuncs.o commons.o 
570: dampedmove.o: commons.o569: dampedmove.o: commons.o
571: multisitepy.o: gay-berne.o570: multisitepy.o: gay-berne.o
572: finalio.o: gay-berne.o sandbox.o hbondmatrix.o571: finalio.o: gay-berne.o sandbox.o
573: chaperonin.o: commons.o572: chaperonin.o: commons.o
574: bulkmindist.o: commons.o573: bulkmindist.o: commons.o
575: read_cmd_args.o: porfuncs.o display_version.o read_cmd_args.f90 commons.o574: read_cmd_args.o: porfuncs.o display_version.o read_cmd_args.f90 commons.o
576: ga_main.o: ga_modules.o commons.o575: ga_main.o: ga_modules.o commons.o
577: ga_select: ga_modules.o commons.o576: ga_select: ga_modules.o commons.o
578: ga_bln.o: ga_modules.o commons.o577: ga_bln.o: ga_modules.o commons.o
579: ga_cluster.o: ga_modules.o commons.o578: ga_cluster.o: ga_modules.o commons.o
580: tryexchange.f90: tryexchange.F90579: tryexchange.f90: tryexchange.F90
581: tryexchange.o: commons.o tryexchange.f90 tryexchange.F90580: tryexchange.o: commons.o tryexchange.f90 tryexchange.F90
582: minpermdistrbcom.o: commons.o581: minpermdistrbcom.o: commons.o


r22940/mc.F 2017-03-30 13:30:24.440438410 +0100 r22939/mc.F 2017-03-30 13:30:27.204475145 +0100
 67:       LOGICAL EVAP, ATEST, STAY, evapreject, LOPEN 67:       LOGICAL EVAP, ATEST, STAY, evapreject, LOPEN
 68:       COMMON /EV/ EVAP, evapreject 68:       COMMON /EV/ EVAP, evapreject
 69:       COMMON /MYPOT/ POTEL 69:       COMMON /MYPOT/ POTEL
 70:       COMMON /TOT/ NQTOT 70:       COMMON /TOT/ NQTOT
 71:       COMMON /PCALL/ NPCALL 71:       COMMON /PCALL/ NPCALL
 72:       COMMON /Q4C/ QSTART, QFINISH 72:       COMMON /Q4C/ QSTART, QFINISH
 73:  73: 
 74:       character(len=10)       :: datechar,timechar,zonechar 74:       character(len=10)       :: datechar,timechar,zonechar
 75:       integer                 :: values(8),itime1 75:       integer                 :: values(8),itime1
 76:       double precision :: DISTGROUPX2,DISTGROUPY2,DISTGROUPZ2,DISTGROUPCENTRE,TESTANGLE 76:       double precision :: DISTGROUPX2,DISTGROUPY2,DISTGROUPZ2,DISTGROUPCENTRE,TESTANGLE
 77:       integer :: J6, L, M, SUMSQUAREDIFF 77:       integer :: J6
 78:       INTEGER GETUNIT 78:       INTEGER GETUNIT
 79:       INTEGER DUMPUNIQUEUNIT 79:       INTEGER DUMPUNIQUEUNIT
 80:       IF (FREEZEGROUPT) THEN 80:       IF (FREEZEGROUPT) THEN
 81:          OPEN(UNIT=4431,FILE='frozen.dat',STATUS='UNKNOWN',FORM='FORMATTED') 81:          OPEN(UNIT=4431,FILE='frozen.dat',STATUS='UNKNOWN',FORM='FORMATTED')
 82:          DO J6=1,NATOMS 82:          DO J6=1,NATOMS
 83: ! 83: !
 84: ! Work out the distance from GROUPCENTRE to the current atom J1 84: ! Work out the distance from GROUPCENTRE to the current atom J1
 85: !  85: ! 
 86:             DISTGROUPX2=(COORDS(3*GROUPCENTRE-2,1)-COORDS(3*J6-2,1))**2 86:             DISTGROUPX2=(COORDS(3*GROUPCENTRE-2,1)-COORDS(3*J6-2,1))**2
 87:             DISTGROUPY2=(COORDS(3*GROUPCENTRE-1,1)-COORDS(3*J6-1,1))**2 87:             DISTGROUPY2=(COORDS(3*GROUPCENTRE-1,1)-COORDS(3*J6-1,1))**2
436:          ENDIF436:          ENDIF
437:          DISTOK=.FALSE.437:          DISTOK=.FALSE.
438:          CALL A9DISTCHECK(COORDS(:,JP),DISTOK)438:          CALL A9DISTCHECK(COORDS(:,JP),DISTOK)
439:          IF (.NOT.DISTOK) THEN439:          IF (.NOT.DISTOK) THEN
440:             WRITE(MYUNIT,*) 'initial structure violates LOCALSAMPLE conditions - exiting!'440:             WRITE(MYUNIT,*) 'initial structure violates LOCALSAMPLE conditions - exiting!'
441:             STOP441:             STOP
442:          ENDIF442:          ENDIF
443:          DISTOK=.FALSE.443:          DISTOK=.FALSE.
444:       ENDIF   444:       ENDIF   
445:       NSUPERCOUNT=NSUPER445:       NSUPERCOUNT=NSUPER
446: ! HBONDMATRIX 
447: ! csw34> Use the initial quenched structure to set up the first hydrogen-bond group if using HBONDMATRIX 
448:       IF (AMBERT.AND.HBONDMATRIX) THEN 
449: ! Dump the coordinates in .rst format to hbond.rst 
450:          CALL DUMPRST(COORDS(:,1),NATOMS,'hbond') 
451: ! Calculate hydrogen-bond matrix 
452:          CALL GETHBONDMATRIX('coords.prmtop','hbond.rst',TRIM(ADJUSTL(HBONDDONORSACCEPTORS)),  
453:      &                                   TRIM(ADJUSTL(HBONDRESIDUES)),HBONDMAT) 
454: ! Set the number of groups to 1 
455:          NHBONDGROUPS=1 
456: ! Save the group matrix 
457:          HBONDGROUPS(1,:,:)=HBONDMAT 
458: ! Initialize the population of the group to 1 
459:          HBONDGROUPPOP(1)=1 
460: ! Save the initial energy for final output 
461:          HBONDQUZEROE=POTEL 
462: ! Set the group max energy 
463:          HBONDMAXE(1)=POTEL 
464: ! Set the group best and markov energy and save the coordinates 
465:          HBONDBEST(1)=POTEL 
466:          HBONDBESTCOORDS(1,:)=COORDS(:,1) 
467:          HBONDMARKOV(1)=POTEL 
468: ! Write out the matrix for reference 
469:          CALL WRITEHBONDMATRIX(HBONDMAT(:,:),HBONDNRES,'group1') 
470: ! Print some output 
471:          WRITE(MYUNIT,'(A)') " HBONDMATRIX> Group 1 created using initial quench structure" 
472:        ENDIF 
473: ! END OF HBONDMATRIX 
474:  
475: ! csw34> Dump the initial quench structure to .rst and .pdb files if DUMPQU is specified 
476:        IF(AMBERT.AND.DUMPQUT) THEN 
477:           CALL DUMPRST(COORDS(:,1),NATOMS,'initialmin')  
478:           CALL A9DUMPPDB(COORDS(:,1),'initialmin')  
479:        ENDIF 
480: 446: 
481: ! jdf43>447: ! jdf43>
482:       IF (TBP) THEN448:       IF (TBP) THEN
483:          WRITE(MYUNIT,'(A,I0.2,A)')"[",JP,"]TBP>Initialising basins..."449:          WRITE(MYUNIT,'(A,I0.2,A)')"[",JP,"]TBP>Initialising basins..."
484:          TBPBASINS(TBPSTEPS) = 0450:          TBPBASINS(TBPSTEPS) = 0
485:       ENDIF451:       ENDIF
486: 452: 
487: !  Main basin-hopping loop 453: !  Main basin-hopping loop 
488:       DO J1=NDONE+1,NSTEPS 454:       DO J1=NDONE+1,NSTEPS 
489:          ISTEP = J1455:          ISTEP = J1
1201:                    PERCACCEPTED=.TRUE.1167:                    PERCACCEPTED=.TRUE.
1202:                    WRITE(MYUNIT,*) 'perc> Found first connected configuration'1168:                    WRITE(MYUNIT,*) 'perc> Found first connected configuration'
1203:                  ENDIF1169:                  ENDIF
1204:                ENDIF1170:                ENDIF
1205: 1171: 
1206: !     csw34> If the chirality or peptide bond checks in quench.f have1172: !     csw34> If the chirality or peptide bond checks in quench.f have
1207: !            failed, GOODSTRUCTURE should be .FALSE. and we should set ATEST to1173: !            failed, GOODSTRUCTURE should be .FALSE. and we should set ATEST to
1208: !            .FALSE. to prevent these bad structures entering the markov chain!1174: !            .FALSE. to prevent these bad structures entering the markov chain!
1209:                IF (.NOT.GOODSTRUCTURE) ATEST=.FALSE.1175:                IF (.NOT.GOODSTRUCTURE) ATEST=.FALSE.
1210: 1176: 
 1177: !     csw34> Dumping every quench in AMBER9 format - only dumps if no chiral problems found 
1211: !     Only for AMBER! DJW Otherwise we get the cis-trans message for every other potential!1178: !     Only for AMBER! DJW Otherwise we get the cis-trans message for every other potential!
1212:                IF (AMBERT) THEN1179:                IF (AMBERT) THEN
1213: ! HBONDMATRIX 
1214:                   IF (HBONDMATRIX) THEN 
1215: ! Save the quench energy for later analysis 
1216:                      HBONDQUE(NQ(JP))=POTEL 
1217: ! Dump the coordinates in .rst format to hbond.rst 
1218:                      CALL DUMPRST(COORDS(:,JP),NATOMS,'hbond') 
1219: ! Calculate hydrogen-bond matrix 
1220:                      CALL GETHBONDMATRIX('coords.prmtop','hbond.rst',TRIM(ADJUSTL(HBONDDONORSACCEPTORS)),  
1221:      &                                   TRIM(ADJUSTL(HBONDRESIDUES)),HBONDMAT) 
1222: ! Check to see if this structure is part of an existing group  
1223:                      HBONDMATCH=.FALSE. 
1224:                      HBONDMATCHN=0 
1225:                      DO L=1,NHBONDGROUPS 
1226:                         IF(SUMSQUAREDIFF(HBONDMAT,HBONDGROUPS(L,:,:),HBONDNRES).EQ.0) THEN 
1227: ! If SUMSQUAREDIFF returns 0, the matricies are identical  
1228:                            HBONDMATCH=.TRUE. 
1229:                            HBONDMATCHN=L 
1230:                            WRITE(MYUNIT,'(A,I4)') " HBONDMATRIX> Structure matches group ",HBONDMATCHN 
1231: ! Increment the group population 
1232:                            HBONDGROUPPOP(HBONDMATCHN)=HBONDGROUPPOP(HBONDMATCHN)+1 
1233:                            HBONDGROUPIDS(NQ(JP))=HBONDMATCHN 
1234:                            WRITE(MYUNIT,'(A,I4,A,I5)') " HBONDMATRIX> Group ",HBONDMATCHN, 
1235:      &                                                 " now has population ",HBONDGROUPPOP(HBONDMATCHN) 
1236:                            EXIT 
1237:                         ENDIF 
1238:                      ENDDO 
1239: ! If no match was found, create a new group 
1240:                      IF(.NOT.HBONDMATCH) THEN 
1241:                         NHBONDGROUPS=NHBONDGROUPS+1 
1242: ! Save the group matrix 
1243:                         HBONDGROUPS(NHBONDGROUPS,:,:)=HBONDMAT 
1244: ! Initialize the population of the group to 1 
1245:                         HBONDGROUPPOP(NHBONDGROUPS)=1 
1246: ! Add the initial structure to the group 
1247:                         HBONDGROUPIDS(NQ(JP))=NHBONDGROUPS 
1248: ! Set the group max energy 
1249:                         HBONDMAXE(NHBONDGROUPS)=POTEL 
1250: ! Set the group best and markov energy 
1251:                         HBONDBEST(NHBONDGROUPS)=POTEL 
1252:                         HBONDMARKOV(NHBONDGROUPS)=POTEL 
1253: ! Print some output 
1254:                         WRITE(MYUNIT,'(A,I4)') " HBONDMATRIX> New group found, creating group ",NHBONDGROUPS 
1255: ! Write out the matrix for reference 
1256:                         WRITE(NHBONDGROUPSCHAR,*) NHBONDGROUPS 
1257:                         HBONDGROUPNAME='group'//TRIM(ADJUSTL(NHBONDGROUPSCHAR)) 
1258:                         CALL WRITEHBONDMATRIX(HBONDMAT(:,:),HBONDNRES,HBONDGROUPNAME) 
1259:                      ENDIF 
1260:                   ENDIF 
1261: ! END OF HBONDMATRIX 
1262: !     csw34> Calculate interaction energy to residue specified in the AMBGMINintE.sh script1180: !     csw34> Calculate interaction energy to residue specified in the AMBGMINintE.sh script
1263:                   IF (A9INTET.AND.ATEST) THEN1181:                   IF (A9INTET.AND.ATEST) THEN
1264:                      CALL A9INTE(COORDS(:,JP),INTE)1182:                      CALL A9INTE(COORDS(:,JP),INTE)
1265:                      CALL A9INTESAVEIT(INTE,COORDS(:,JP),JP)1183:                      CALL A9INTESAVEIT(INTE,COORDS(:,JP),JP)
1266:                      CALL A9INTEDUMPLOWEST()1184:                      CALL A9INTEDUMPLOWEST()
1267:                      IF (DEBUG) WRITE(MYUNIT,*) 'intE=',INTE1185:                      IF (DEBUG) WRITE(MYUNIT,*) 'intE=',INTE
1268:                      IF (TRACKDATAT) THEN1186:                      IF (TRACKDATAT) THEN
1269:                         WRITE(3998,'(I10,G20.10)') NQ(JP),INTE1187:                         WRITE(3998,'(I10,G20.10)') NQ(JP),INTE
1270:                         CALL FLUSH(3998)1188:                         CALL FLUSH(3998)
1271:                      ENDIF1189:                      ENDIF
1272:                   ENDIF1190:                   ENDIF
1273: !     csw34> Dumping every quench in AMBER9 format - only dumps if no chiral problems found  
1274: !     csw34> Dump the quench coordinates in AMBER pdb and rst format if DUMPQ is present and chirality checks satisfied1191: !     csw34> Dump the quench coordinates in AMBER pdb and rst format if DUMPQ is present and chirality checks satisfied
1275:                   IF (DUMPQUT.AND.ATEST) THEN1192:                   IF (DUMPQUT.AND.ATEST) THEN
1276:                       WRITE(QUENCHNUM,*) NQ(JP)1193:                       WRITE(QUENCHNUM,*) NQ(JP)
1277:                       QUNAME='quench'//TRIM(ADJUSTL(QUENCHNUM))//'.rst'1194:                       QUNAME='quench'//TRIM(ADJUSTL(QUENCHNUM))//'.rst'
1278:                       OPEN(UNIT=20,FILE=QUNAME,STATUS='UNKNOWN')  1195:                       OPEN(UNIT=20,FILE=QUNAME,STATUS='UNKNOWN')  
1279:                       WRITE(20,'(a20)') QUNAME1196:                       WRITE(20,'(a20)') QUNAME
1280:                       WRITE(20,'(i5)') NATOMS1197:                       WRITE(20,'(i5)') NATOMS
1281:                       WRITE(20,'(6f12.7)') COORDS(:,JP) 1198:                       WRITE(20,'(6f12.7)') COORDS(:,JP) 
1282:                       CLOSE(20)1199:                       CLOSE(20)
1283: !     csw34> Dump to PDB using routine in amberinterface.f1200: !     csw34> Dump to PDB using routine in amberinterface.f
1301:                   CALL A9DISTCHECK(COORDS(:,JP),DISTOK)1218:                   CALL A9DISTCHECK(COORDS(:,JP),DISTOK)
1302:                   IF (.NOT.DISTOK) ATEST=.FALSE.1219:                   IF (.NOT.DISTOK) ATEST=.FALSE.
1303:                ENDIF1220:                ENDIF
1304: 1221: 
1305: !     js850> Check to see if RESTRICTREGION constraints have been violated - if they have, reject the step1222: !     js850> Check to see if RESTRICTREGION constraints have been violated - if they have, reject the step
1306:                IF ( RESTRICTREGION .AND. RESTRICTREGIONTEST ) THEN1223:                IF ( RESTRICTREGION .AND. RESTRICTREGIONTEST ) THEN
1307: !                write(*,*) "rejecting from markov chain"1224: !                write(*,*) "rejecting from markov chain"
1308:                  ATEST=.FALSE.1225:                  ATEST=.FALSE.
1309:                  WRITE(MYUNIT,* ) 'RESTRICTREGION> rejecting quench ', NQ(JP) 1226:                  WRITE(MYUNIT,* ) 'RESTRICTREGION> rejecting quench ', NQ(JP) 
1310:                ENDIF1227:                ENDIF
1311: !     csw34> If structure matched a previous hydrogen-bond group, we want to compare it to the last 1228: 
1312: !            accepted energy in that group 
1313:                IF (AMBERT.AND.HBONDMATRIX.AND.HBONDMATCH) THEN 
1314:                   HBONDESAVE=EPREV(JP) 
1315:                   EPREV(JP)=HBONDMARKOV(HBONDMATCHN) 
1316:                   WRITE(MYUNIT,'(A,I3,A,G20.10)') ' HBONDMATRIX> Setting Markov energy to previous group ', 
1317:      &                                             HBONDMATCHN,' value of ',HBONDMARKOV(HBONDMATCHN)  
1318:                ENDIF 
1319:                IF ((QDONE.EQ.0).AND.TIP) THEN1229:                IF ((QDONE.EQ.0).AND.TIP) THEN
1320:                   ATEST=.FALSE.1230:                   ATEST=.FALSE.
1321:                ELSEIF (ATEST) THEN1231:                ELSEIF (ATEST) THEN
1322:                   CALL TRANSITION(POTEL,EPREV(JP),ATEST,JP,RANDOM,MCTEMP)1232:                   CALL TRANSITION(POTEL,EPREV(JP),ATEST,JP,RANDOM,MCTEMP)
1323: !     csw34> Auto-accept if we have changed to a new hydrogen-bond group (HBONDMATCH=.FALSE.) 
1324:                   IF (AMBERT.AND.HBONDMATRIX) THEN 
1325:                      IF (.NOT.HBONDMATCH) THEN 
1326: !     csw34> In the default case, we want to auto-accept the step if it finds a new hydrogen-bond group 
1327:                         IF (HBONDACCEPT) THEN 
1328:                            ATEST=.TRUE. 
1329:                            WRITE(MYUNIT,'(A)') " HBONDMATRIX> New group so step auto-accepted" 
1330: !     csw34> However - if we wanted to restrict sampling to a single (the starting) hydrogen-bond group 
1331: !            we can do this by auto-rejecting any step which moves to a new group. 
1332:                         ELSE 
1333:                            ATEST=.FALSE. 
1334:                            WRITE(MYUNIT,'(A)') " HBONDMATRIX> Group changed so step rejected!" 
1335:                         ENDIF 
1336:                      ELSE 
1337:                         EPREV(JP)=HBONDESAVE 
1338: !                        WRITE(MYUNIT,'(A)') " HBONDMATRIX> Markov energy reset to pass sanity checks" 
1339:                      ENDIF 
1340:                   ENDIF 
1341:                ENDIF1233:                ENDIF
1342: 1234: 
1343: !!!!!!!!!!!!!!!!!!!!!!!!!!!11235: !!!!!!!!!!!!!!!!!!!!!!!!!!!1
1344: !                 CALL POTENTIAL(COORDSO(1:3*NATOMS,JP),DUMGRAD,DJWPOTEL,.FALSE.,.FALSE.)1236: !                 CALL POTENTIAL(COORDSO(1:3*NATOMS,JP),DUMGRAD,DJWPOTEL,.FALSE.,.FALSE.)
1345: !                 WRITE(MYUNIT,'(2(A,G20.10))') 'mc> D energy for coordinates in COORDSO=',DJWPOTEL, 1237: !                 WRITE(MYUNIT,'(2(A,G20.10))') 'mc> D energy for coordinates in COORDSO=',DJWPOTEL, 
1346: !    &                                                 ' Markov energy=',EPREV(JP) 1238: !    &                                                 ' Markov energy=',EPREV(JP) 
1347: !                 CALL POTENTIAL(COORDS(1:3*NATOMS,JP),DUMGRAD,DJWPOTEL,.FALSE.,.FALSE.)1239: !                 CALL POTENTIAL(COORDS(1:3*NATOMS,JP),DUMGRAD,DJWPOTEL,.FALSE.,.FALSE.)
1348: !                 WRITE(MYUNIT,'(2(A,G20.10))') 'mc> D energy for coordinates in COORDS= ',DJWPOTEL, 1240: !                 WRITE(MYUNIT,'(2(A,G20.10))') 'mc> D energy for coordinates in COORDS= ',DJWPOTEL, 
1349: !    &                                                 ' Markov energy=',EPREV(JP) 1241: !    &                                                 ' Markov energy=',EPREV(JP) 
1350: !!!!!!!!!!!!!!!!!!!!!!!!!!!11242: !!!!!!!!!!!!!!!!!!!!!!!!!!!1
1358:                      IF (EVAP) THEN1250:                      IF (EVAP) THEN
1359:                         WRITE(MYUNIT,'(3(A,G20.10))') 'mc> WARNING - energy for saved coordinates ',OPOTEL,1251:                         WRITE(MYUNIT,'(3(A,G20.10))') 'mc> WARNING - energy for saved coordinates ',OPOTEL,
1360:      &                     ' differs from Markov energy ',EPREV(JP),' because an atom moved outside the container'1252:      &                     ' differs from Markov energy ',EPREV(JP),' because an atom moved outside the container'
1361:                      ELSE1253:                      ELSE
1362:                         WRITE(MYUNIT,'(2(A,G20.10))') 'mc> ERROR - energy for coordinates in COORDSO=',OPOTEL,1254:                         WRITE(MYUNIT,'(2(A,G20.10))') 'mc> ERROR - energy for coordinates in COORDSO=',OPOTEL,
1363:      &                                                 ' but Markov energy=',EPREV(JP)1255:      &                                                 ' but Markov energy=',EPREV(JP)
1364:                         STOP1256:                         STOP
1365:                      ENDIF1257:                      ENDIF
1366:                   ENDIF1258:                   ENDIF
1367:                ENDIF1259:                ENDIF
1368:  
1369: ! Accept or reject step. If the quench did not converge then allow a1260: ! Accept or reject step. If the quench did not converge then allow a
1370: ! potenial move, but count it as a rejection in terms of NSUCCESS and1261: ! potenial move, but count it as a rejection in terms of NSUCCESS and
1371: ! NFAIL. This way we will accept a lower minimum if found, but the steps won;t become so big.1262: ! NFAIL. This way we will accept a lower minimum if found, but the steps won;t become so big.
1372: ! However, for TIP5P some cold fusion events that had not actually reached the threshold for1263: ! However, for TIP5P some cold fusion events that had not actually reached the threshold for
1373: ! rejection were actually accepted. Must prevent this!1264: ! rejection were actually accepted. Must prevent this!
1374:                IF (ATEST) THEN1265:                IF (ATEST) THEN
1375: #ifdef MPI1266: #ifdef MPI
1376:                   IF (DEBUG) THEN1267:                   IF (DEBUG) THEN
1377:                      WRITE(MYUNIT,334) JP,RANDOM,POTEL,EPREV(JP),NSUCCESS(JP),NFAIL(JP)1268:                      WRITE(MYUNIT,334) JP,RANDOM,POTEL,EPREV(JP),NSUCCESS(JP),NFAIL(JP)
1378: 334                   FORMAT('JP,RAN,POTEL,EPREV,NSUC,NFAIL=',I2,3F15.7,2I6,' ACC')1269: 334                   FORMAT('JP,RAN,POTEL,EPREV,NSUC,NFAIL=',I2,3F15.7,2I6,' ACC')
1379:                   ENDIF1270:                   ENDIF
1380: #else1271: #else
1381:                   IF (DEBUG) THEN1272:                   IF (DEBUG) THEN
1382: ! csw34> Make sure the group Markov energy is printed if using HBONDMATRIX1273:                      WRITE(MYUNIT,34) JP,RANDOM,POTEL,EPREV(JP),NSUCCESS(JP),NFAIL(JP)
1383:                      IF (HBONDMATRIX) THEN 
1384:                         IF (HBONDMATCH) THEN 
1385:                            WRITE(MYUNIT,34) JP,RANDOM,POTEL,HBONDMARKOV(HBONDMATCHN),NSUCCESS(JP),NFAIL(JP) 
1386:                         ENDIF  
1387:                      ELSE 
1388:                         WRITE(MYUNIT,34) JP,RANDOM,POTEL,EPREV(JP),NSUCCESS(JP),NFAIL(JP) 
1389:                      ENDIF  
1390: 34                   FORMAT('JP,RAN,POTEL,EPREV,NSUC,NFAIL=',I2,3F15.7,2I6,' ACC')1274: 34                   FORMAT('JP,RAN,POTEL,EPREV,NSUC,NFAIL=',I2,3F15.7,2I6,' ACC')
1391:                   ENDIF1275:                   ENDIF
1392: #endif1276: #endif
1393:                   IF ((J1-JACCPREV.GT.NRELAX).AND.ABS(POTEL-EPREV(JP)).GT.ECONV) THEN1277:                   IF ((J1-JACCPREV.GT.NRELAX).AND.ABS(POTEL-EPREV(JP)).GT.ECONV) THEN
1394: !                    NRELAX=J1-JACCPREV1278: !                    NRELAX=J1-JACCPREV
1395: !                    IF (RESTART) WRITE(MYUNIT,'(A,I6,A)') ' relaxation time set to ',NRELAX,' steps'1279: !                    IF (RESTART) WRITE(MYUNIT,'(A,I6,A)') ' relaxation time set to ',NRELAX,' steps'
1396:                      JACCPREV=J11280:                      JACCPREV=J1
1397:                   ENDIF1281:                   ENDIF
1398:                   IF (QDONE.EQ.1) THEN1282:                   IF (QDONE.EQ.1) THEN
1399:                      NSUCCESS(JP)=NSUCCESS(JP)+11283:                      NSUCCESS(JP)=NSUCCESS(JP)+1
1400:                   ELSE1284:                   ELSE
1401:                      NFAIL(JP)=NFAIL(JP)+11285:                      NFAIL(JP)=NFAIL(JP)+1
1402:                   ENDIF1286:                   ENDIF
1403:                   EPPREV(JP)=EPREV(JP)1287:                   EPPREV(JP)=EPREV(JP)
1404:                   EPREV(JP)=POTEL1288:                   EPREV(JP)=POTEL
1405: ! HBONDMATRIX  
1406: ! csw34> If quench is part of existing group, update the Markov energy  
1407:                   IF (AMBERT.AND.HBONDMATRIX.AND.HBONDMATCH) THEN 
1408:                      HBONDMARKOV(HBONDMATCHN)=POTEL   
1409: ! csw34> Update the group max energy if necessary 
1410:                      IF (POTEL.GT.HBONDMAXE(HBONDMATCHN)) THEN 
1411:                         WRITE(MYUNIT,'(A,I3,A,G20.10)') ' HBONDMATRIX> New highest energy structure for group ', 
1412:      &                                                  HBONDMATCHN,' found. E=',POTEL 
1413:                         HBONDMAXE(HBONDMATCHN)=POTEL 
1414:                      ENDIF 
1415: ! csw34> Update the group best energy and coordinates if necessary 
1416:                      IF (POTEL.LT.HBONDBEST(HBONDMATCHN)) THEN 
1417:                         WRITE(MYUNIT,'(A,I3,A,G20.10)') ' HBONDMATRIX> New lowest energy structure for group ', 
1418:      &                                                  HBONDMATCHN,' found. E=',POTEL 
1419:                         HBONDBEST(HBONDMATCHN)=POTEL 
1420:                         HBONDBESTCOORDS(HBONDMATCHN,:)=COORDS(:,JP) 
1421:                      ENDIF 
1422:                   ENDIF 
1423: ! END OF HBONDMATRIX 
1424:                   COORDSO(1:3*NATOMS,JP)=COORDS(1:3*NATOMS,JP)1289:                   COORDSO(1:3*NATOMS,JP)=COORDS(1:3*NATOMS,JP)
1425:                   VATO(1:NATOMS,JP)=VAT(1:NATOMS,JP)1290:                   VATO(1:NATOMS,JP)=VAT(1:NATOMS,JP)
1426:                ELSE1291:                ELSE
1427:                   NFAIL(JP)=NFAIL(JP)+11292:                   NFAIL(JP)=NFAIL(JP)+1
1428:                   CALL MYRESET(JP,NATOMS,NPAR,NSEED)1293:                   CALL MYRESET(JP,NATOMS,NPAR,NSEED)
1429:                   IF (DEBUG) THEN1294:                   IF (DEBUG) THEN
1430:                      WRITE(MYUNIT,36) JP,RANDOM,POTEL,EPREV(JP),NSUCCESS(JP),NFAIL(JP)1295:                      WRITE(MYUNIT,36) JP,RANDOM,POTEL,EPREV(JP),NSUCCESS(JP),NFAIL(JP)
1431: 36                   FORMAT('JP,RAN,POTEL,EPREV,NSUC,NFAIL=',I2,3F15.7,2I6,' REJ')1296: 36                   FORMAT('JP,RAN,POTEL,EPREV,NSUC,NFAIL=',I2,3F15.7,2I6,' REJ')
1432:                   ENDIF1297:                   ENDIF
1433:                ENDIF1298:                ENDIF


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0