hdiff output

r30857/commons.f90 2016-07-25 17:30:11.618897088 +0100 r30856/commons.f90 2016-07-25 17:30:13.142917590 +0100
170:       LOGICAL :: RIGIDINIT170:       LOGICAL :: RIGIDINIT
171:       INTEGER :: DEGFREEDOMS171:       INTEGER :: DEGFREEDOMS
172: 172: 
173: ! Get frqs173: ! Get frqs
174:       LOGICAL :: GETMINFRQST, GETTSFRQST174:       LOGICAL :: GETMINFRQST, GETTSFRQST
175: 175: 
176: ! MINGAP176: ! MINGAP
177:       LOGICAL :: MINGAPT, MINGAPRATIOT177:       LOGICAL :: MINGAPT, MINGAPRATIOT
178:       DOUBLE PRECISION :: MINGAPINP178:       DOUBLE PRECISION :: MINGAPINP
179: 179: 
180: !CONNECTUNCONNECTED 
181:       LOGICAL :: CONNECTLOWESTT, CONNECTETHRESHT, CONNECTDTHRESHT, CONUNCONT 
182:       INTEGER :: REFMIN 
183:  
184: END MODULE COMMONS180: END MODULE COMMONS


r30857/connect_unconnected.f90 2016-07-25 17:30:12.126903934 +0100 r30856/connect_unconnected.f90 2016-07-25 17:30:13.490922283 +0100
  1: !   PATHSAMPLE: A driver for OPTIM to create stationary point databases using discrete path sampling and perform kinetic analysis  1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/PATHSAMPLE/source/connect_unconnected.f90' in revision 30856
  2: !   Copyright (C) 1999-2009 David J. Wales 
  3: !   This file is part of PATHSAMPLE. 
  4: ! 
  5: !   PATHSAMPLE 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: !   PATHSAMPLE 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:  
 20: !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 
 21: ! 
 22: !  CONNECTUNCONNECTED subroutine 
 23: ! 
 24: SUBROUTINE GETCUPAIR(NAVAIL,NUSED,MINS,MINF,SPOINTS,FPOINTS) 
 25: USE COMMONS, ONLY: UMIN, NATOMS, DMIN1, DMIN2,  NMIN,  PAIR1, PAIR2, NPAIRDONE,MAXPAIRS 
 26: IMPLICIT NONE 
 27: INTEGER NUSED, MINS, MINF, NAVAIL, PAIRSTODO 
 28: DOUBLE PRECISION SPOINTS(3*NATOMS), FPOINTS(3*NATOMS) 
 29:  
 30: 10 CONTINUE 
 31: IF (NAVAIL.EQ.0) THEN 
 32:    CALL GETNCONN 
 33:    CALL CONNECTUNCONNECTED(NAVAIL) 
 34:    IF (NAVAIL.EQ.0) THEN 
 35:       PRINT '(A)','getcupair> No more candidate pairs of minima in getdpair - quit' 
 36:       STOP 
 37:    ENDIF 
 38:    NUSED=0 
 39: ENDIF 
 40: NUSED=NUSED+1 
 41: NAVAIL=NAVAIL-1 
 42: MINS=DMIN1(NUSED) 
 43: MINF=DMIN2(NUSED) 
 44: WRITE(*,'(4(A,I8))') 'getcupair> connecting minima ',MINS,' and ',MINF, ' pairs used=',NUSED,' remaining=',NAVAIL 
 45: NPAIRDONE=NPAIRDONE+1 
 46: IF (NPAIRDONE.GT.MAXPAIRS) CALL PAIRDOUBLE 
 47: PAIR1(NPAIRDONE)=DMIN1(NUSED) 
 48: PAIR2(NPAIRDONE)=DMIN2(NUSED) 
 49: READ(UMIN,REC=MINS) SPOINTS(1:3*NATOMS) 
 50: READ(UMIN,REC=MINF) FPOINTS(1:3*NATOMS) 
 51:  
 52: END SUBROUTINE GETCUPAIR 
 53:  
 54:  
 55: SUBROUTINE CONNECTUNCONNECTED(NAVAIL) 
 56: USE PORFUNCS 
 57: USE COMMONS 
 58: !USE COMMONS, ONLY: UMIN, NMIN, NMINA, NMINB, NCPU, DMIN1, DMIN2, CONNECTLOWESTT, NATOMS, & 
 59: !&                  CONNECTETHRESHT, CONNECTDTHRESHT, REFMIN,  DEBUG, BOXLX, BOXLY, BOXLZ, & 
 60: !  &                BULKT, TWOD, RIGIDBODY, EMIN, NTS, LOCATIONA, LOCATIONB, NCONNMAx 
 61: IMPLICIT NONE 
 62:  
 63: INTEGER :: J1, J2, J3, J4, J5, J6, J7, CLOSESTMIN 
 64: LOGICAL :: ISA(NMIN), ISB(NMIN), CHANGED, DEADTS(NTS), UNCONN(NMIN) 
 65: INTEGER :: NCOL(NMIN), NVAL(NCONNMAX,NMIN), NDISTA(NMIN), NDISTB(NMIN), NCYCLE, DMIN 
 66: INTEGER :: DMAX, NUNCONA, NUNCONB, NDEAD, NUNCONN, PAIRSTODO, NAVAIL 
 67: INTEGER, ALLOCATABLE :: UNCMIN(:),CONMIN(:) 
 68: DOUBLE PRECISION, ALLOCATABLE :: EUNCON(:), UNCONDIST(:), EUNDIFF(:) 
 69: DOUBLE PRECISION :: DMATMC(NCONNMAX,NMIN), KSUM(NMIN), CUT_UNDERFLOW, LOWESTX(3*NATOMS),SETX(3*NATOMS) 
 70: DOUBLE PRECISION :: DISTMIN, EREF, DISTANCE, DIST2, RMAT(3,3), REFX(3*NATOMS) 
 71:  
 72: ! 
 73: ! Set up connectivity analysis 
 74: ! 
 75: UNCONN(1:NMIN)=.FALSE. 
 76: ISA(1:NMIN)=.FALSE. 
 77: ISB(1:NMIN)=.FALSE. 
 78: DO J1=1,NMINA 
 79:    ISA(LOCATIONA(J1))=.TRUE. 
 80: ENDDO 
 81: DO J1=1,NMINB 
 82:    ISB(LOCATIONB(J1))=.TRUE. 
 83: ENDDO 
 84:  
 85:  
 86: CUT_UNDERFLOW=-300.0D0 
 87: CALL RATECONST_SETUP(KSUM,DEADTS,NDEAD,.FALSE.,CUT_UNDERFLOW) 
 88:  
 89:  
 90: CALL MAKED(DMATMC,NCOL,NVAL,DEADTS,.TRUE.,ISA,ISB,KSUM) 
 91:  
 92:  
 93: ! 
 94: ! Check connections to A set 
 95: ! 
 96: NDISTA(1:NMIN)=1000000 
 97: DO J1=1,NMINA 
 98:    NDISTA(LOCATIONA(J1))=0 
 99: ENDDO  
100: NCYCLE=0 
101: 5    CHANGED=.FALSE. 
102: NCYCLE=NCYCLE+1 
103: DMIN=100000 
104: DMAX=0 
105: NUNCONA=0 
106: DO J1=1,NMIN 
107:    IF (NDISTA(J1).EQ.0) CYCLE ! A minimum 
108:    DO J2=1,NCOL(J1) 
109:       IF (NDISTA(NVAL(J2,J1))+1.LT.NDISTA(J1)) THEN 
110:          CHANGED=.TRUE. 
111:          NDISTA(J1)=NDISTA(NVAL(J2,J1))+1 
112:       ENDIF 
113:    ENDDO 
114:    IF ((NDISTA(J1).GT.DMAX).AND.(NDISTA(J1).NE.1000000)) DMAX=NDISTA(J1) 
115:    IF (NDISTA(J1).LT.DMIN) DMIN=NDISTA(J1) 
116:    IF (NDISTA(J1).EQ.1000000) NUNCONA=NUNCONA+1 
117: ENDDO 
118: IF (CHANGED) GOTO 5 
119: PRINT '(3(A,I8))','Dijkstra> steps to A region converged in ',NCYCLE-1, & 
120: &                    ' cycles; maximum=',DMAX,' disconnected=',NUNCONA 
121: ! 
122: !  Check connections to B set 
123: !   
124: NDISTB(1:NMIN)=1000000 
125: DO J1=1,NMINB 
126:    NDISTB(LOCATIONB(J1))=0 
127: ENDDO 
128: NCYCLE=0 
129: 51    CHANGED=.FALSE. 
130: NCYCLE=NCYCLE+1 
131: DMIN=100000 
132: DMAX=0 
133: NUNCONB=0 
134: DO J1=1,NMIN 
135:    IF (NDISTB(J1).EQ.0) CYCLE ! B minimum 
136:    DO J2=1,NCOL(J1) 
137:       IF (NDISTB(NVAL(J2,J1))+1.LT.NDISTB(J1)) THEN 
138:          CHANGED=.TRUE. 
139:          NDISTB(J1)=NDISTB(NVAL(J2,J1))+1 
140:       ENDIF 
141:    ENDDO 
142:    IF ((NDISTB(J1).GT.DMAX).AND.(NDISTB(J1).NE.1000000)) DMAX=NDISTB(J1) 
143:    IF (NDISTB(J1).LT.DMIN) DMIN=NDISTB(J1) 
144:    IF (NDISTB(J1).EQ.1000000) NUNCONB=NUNCONB+1 
145: ENDDO  
146: IF (CHANGED) GOTO 51 
147: PRINT '(3(A,I8))','Dijkstra> steps to B region converged in ',NCYCLE-1, & 
148: &                    ' cycles; maximum=',DMAX,' disconnected=',NUNCONB 
149: ! 
150: !  This could happen if disconnected minima lie in the A or B region 
151: ! 
152: IF (NUNCONB.NE.NUNCONA) PRINT '(A)', & 
153: &                   'Dijkstra> WARNING - number of disconnected minima from A and B is different' 
154: ! 
155: !  Get logical array for connection to A or B sets (True means unconnected) 
156: ! 
157:  
158: NUNCONN=0 
159: DO J1=1,NMIN 
160:    IF ((NDISTA(J1).EQ.1000000).OR.(NDISTB(J1).EQ.1000000)) THEN 
161:       UNCONN(J1)=.TRUE. 
162:       NUNCONN=NUNCONN+1 
163:    ENDIF 
164: ENDDO 
165: PRINT '(A,I8)','connectunconnected> Number of unconnected minima:',NUNCONN 
166:  
167: ALLOCATE(UNCMIN(NUNCONN)) !get an unsorted list of all unconnected minima 
168: UNCMIN(1:NUNCONN)=0 
169: ALLOCATE(CONMIN(NMIN-NUNCONN))   !get list of minima in connected set 
170: CONMIN(1:(NMIN-NUNCONN))=0 
171: ALLOCATE(EUNCON(NUNCONN)) 
172: J2=1 
173: J3=1 
174: DO J1=1,NMIN 
175:    IF (UNCONN(J1)) THEN 
176:       EUNCON(J2)=-EMIN(J1)               !assign energy of minimum 
177:       UNCMIN(J2)=J1            !assign number of minimum 
178:       J2=J2+1 
179:    ELSE 
180:       CONMIN(J3)=J1 
181:       J3=J3+1 
182:    ENDIF 
183: ENDDO 
184:  
185: PAIRSTODO=NCPU                                     !recalculate for every cycle 
186: IF (ALLOCATED(DMIN1)) DEALLOCATE(DMIN1,DMIN2)       
187: ALLOCATE(DMIN1(PAIRSTODO),DMIN2(PAIRSTODO)) 
188: IF (CONNECTLOWESTT) THEN   !connect lowest energy minima to closest from connected AB set 
189:    !need to sort list by energies, lowest to highest 
190:    CALL SORT(NUNCONN,NUNCONN,EUNCON,UNCMIN) 
191:    !now find the pairs to connect 
192:    J7=0 
193:    DO J4=1,PAIRSTODO 
194: 54    J7=J7+1 
195:       READ(UMIN,REC=UNCMIN(J7)) (LOWESTX(J6),J6=1,3*NATOMS) 
196:       DISTMIN = 1.0D100 
197:       CLOSESTMIN = 0 
198:       DO J5=1,(NMIN-NUNCONN),1 
199:          READ(UMIN,REC=CONMIN(J5)) (SETX(J6),J6=1,3*NATOMS) 
200:          CALL MINPERMDIST(SETX,LOWESTX,NATOMS,DEBUG,BOXLX,BOXLY,BOXLZ,BULKT,TWOD,DISTANCE, & 
201: &                         DIST2,RIGIDBODY,RMAT,.FALSE.) 
202:          IF (DISTANCE.LT.DISTMIN) THEN 
203:             DISTMIN = DISTANCE 
204:             !IF (DEBUG) PRINT '(A,I8,A,F15.8)','connectlowest> New closest minimum:',CONMIN(J5),' distance:',DISTMIN 
205:             CLOSESTMIN = CONMIN(J5) 
206:          ENDIF 
207:       ENDDO 
208:       DO J3=1,NPAIRDONE,1 
209:          IF ((PAIR1(J3).EQ.UNCMIN(J7)).AND.(PAIR2(J3).EQ.CLOSESTMIN)) THEN 
210:             GOTO 54 
211:          ELSE IF ((PAIR1(J3).EQ.CLOSESTMIN).AND.(PAIR2(J3).EQ.UNCMIN(J7))) THEN 
212:             GOTO 54 
213:          ENDIF 
214:       ENDDO 
215:       DMIN1(J4) = UNCMIN(J7) 
216:       DMIN2(J4) = CLOSESTMIN 
217:       PRINT '(A,I8,A,F15.8)','connectlowest> Minimum 1:',DMIN1(J4),' Energy:',EMIN(DMIN1(J4)) 
218:       PRINT '(A,I8,A,F15.8)','connectlowest> Minimum 2:',DMIN2(J4),' Energy:',EMIN(DMIN2(J4)) 
219:       PRINT '(A,F15.8)','connectlowest> Distance:',DISTMIN 
220:    ENDDO 
221:  
222:  
223: ELSEIF (CONNECTETHRESHT) THEN  !connect states closest in energy to a given min to set 
224:    !need to sort list by relative energies 
225:    EREF=-EMIN(REFMIN)        !neds to be inverted as all energies are 
226:    ALLOCATE(EUNDIFF(NUNCONN)) 
227:    DO J1=1,NUNCONN,1 
228:       EUNDIFF(J1)=-ABS(EUNCON(J1)-EREF) 
229:    ENDDO 
230:    CALL SORT(NUNCONN,NUNCONN,EUNDIFF,UNCMIN) 
231:    !now find the pairs to connect 
232:    J7=0 
233:    DO J4=1,PAIRSTODO 
234: 55    J7=J7+1 
235:       DO J3=1,NPAIRDONE,1 
236:          IF ((PAIR1(J3).EQ.UNCMIN(J7)).AND.(PAIR2(J3).EQ.REFMIN)) THEN 
237:             GOTO 55 
238:          ELSE IF ((PAIR1(J3).EQ.REFMIN).AND.(PAIR2(J3).EQ.UNCMIN(J7))) THEN 
239:             GOTO 55 
240:          ENDIF 
241:       ENDDO 
242:       DMIN1(J4)=UNCMIN(J7) 
243:       DMIN2(J4)=REFMIN 
244:       PRINT '(A,I8,A,F15.8)','connectclosestE> Minimum 1:',DMIN1(J4),' Energy:',EMIN(DMIN1(J4)) 
245:       PRINT '(A,I8,A,F15.8)','connectclosestE> Minimum 2:',DMIN2(J4),' Energy:',EMIN(DMIN2(J4)) 
246:       PRINT '(A,F15.8)','connectlowestE> Energy difference:',EUNDIFF(J7) 
247:    ENDDO 
248:  
249: ELSEIF (CONNECTDTHRESHT) THEN  !connect states closest in energy to a given min to set 
250:    !need to compute distances for all unconnected minima and sort it 
251:    READ(UMIN,REC=REFMIN) (REFX(J6),J6=1,3*NATOMS) 
252:    ALLOCATE(UNCONDIST(NUNCONN)) 
253:    DO J5=1,NUNCONN,1 
254:       READ(UMIN,REC=UNCMIN(J5)) (SETX(J6),J6=1,3*NATOMS) 
255:       CALL MINPERMDIST(SETX,REFX,NATOMS,DEBUG,BOXLX,BOXLY,BOXLZ,BULKT,TWOD,DISTANCE, & 
256: &                         DIST2,RIGIDBODY,RMAT,.FALSE.) 
257:       UNCONDIST(J5) = -DISTANCE                           !invert order to get smallest distance 
258:    ENDDO 
259:    CALL SORT(NUNCONN,NUNCONN,UNCONDIST,UNCMIN) 
260:    !now find the pairs to connect 
261:    J7=0 
262:    DO J4=1,PAIRSTODO 
263: 56    J7=J7+1 
264:       DO J3=1,NPAIRDONE,1 
265:          IF ((PAIR1(J3).EQ.UNCMIN(J7)).AND.(PAIR2(J3).EQ.REFMIN)) THEN 
266:             GOTO 56 
267:          ELSE IF ((PAIR1(J3).EQ.REFMIN).AND.(PAIR2(J3).EQ.UNCMIN(J7))) THEN 
268:             GOTO 56 
269:          ENDIF 
270:       ENDDO 
271:       DMIN1(J4)=UNCMIN(J7) 
272:       DMIN2(J4)=REFMIN 
273:       PRINT '(A,I8,A,F15.8)','connectclosestD> Minimum 1:',DMIN1(J4),' Energy:',EMIN(DMIN1(J4)) 
274:       PRINT '(A,I8,A,F15.8)','connectclosestD> Minimum 2:',DMIN2(J4),' Energy:',EMIN(DMIN2(J4)) 
275:       PRINT '(A,F15.8)','connectclosestD> Distance:', -UNCONDIST(J7) 
276:    ENDDO 
277: ENDIF 
278:  
279: NAVAIL = PAIRSTODO 
280: DEALLOCATE(UNCMIN,CONMIN,EUNCON) 
281: IF (ALLOCATED(UNCONDIST)) DEALLOCATE(UNCONDIST) 
282: IF (ALLOCATED(EUNDIFF)) DEALLOCATE(EUNDIFF) 
283: END SUBROUTINE CONNECTUNCONNECTED 
284:  
285:  


r30857/cycle2.f90 2016-07-25 17:30:12.454908337 +0100 r30856/cycle2.f90 2016-07-25 17:30:13.854927181 +0100
139:       STOP139:       STOP
140:    ENDIF140:    ENDIF
141: ENDIF141: ENDIF
142: 142: 
143: DO J3=1,NCPU143: DO J3=1,NCPU
144:    IF (SLEEPTIME1.GT.0.0D0) CALL SYSTEM(TRIM(ADJUSTL(SLEEPSTRING1))) ! to prevent us running out of source ports. Needed for M13.144:    IF (SLEEPTIME1.GT.0.0D0) CALL SYSTEM(TRIM(ADJUSTL(SLEEPSTRING1))) ! to prevent us running out of source ports. Needed for M13.
145:    IF (DIJPAIRT) THEN145:    IF (DIJPAIRT) THEN
146:       CALL GETDPAIR(NAVAIL,NUSED,MINS(J3),MINF(J3),SPOINTS,FPOINTS)146:       CALL GETDPAIR(NAVAIL,NUSED,MINS(J3),MINF(J3),SPOINTS,FPOINTS)
147:    ELSEIF (CONNECTREGIONT) THEN147:    ELSEIF (CONNECTREGIONT) THEN
148:       CALL GETRPAIR(NAVAIL,NUSED,MINS(J3),MINF(J3),SPOINTS,FPOINTS)148:       CALL GETRPAIR(NAVAIL,NUSED,MINS(J3),MINF(J3),SPOINTS,FPOINTS)
149:    ELSEIF (CONUNCONT) THEN 
150:       CALL GETCUPAIR(NAVAIL,NUSED,MINS(J3),MINF(J3),SPOINTS,FPOINTS) 
151: !  ELSEIF (PTAUT) THEN149: !  ELSEIF (PTAUT) THEN
152: !     CALL GETPPAIR(NAVAIL,NUSED,MINS(J3),MINF(J3),SPOINTS,FPOINTS)150: !     CALL GETPPAIR(NAVAIL,NUSED,MINS(J3),MINF(J3),SPOINTS,FPOINTS)
153:    ELSEIF (SHORTCUTT) THEN151:    ELSEIF (SHORTCUTT) THEN
154:       CALL GETSPAIR(NAVAIL,NUSED,MINS(J3),MINF(J3),SPOINTS,FPOINTS)152:       CALL GETSPAIR(NAVAIL,NUSED,MINS(J3),MINF(J3),SPOINTS,FPOINTS)
155:    ELSEIF (UNTRAPT) THEN153:    ELSEIF (UNTRAPT) THEN
156:       CALL GETUPAIR(NAVAIL,NUSED,MINS(J3),MINF(J3),SPOINTS,FPOINTS)154:       CALL GETUPAIR(NAVAIL,NUSED,MINS(J3),MINF(J3),SPOINTS,FPOINTS)
157:    ELSEIF (FREEPAIRT) THEN155:    ELSEIF (FREEPAIRT) THEN
158:       CALL GETFREEPAIR(NAVAIL,NUSED,MINS(J3),MINF(J3),SPOINTS,FPOINTS)156:       CALL GETFREEPAIR(NAVAIL,NUSED,MINS(J3),MINF(J3),SPOINTS,FPOINTS)
159:    ELSEIF (USEPAIRST) THEN157:    ELSEIF (USEPAIRST) THEN
160:       CALL GETNCONN ! must call this first to set NCONNMAX - used for declarations in GETUSEPAIR158:       CALL GETNCONN ! must call this first to set NCONNMAX - used for declarations in GETUSEPAIR
417:    ENDIF415:    ENDIF
418: 416: 
419:    IF (NCYCLES.LE.NATTEMPT*NCPU-NCPU) THEN ! submit replacement job417:    IF (NCYCLES.LE.NATTEMPT*NCPU-NCPU) THEN ! submit replacement job
420:       IF ((.NOT.DEBUG).AND.(.NOT.COPYOPTIMT)) &418:       IF ((.NOT.DEBUG).AND.(.NOT.COPYOPTIMT)) &
421:    &  CALL MYSYSTEM(STATUS,DEBUG,'rm -f *' // TRIM(ADJUSTL(CONNSTR)) // ' > /dev/null' ) ! remove old output419:    &  CALL MYSYSTEM(STATUS,DEBUG,'rm -f *' // TRIM(ADJUSTL(CONNSTR)) // ' > /dev/null' ) ! remove old output
422:       IF (SLEEPTIME2.GT.0.0D0) CALL SYSTEM(TRIM(ADJUSTL(SLEEPSTRING2))) ! to prevent us running out of source ports. Needed for M13.420:       IF (SLEEPTIME2.GT.0.0D0) CALL SYSTEM(TRIM(ADJUSTL(SLEEPSTRING2))) ! to prevent us running out of source ports. Needed for M13.
423:       IF (DIJPAIRT) THEN421:       IF (DIJPAIRT) THEN
424:          CALL GETDPAIR(NAVAIL,NUSED,MINS(NEWJOB),MINF(NEWJOB),SPOINTS,FPOINTS)422:          CALL GETDPAIR(NAVAIL,NUSED,MINS(NEWJOB),MINF(NEWJOB),SPOINTS,FPOINTS)
425:       ELSEIF (CONNECTREGIONT) THEN423:       ELSEIF (CONNECTREGIONT) THEN
426:          CALL GETRPAIR(NAVAIL,NUSED,MINS(NEWJOB),MINF(NEWJOB),SPOINTS,FPOINTS)424:          CALL GETRPAIR(NAVAIL,NUSED,MINS(NEWJOB),MINF(NEWJOB),SPOINTS,FPOINTS)
427:       ELSEIF (CONUNCONT) THEN 
428:          CALL GETCUPAIR(NAVAIL,NUSED,MINS(NEWJOB),MINF(NEWJOB),SPOINTS,FPOINTS) 
429: !     ELSEIF (PTAUT) THEN425: !     ELSEIF (PTAUT) THEN
430: !        CALL GETSPAIR(NAVAIL,NUSED,MINS(NEWJOB),MINF(NEWJOB),SPOINTS,FPOINTS)426: !        CALL GETSPAIR(NAVAIL,NUSED,MINS(NEWJOB),MINF(NEWJOB),SPOINTS,FPOINTS)
431:       ELSEIF (SHORTCUTT) THEN427:       ELSEIF (SHORTCUTT) THEN
432:          CALL GETSPAIR(NAVAIL,NUSED,MINS(NEWJOB),MINF(NEWJOB),SPOINTS,FPOINTS)428:          CALL GETSPAIR(NAVAIL,NUSED,MINS(NEWJOB),MINF(NEWJOB),SPOINTS,FPOINTS)
433:       ELSEIF (UNTRAPT) THEN429:       ELSEIF (UNTRAPT) THEN
434:          CALL GETUPAIR(NAVAIL,NUSED,MINS(NEWJOB),MINF(NEWJOB),SPOINTS,FPOINTS)430:          CALL GETUPAIR(NAVAIL,NUSED,MINS(NEWJOB),MINF(NEWJOB),SPOINTS,FPOINTS)
435:       ELSEIF (NEWCONNECTIONST) THEN431:       ELSEIF (NEWCONNECTIONST) THEN
436: 862      IF (CONNDOING.LE.NMIN) THEN432: 862      IF (CONNDOING.LE.NMIN) THEN
437:             IF ((MINCONN(CONNDOING).GE.CONNECTIONS)) THEN433:             IF ((MINCONN(CONNDOING).GE.CONNECTIONS)) THEN
438:                CONNDOING=CONNDOING+1434:                CONNDOING=CONNDOING+1


r30857/keywords.f 2016-07-25 17:30:12.786912819 +0100 r30856/keywords.f 2016-07-25 17:30:14.202931858 +0100
384:       DEGFREEDOMS = 3*NATOMS384:       DEGFREEDOMS = 3*NATOMS
385: 385: 
386: ! kr366: get frqs386: ! kr366: get frqs
387:       GETMINFRQST = .FALSE.387:       GETMINFRQST = .FALSE.
388:       GETTSFRQST = .FALSE.388:       GETTSFRQST = .FALSE.
389: 389: 
390: ! sn402: keywords for manipulating pairfiles. Must be used with USEPAIRS390: ! sn402: keywords for manipulating pairfiles. Must be used with USEPAIRS
391:       MAKEPAIRS = .FALSE.391:       MAKEPAIRS = .FALSE.
392:       SKIPPAIRST = .FALSE.392:       SKIPPAIRST = .FALSE.
393: 393: 
394: ! kr366: connect unconnected minima 
395:       CONUNCONT=.FALSE. 
396:       CONNECTLOWESTT=.FALSE. 
397:       CONNECTETHRESHT=.FALSE. 
398:       CONNECTDTHRESHT=.FALSE. 
399:       REFMIN=0 
400:  
401: C394: C
402: C SAT: Now, there it is! Unit 5 is a standard input unit, and we must not use it!395: C SAT: Now, there it is! Unit 5 is a standard input unit, and we must not use it!
403: C 5--->959396: C 5--->959
404: C397: C
405:       OPEN (959,FILE='pathdata',STATUS='OLD')398:       OPEN (959,FILE='pathdata',STATUS='OLD')
406: C399: C
407: C  Read from unit 959400: C  Read from unit 959
408: C401: C
409:       IR=959402:       IR=959
410: 190   CALL INPUT(END)403: 190   CALL INPUT(END)
758:          IF (NITEMS.GT.2) CALL READI(MAXTSATTEMPTS)751:          IF (NITEMS.GT.2) CALL READI(MAXTSATTEMPTS)
759: C752: C
760: C  Specify that the database is grown by attempting all connections between753: C  Specify that the database is grown by attempting all connections between
761: C  known minima within a distance cutoff.754: C  known minima within a distance cutoff.
762: C755: C
763:       ELSE IF (WORD.EQ.'CONNECTREGION') THEN756:       ELSE IF (WORD.EQ.'CONNECTREGION') THEN
764:          CONNECTREGIONT=.TRUE.757:          CONNECTREGIONT=.TRUE.
765:          IF (NITEMS.GT.1) CALL READI(CONNECTMIN1)758:          IF (NITEMS.GT.1) CALL READI(CONNECTMIN1)
766:          IF (NITEMS.GT.2) CALL READI(CONNECTMIN2)759:          IF (NITEMS.GT.2) CALL READI(CONNECTMIN2)
767:          IF (NITEMS.GT.3) CALL READF(CONNECTDIST)760:          IF (NITEMS.GT.3) CALL READF(CONNECTDIST)
768:  
769: C 
770: C Connect unceonnected minima to AB set using either the lowest energy minima 
771: C or the minima closest in energy or distance to a reference 
772: C 
773:        
774:       ELSE IF (WORD.EQ.'CONNECTUNC') THEN 
775:          CONUNCONT=.TRUE. 
776:          PRINT '(A)',' keyword> Attempt to connect unconnected minima' 
777:          CALL READU(WW) 
778:          IF (TRIM(ADJUSTL(WW))=='LOWEST') THEN 
779:             CONNECTLOWESTT=.TRUE. 
780:             PRINT '(A)',' keyword> Use lowest energy minima' 
781:          ELSE IF (TRIM(ADJUSTL(WW))=='EREF') THEN 
782:             CONNECTETHRESHT=.TRUE. 
783:             CALL READI(REFMIN) 
784:             PRINT '(A,I8)',' keyword> Use minima closest in energy to:',REFMIN 
785:          ELSE IF (TRIM(ADJUSTL(WW))=='DISTREF') THEN 
786:             CONNECTDTHRESHT=.TRUE. 
787:             CALL READI(REFMIN) 
788:             PRINT '(A,I8)','keyword> Use minima closest in distance to:',REFMIN 
789:          ENDIF 
790:  
791: C761: C
792: C  Specify files to be copied to distributed nodes in addition to the default762: C  Specify files to be copied to distributed nodes in addition to the default
793: C  odata.<pid> and finish.<pid> files.763: C  odata.<pid> and finish.<pid> files.
794: C764: C
795:       ELSE IF (WORD.EQ.'COPYFILES') THEN765:       ELSE IF (WORD.EQ.'COPYFILES') THEN
796: C        PRINT '(A,I8)','NITEMS=',NITEMS766: C        PRINT '(A,I8)','NITEMS=',NITEMS
797:          DO J1=2,NITEMS767:          DO J1=2,NITEMS
798:             CALL READA(WW)768:             CALL READA(WW)
799:             WRITE(COPYFILES,'(3A)') TRIM(ADJUSTL(COPYFILES)),' ',TRIM(ADJUSTL(WW))769:             WRITE(COPYFILES,'(3A)') TRIM(ADJUSTL(COPYFILES)),' ',TRIM(ADJUSTL(WW))
800: C           PRINT '(3A)','WW,COPYFILES: ',WW,COPYFILES770: C           PRINT '(3A)','WW,COPYFILES: ',WW,COPYFILES


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0