hdiff output

r29143/commons.f90 2015-11-17 23:34:47.465945940 +0000 r29142/commons.f90 2015-11-17 23:34:48.225956132 +0000
111:       CHARACTER(LEN=80) EXEC,EXECGMIN111:       CHARACTER(LEN=80) EXEC,EXECGMIN
112:       CHARACTER(LEN=80) PATHNAME, MINNAME, ADDMINXYZNAME112:       CHARACTER(LEN=80) PATHNAME, MINNAME, ADDMINXYZNAME
113:       CHARACTER(LEN=150) COPYFILES113:       CHARACTER(LEN=150) COPYFILES
114:       CHARACTER(LEN=80) USEPAIRSFILE114:       CHARACTER(LEN=80) USEPAIRSFILE
115:       CHARACTER(LEN=80) MAKEPAIRSFILE115:       CHARACTER(LEN=80) MAKEPAIRSFILE
116:       CHARACTER(LEN=2) DIRECTION116:       CHARACTER(LEN=2) DIRECTION
117:       CHARACTER(LEN=5) UNCONNECTEDS117:       CHARACTER(LEN=5) UNCONNECTEDS
118:       CHARACTER(LEN=5) ZSYM118:       CHARACTER(LEN=5) ZSYM
119:       CHARACTER(LEN=2), ALLOCATABLE ::  ZSYMBOL(:)119:       CHARACTER(LEN=2), ALLOCATABLE ::  ZSYMBOL(:)
120:       CHARACTER(LEN=1) ENSEMBLE120:       CHARACTER(LEN=1) ENSEMBLE
121:       CHARACTER(LEN=120) :: HOSTNAME 
122: 121: 
123:       CHARACTER(LEN=4), ALLOCATABLE :: RESLABEL(:), ATOMLABEL(:)122:       CHARACTER(LEN=4), ALLOCATABLE :: RESLABEL(:), ATOMLABEL(:)
124:       INTEGER, ALLOCATABLE :: RESNUMBER(:)123:       INTEGER, ALLOCATABLE :: RESNUMBER(:)
125:       INTEGER, ALLOCATABLE :: NCONNGROUP(:) ! jmc124:       INTEGER, ALLOCATABLE :: NCONNGROUP(:) ! jmc
126: 125: 
127: !     DC430 >126: !     DC430 >
128:       INTEGER :: NRBSITES, NTSITES, NRBGROUP, PAHID, PAPID, TIPID127:       INTEGER :: NRBSITES, NTSITES, NRBGROUP, PAHID, PAPID, TIPID
129:       DOUBLE PRECISION :: PAPALP128:       DOUBLE PRECISION :: PAPALP
130:       DOUBLE PRECISION, ALLOCATABLE :: RBSITE(:,:), SITEMASS(:)129:       DOUBLE PRECISION, ALLOCATABLE :: RBSITE(:,:), SITEMASS(:)
131:       DOUBLE PRECISION, ALLOCATABLE :: RBOPS(:,:)130:       DOUBLE PRECISION, ALLOCATABLE :: RBOPS(:,:)


r29143/keywords.f 2015-11-17 23:34:47.661948570 +0000 r29142/keywords.f 2015-11-17 23:34:48.417958706 +0000
454: C454: C
455: C  Allow the same ts to appear with different minima in the database.455: C  Allow the same ts to appear with different minima in the database.
456: C456: C
457:       ELSE IF (WORD.EQ.'ALLTS') THEN457:       ELSE IF (WORD.EQ.'ALLTS') THEN
458:          ALLTST=.TRUE.458:          ALLTST=.TRUE.
459: C459: C
460: C  sf344> Set AMBER9 potential.460: C  sf344> Set AMBER9 potential.
461: C461: C
462:        ELSE IF (WORD.EQ.'AMBER9') THEN462:        ELSE IF (WORD.EQ.'AMBER9') THEN
463:           AMBERT=.TRUE.463:           AMBERT=.TRUE.
464:        ELSE IF (WORD.EQ.'AMBER12') THEN 
465:           AMBERT=.TRUE. 
466:        ELSE IF (WORD.EQ.'NAB') THEN464:        ELSE IF (WORD.EQ.'NAB') THEN
467:           AMBERT=.TRUE.465:           AMBERT=.TRUE.
468: C466: C
469: C  csw34> set same flag for AMBER12 for now - should be safe!467: C  csw34> set same flag for AMBER12 for now - should be safe!
470: C468: C
471:        ELSE IF (WORD.EQ.'AMBER12') THEN469:        ELSE IF (WORD.EQ.'AMBER12') THEN
472:           AMBERT=.TRUE.470:           AMBERT=.TRUE.
473: C471: C
474: C  Set AMH potential.472: C  Set AMH potential.
475: C473: C


r29143/nodes.f90 2015-11-17 23:34:47.849951090 +0000 r29142/nodes.f90 2015-11-17 23:34:48.605961228 +0000
  1: MODULE NODES  1: MODULE NODES
  2:      USE COMMONS,ONLY : SLURMT, PBST, CHECKSPT, DEBUG, HOSTNAME  2:      USE COMMONS,ONLY : SLURMT, PBST, CHECKSPT
  3:      USE PORFUNCS  3:      USE PORFUNCS
  4:      IMPLICIT NONE  4:      IMPLICIT NONE
  5:      SAVE  5:      SAVE
  6:   6: 
  7:      INTEGER :: JPN,NNODES,NNLEN,MYSTAT  7:      INTEGER :: JPN,NNODES,NNLEN
  8:      CHARACTER(LEN=80),ALLOCATABLE,DIMENSION(:) :: NODENAME  8:      CHARACTER(LEN=80),ALLOCATABLE,DIMENSION(:) :: NODENAME
  9:      CHARACTER(LEN=80) :: USERNAME, RANSTRING  9:      CHARACTER(LEN=80) :: USERNAME, RANSTRING
 10:      CHARACTER(LEN=100) :: WORKINGDIRECTORY 10:      CHARACTER(LEN=100) :: WORKINGDIRECTORY
 11:      CHARACTER(LEN=1000) :: TOTALJOBSTRING 11:      CHARACTER(LEN=1000) :: TOTALJOBSTRING
 12: !    CHARACTER(LEN=1000) :: KILLSTRING 12: !    CHARACTER(LEN=1000) :: KILLSTRING
 13:      CHARACTER(LEN=200) :: PATHSTRING 13:      CHARACTER(LEN=200) :: PATHSTRING
 14:      LOGICAL :: SSHPARALLEL=.FALSE., YESNO 14:      LOGICAL :: SSHPARALLEL=.FALSE., YESNO
 15:  15: 
 16:      CHARACTER(LEN=120) :: NODESTRING 16:      CHARACTER(LEN=120) :: NODESTRING
 17:      CHARACTER(LEN=120) :: NODEN 17:      CHARACTER(LEN=120) :: NODEN
132:                 WRITE(*,'(2A)') 'GetNodes> Working in directory ',TRIM(ADJUSTL(WORKINGDIRECTORY))132:                 WRITE(*,'(2A)') 'GetNodes> Working in directory ',TRIM(ADJUSTL(WORKINGDIRECTORY))
133:                 CLOSE(1)133:                 CLOSE(1)
134:              ENDIF134:              ENDIF
135:           ELSE135:           ELSE
136:              IF (.NOT.PBST) THEN136:              IF (.NOT.PBST) THEN
137:                 PRINT '(A)','getnodes> Interactive run - not checking for nodes.info file'137:                 PRINT '(A)','getnodes> Interactive run - not checking for nodes.info file'
138:              ELSE138:              ELSE
139:                 PRINT '(A)','getnodes> No nodes.info file - assuming no OPTIM jobs required for PBS run'139:                 PRINT '(A)','getnodes> No nodes.info file - assuming no OPTIM jobs required for PBS run'
140:              ENDIF140:              ENDIF
141:           ENDIF141:           ENDIF
142:  
143:           ! Find hostname for the node that PATHSAMPLE is running on - necessary for scp in ssh jobstring 
144:           CALL MYSYSTEM(MYSTAT,DEBUG,'hostname > currentnode') 
145:           INQUIRE(FILE='currentnode',EXIST=YESNO) 
146:           IF (YESNO) THEN 
147:              OPEN(UNIT=125,FILE='currentnode',STATUS='OLD') 
148:              READ(125,'(A)') HOSTNAME 
149:              CLOSE(125) 
150:              CALL MYSYSTEM(MYSTAT,DEBUG,'rm currentnode') 
151:           ELSE 
152:              WRITE(*,'(A)') 'getnodes> Current node unknown - stopping' 
153:              STOP 
154:           END IF 
155:      END SUBROUTINE GETNODES142:      END SUBROUTINE GETNODES
156: 143: 
157:      SUBROUTINE SSHSUBMIT(ICPU,STAT,JOBSTRING,CONNSTR1,LDEBUG)144:      SUBROUTINE SSHSUBMIT(ICPU,STAT,JOBSTRING,CONNSTR1,LDEBUG)
158:           USE PORFUNCS, ONLY: SYSTEM_SUBR145:           USE PORFUNCS, ONLY: SYSTEM_SUBR
159:           USE COMMONS, ONLY: CHARMMT, ZSYM, COPYFILES, COPYOPTIMT, BHINTERPT, BISECTT, SSHT, HOSTNAME146:           USE COMMONS, ONLY: CHARMMT, ZSYM, COPYFILES, COPYOPTIMT, BHINTERPT, BISECTT, SSHT
160:           IMPLICIT NONE147:           IMPLICIT NONE
161:           REAL HARVEST148:           REAL HARVEST
162: 149: 
163:           INTEGER,INTENT(IN) :: ICPU150:           INTEGER,INTENT(IN) :: ICPU
164:           LOGICAL,INTENT(IN) :: LDEBUG151:           LOGICAL,INTENT(IN) :: LDEBUG
165:           INTEGER,INTENT(OUT) :: STAT152:           INTEGER,INTENT(OUT) :: STAT
166:           CHARACTER(LEN=*) :: JOBSTRING,CONNSTR1153:           CHARACTER(LEN=*) :: JOBSTRING,CONNSTR1
167: 154: 
168:           INTEGER :: MYSTATUS155:           INTEGER :: MYSTATUS
169:           CHARACTER(LEN=80) :: NODE156:           CHARACTER(LEN=80) :: NODE
170:           CHARACTER(LEN=100) :: TEMPCOPYFILESDIR 
171: 157: 
172:           NODE=TRIM(ADJUSTL(NODENAME(ICPU)))158:           NODE=TRIM(ADJUSTL(NODENAME(ICPU)))
173: !159: !
174: !  There is a problem here with the return status. We cannot get the return status160: !  There is a problem here with the return status. We cannot get the return status
175: !  from the OPTIM job - instead we get the return status from rsh, which will be 0 unless161: !  from the OPTIM job - instead we get the return status from rsh, which will be 0 unless
176: !  something in the job submission actually fails. If we have a path.info.connstr1 file162: !  something in the job submission actually fails. If we have a path.info.connstr1 file
177: !  then we can analyse it, so this rsh status is actually the important one!163: !  then we can analyse it, so this rsh status is actually the important one!
178: !164: !
179: !  Job submission now changed to use a single system call and one large job string.165: !  Job submission now changed to use a single system call and one large job string.
180: !  Putting all the data transfer etc. in the original rsh, so that it runs on166: !  Putting all the data transfer etc. in the original rsh, so that it runs on
181: !  the compute node, should avoid any other rcp, rsync or rsh !167: !  the compute node, should avoid any other rcp, rsync or rsh !
182: !168: !
183: !  Incredibly, we occasionally see problems with jobs interfering with each other because169: !  Incredibly, we occasionally see problems with jobs interfering with each other because
184: !  the same process id is chosen. Add a random number to the temporary directory name...170: !  the same process id is chosen. Add a random number to the temporary directory name...
185: !171: !
186:           CALL RANDOM_SEED()172:           CALL RANDOM_SEED()
187:           CALL RANDOM_NUMBER(HARVEST)173:           CALL RANDOM_NUMBER(HARVEST)
188:           WRITE(RANSTRING,'(F10.5)') HARVEST174:           WRITE(RANSTRING,'(F10.5)') HARVEST
189: 175: 
190:           PATHSTRING='/scratch/' // TRIM(ADJUSTL(USERNAME)) // '/' // CONNSTR1 // '.' // TRIM(ADJUSTL(RANSTRING))176:           PATHSTRING='/scratch/' // TRIM(ADJUSTL(USERNAME)) // '/' // CONNSTR1 // '.' // TRIM(ADJUSTL(RANSTRING))
191:  
192:           ! Put COPYFILES into temporary directory so contents can be copied as a group to avoid chopping up COPYFILES string 
193:           ! *.connstr1 also put into temporary directory to avoid unnecessarily long jobstring 
194:           TEMPCOPYFILESDIR = connstr1 // '-tempcopyfiles' 
195:           CALL MYSYSTEM(MYSTAT,LDEBUG,'mkdir ' // TRIM(ADJUSTL(TEMPCOPYFILESDIR))) 
196:           CALL MYSYSTEM(MYSTAT,LDEBUG,'cp *.' // connstr1 // ' ' // TRIM(ADJUSTL(COPYFILES)) // ' ' // TRIM(ADJUSTL(TEMPCOPYFILESDIR))) 
197:  
198: !         TEMPSTRING=" sed -e 's/^/kill -9 /' poo2 > poo3 ; "177: !         TEMPSTRING=" sed -e 's/^/kill -9 /' poo2 > poo3 ; "
199: 178: 
200: ! csw34> KILLSTRING created a killfile which contained the process ids of the OPTIM jobs spawned by PATHSAMPLE.179: ! csw34> KILLSTRING created a killfile which contained the process ids of the OPTIM jobs spawned by PATHSAMPLE.
201: !        This was necessary as some of the clusters did not clean up stray OPTIM jobs which were running if 180: !        This was necessary as some of the clusters did not clean up stray OPTIM jobs which were running if 
202: !        PATHSAMPLE died. This has now been fixed. The code will remain here in case it is needed in the future.181: !        PATHSAMPLE died. This has now been fixed. The code will remain here in case it is needed in the future.
203: !          KILLSTRING='echo "ssh ' // TRIM(NODE) // ' quote ps -f | grep ' // TRIM(ADJUSTL(CONNSTR1)) // &182: !          KILLSTRING='echo "ssh ' // TRIM(NODE) // ' quote ps -f | grep ' // TRIM(ADJUSTL(CONNSTR1)) // &
204: !  &                  ' | grep -v ssh | grep -v bash | grep -v PATH | grep -v grep > poo1 ; ' // &183: !  &                  ' | grep -v ssh | grep -v bash | grep -v PATH | grep -v grep > poo1 ; ' // &
205: !  &                  ' cut -c10-15 poo1 > poo2 ; ' // TEMPSTRING // &184: !  &                  ' cut -c10-15 poo1 > poo2 ; ' // TEMPSTRING // &
206: !  &                  ' chmod +x poo3 ; ./poo3 quote"  >> killfile'185: !  &                  ' chmod +x poo3 ; ./poo3 quote"  >> killfile'
207: !186: !
208: ! Build up the complete rsh command step by step:187: ! Build up the complete rsh command step by step:
209: ! (1) make the scratch directory on the node. -p flag means no error is generated if the directory already exists.188: ! (1) make the scratch directory on the node. -p flag means no error is generated if the directory already exists.
210:           IF (SLURMT.OR.SSHT) THEN189:           IF (SLURMT.OR.SSHT) THEN
211:              TOTALJOBSTRING= 'ssh ' // TRIM(node) // ' " mkdir -p ' // TRIM(ADJUSTL(PATHSTRING)) 190:              TOTALJOBSTRING= 'ssh ' // TRIM(node) // ' " mkdir -p ' // TRIM(ADJUSTL(PATHSTRING)) 
212:           ELSE191:           ELSE
213:              TOTALJOBSTRING= 'rsh ' // TRIM(node) // ' " mkdir -p ' // TRIM(ADJUSTL(PATHSTRING)) 192:              TOTALJOBSTRING= 'rsh ' // TRIM(node) // ' " mkdir -p ' // TRIM(ADJUSTL(PATHSTRING)) 
214:           ENDIF193:           ENDIF
215: ! (2) copy data from WORKINGDIRECTORY to the scratch directory on the node194: ! (2) move to the WORKINGDIRECTORY (saves unpicking the COPYFILES list!)
216: !     - scp used instead of copy as cannot rely on the contents of NFS-mounted directories to look the same on both nodes 195:           TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) // ' ; cd ' // TRIM(ADJUSTL(WORKINGDIRECTORY))
 196: ! (3) copy data from WORKINGDIRECTORY to the scratch directory on the node. 
217: !     Note that if any file is missing an error condition will result, and subsequent commands will fail.197: !     Note that if any file is missing an error condition will result, and subsequent commands will fail.
218:           TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) &198:           TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) &
219:   &          // ' ; scp -r ' // TRIM(ADJUSTL(HOSTNAME)) // ':' // TRIM(ADJUSTL(WORKINGDIRECTORY)) // '/' & 199:   &          // ' ; cp -r  *.' // connstr1 // ' ' // TRIM(ADJUSTL(COPYFILES)) // ' ' // TRIM(ADJUSTL(PATHSTRING))
220:   &          // TRIM(ADJUSTL(TEMPCOPYFILESDIR)) // '/* ' // TRIM(ADJUSTL(PATHSTRING)) // ' ; rm -rf ' & 200: ! (4) move to the scratch directory on the node
221:   &          // TRIM(ADJUSTL(WORKINGDIRECTORY)) // '/' // TRIM(ADJUSTL(TEMPCOPYFILESDIR)) 
222: ! (3) move to the scratch directory on the node 
223:           TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) // ' ; cd ' // TRIM(ADJUSTL(PATHSTRING))201:           TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) // ' ; cd ' // TRIM(ADJUSTL(PATHSTRING))
224: ! (3b) delete any existing path.info.* file (a very rare but not impossible condition!)202: ! (4b) delete any existing path.info.* file (a very rare but not impossible condition!)
225:           TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) // ' && rm -f path.info.* '203:           TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) // ' && rm -f path.info.* '
226: ! (4) run the OPTIM job204: ! (5) run the OPTIM job
227:           TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) // ' ; ' // JOBSTRING205:           TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) // ' ; ' // JOBSTRING
228: ! (5) copy results back206: ! (6) copy results back
229:           IF (LDEBUG) THEN ! copy everything back 207:           IF (LDEBUG) THEN ! copy everything back 
230:              TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) // ' ; scp *.' // connstr1 &208:              TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) // ' ; cp  *.' // connstr1 &
231:    &                      // ' ' // TRIM(ADJUSTL(HOSTNAME)) // ':' // TRIM(ADJUSTL(WORKINGDIRECTORY))209:    &                      // ' ' // TRIM(ADJUSTL(WORKINGDIRECTORY))
232:           ELSEIF (COPYOPTIMT.AND.(BHINTERPT.OR.BISECTT)) THEN ! copy path.info, OPTIM210:           ELSEIF (COPYOPTIMT.AND.(BHINTERPT.OR.BISECTT)) THEN ! copy path.info, OPTIM
233:              TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) &211:              TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) &
234:    &            // ' ; scp OPTIM* min.data.info* ' // TRIM(ADJUSTL(HOSTNAME)) // ':'// TRIM(ADJUSTL(WORKINGDIRECTORY))212:    &            // ' ; cp OPTIM* min.data.info* ' // TRIM(ADJUSTL(WORKINGDIRECTORY))
235:           ELSEIF (COPYOPTIMT) THEN ! copy path.info, OPTIM, odata and finish213:           ELSEIF (COPYOPTIMT) THEN ! copy path.info, OPTIM, odata and finish
236: !            IF (CHECKSPT) THEN214: !            IF (CHECKSPT) THEN
237: !               TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) &215: !               TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) &
238: !  &            // ' ; scp OPTIM* ' // TRIM(ADJUSTL(HOSTNAME)) // ':' // TRIM(ADJUSTL(WORKINGDIRECTORY))216: !  &            // ' ; cp OPTIM* ' // TRIM(ADJUSTL(WORKINGDIRECTORY))
239: !            ELSE217: !            ELSE
240:                 TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) &218:                 TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) &
241:    &            // ' ; scp OPTIM* *info* ' // TRIM(ADJUSTL(HOSTNAME)) // ':' // TRIM(ADJUSTL(WORKINGDIRECTORY))219:    &            // ' ; cp OPTIM* *info* ' // TRIM(ADJUSTL(WORKINGDIRECTORY))
242: !            ENDIF220: !            ENDIF
243:           ELSE ! we only really need path.info or min.data.info221:           ELSE ! we only really need path.info or min.data.info
244: !            IF (BHINTERPT.OR.BISECTT) THEN222: !            IF (BHINTERPT.OR.BISECTT) THEN
245: !               TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) &223: !               TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) &
246: !  &            // ' ; scp min.data.info* ' // TRIM(ADJUSTL(HOSTNAME)) // ':' // TRIM(ADJUSTL(WORKINGDIRECTORY))224: !  &            // ' ; cp min.data.info* ' // TRIM(ADJUSTL(WORKINGDIRECTORY))
247: !            ELSE225: !            ELSE
248:                 TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) &226:                 TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) &
249:    &            // ' ; scp *info* ' // TRIM(ADJUSTL(HOSTNAME)) // ':' // TRIM(ADJUSTL(WORKINGDIRECTORY))227:    &            // ' ; cp *info* ' // TRIM(ADJUSTL(WORKINGDIRECTORY))
250: !            ENDIF228: !            ENDIF
251:           ENDIF229:           ENDIF
252: ! (6) remove the scratch directory230: ! (7) remove the scratch directory
253:           TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) // ' ; rm -r ' // TRIM(ADJUSTL(PATHSTRING)) // ' " '231:           TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) // ' ; rm -r ' // TRIM(ADJUSTL(PATHSTRING)) // ' " '
254: !     or don;t rm it for debugging232: !     or don;t rm it for debugging
255: !         TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) // ' ; ' // ' " '233: !         TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) // ' ; ' // ' " '
256: !         TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) // ' ; ls ' // TRIM(ADJUSTL(PATHSTRING)) // ' " '234: !         TOTALJOBSTRING=TRIM(ADJUSTL(TOTALJOBSTRING)) // ' ; ls ' // TRIM(ADJUSTL(PATHSTRING)) // ' " '
257:           IF (LDEBUG) PRINT '(2A)', 'nodes> complete job string: ',TRIM(ADJUSTL(TOTALJOBSTRING)) 235:           IF (LDEBUG) PRINT '(2A)', 'nodes> complete job string: ',TRIM(ADJUSTL(TOTALJOBSTRING)) 
258: ! (7) submit the job for real236: ! (8) submit the job for real
259: !         CALL SYSTEM_SUBR(TRIM(ADJUSTL(KILLSTRING)),MYSTATUS)  237: !         CALL SYSTEM_SUBR(TRIM(ADJUSTL(KILLSTRING)),MYSTATUS)  
260:           CALL SYSTEM_SUBR(TRIM(ADJUSTL(TOTALJOBSTRING)),MYSTATUS)  238:           CALL SYSTEM_SUBR(TRIM(ADJUSTL(TOTALJOBSTRING)),MYSTATUS)  
261:           STAT=MYSTATUS239:           STAT=MYSTATUS
262: 240: 
263:      END SUBROUTINE SSHSUBMIT241:      END SUBROUTINE SSHSUBMIT
264: END MODULE NODES242: END MODULE NODES


r29143/submitoptimjob.f90 2015-11-17 23:34:48.037953612 +0000 r29142/submitoptimjob.f90 2015-11-17 23:34:48.789963695 +0000
 29: CHARACTER(LEN=256) MYJOBSTRING 29: CHARACTER(LEN=256) MYJOBSTRING
 30: INTEGER :: CHILDPID, CONNID, STATUS 30: INTEGER :: CHILDPID, CONNID, STATUS
 31: LOGICAL LDEBUG, CHARMMT, UNRST 31: LOGICAL LDEBUG, CHARMMT, UNRST
 32:  32: 
 33: CALL GETPID_SUBR(CHILDPID) 33: CALL GETPID_SUBR(CHILDPID)
 34: ! PRINT '(A,2I8)','in SUBMITOPTIMJOB, CHILDPID,CONNID=',CHILDPID,CONNID 34: ! PRINT '(A,2I8)','in SUBMITOPTIMJOB, CHILDPID,CONNID=',CHILDPID,CONNID
 35: WRITE(CONNSTR1,'(I10)') CHILDPID 35: WRITE(CONNSTR1,'(I10)') CHILDPID
 36: WRITE(CONNSTR2,'(I10)') CONNID 36: WRITE(CONNSTR2,'(I10)') CONNID
 37: CALL MYSYSTEM(STATUS,LDEBUG,'mv odata.' // TRIM(ADJUSTL(CONNSTR2)) // ' odata.' // TRIM(ADJUSTL(CONNSTR1)) ) 37: CALL MYSYSTEM(STATUS,LDEBUG,'mv odata.' // TRIM(ADJUSTL(CONNSTR2)) // ' odata.' // TRIM(ADJUSTL(CONNSTR1)) )
 38:  38: 
  39: ! csw34> check that the move has been completed before continuing
  40: CALL WAIT_FOR_FILE('odata.' // TRIM(ADJUSTL(CONNSTR1)), 2, 10)
  41: 
 39: IF (MACHINE) THEN 42: IF (MACHINE) THEN
 40:      CALL MYSYSTEM(STATUS,LDEBUG,'mv points1.inp.' // TRIM(ADJUSTL(CONNSTR2)) // ' points1.inp.' // TRIM(ADJUSTL(CONNSTR1)) ) 43:      CALL MYSYSTEM(STATUS,LDEBUG,'mv points1.inp.' // TRIM(ADJUSTL(CONNSTR2)) // ' points1.inp.' // TRIM(ADJUSTL(CONNSTR1)) )
 41:      IF (VERIFY('connect',JOBSTRING).EQ.0) & 44:      IF (VERIFY('connect',JOBSTRING).EQ.0) &
 42:      & call mysystem(STATUS,LDEBUG,'mv points2.inp.' // TRIM(ADJUSTL(CONNSTR2)) // ' points2.inp.' // TRIM(ADJUSTL(CONNSTR1)) ) 45:      & call mysystem(STATUS,LDEBUG,'mv points2.inp.' // TRIM(ADJUSTL(CONNSTR2)) // ' points2.inp.' // TRIM(ADJUSTL(CONNSTR1)) )
 43: else ! preprocess odata.XXX to include correct name instead of input.crd 46: else ! preprocess odata.XXX to include correct name instead of input.crd
 44:      CALL SYSTEM('sed -e "s/input.crd/input.crd.' // TRIM(ADJUSTL(CONNSTR1)) // '/"  odata.' // TRIM(ADJUSTL(CONNSTR1)) & 47:      CALL SYSTEM('sed -e "s/input.crd/input.crd.' // TRIM(ADJUSTL(CONNSTR1)) // '/"  odata.' // TRIM(ADJUSTL(CONNSTR1)) &
 45:           &                 // ' > temp.'//TRIM(ADJUSTL(CONNSTR1))) 48:           &                 // ' > temp.'//TRIM(ADJUSTL(CONNSTR1)))
 46:      CALL SYSTEM('mv temp.'//TRIM(ADJUSTL(CONNSTR1)) // ' odata.' // TRIM(ADJUSTL(CONNSTR1)) ) 49:      CALL SYSTEM('mv temp.'//TRIM(ADJUSTL(CONNSTR1)) // ' odata.' // TRIM(ADJUSTL(CONNSTR1)) )
 47:  50: 
 48:      IF (VERIFY('connect',JOBSTRING).EQ.0) & 51:      IF (VERIFY('connect',JOBSTRING).EQ.0) &


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0