1 $! COMMAND FILE TO RUN A MOPAC JOB. THIS FILE SHOULD RESIDE IN THE
2 $! MOPAC DIRECTORY. IT SHOULD BE ACCESSED FROM MOPAC.COM, BUT CAN
3 $! STAND ALONE, IF NECESSARY.
5 $! THE CALL IS $RMOPAC filename directory
14 $ IF P2 .NES. "" THEN SET DEFAULT 'P2'
15 $ OPEN /ERR=NOEND1 DUMMY 'P1'.END ! see if shutdown file is there
16 $ DELETE/NOCONFIRM 'P1'.END;*
18 $ ASSIGN 'P1'.DAT FOR005
19 $ ASSIGN 'P1'.OUT FOR006
20 $ ASSIGN 'P1'.RES FOR009
21 $ ASSIGN 'P1'.DEN FOR010
22 $ ASSIGN SYS$OUTPUT FOR011
23 $ ASSIGN SETUP.DAT SETUP
24 $ ASSIGN 'P1'.ARC FOR012
25 $ ASSIGN 'P1'.GPT FOR013
26 $ ASSIGN 'P1'.SYB FOR016
27 $ ASSIGN 'P1'.UMP FOR020
28 $ ASSIGN 'P1'.END SHUTDOWN
30 $ ON ERROR THEN GOTO AA
31 $ ON CONTROL_Y THEN GOTO AA ! Cleanup if ^Y
33 $ STARTTIME=F$CVTIME(TIM)
34 $ RUN/NODEBUG MOPACDIRECTORY:MOPAC
35 $ STOPTIME=F$CVTIME(F$TIME())
40 $! Get job information to mail to user at end of job.
41 $! This will only happen if the elapsed time of the MOPAC
42 $! run is greater than 2 hours.
44 $! Start the calculation of the time difference
46 $ DAYS1=(F$INTEGER(F$EXTRACT(5,2,STARTTIME))*31) -
47 +F$INTEGER(F$EXTRACT(8,2,STARTTIME))
48 $ DAYS2=(F$INTEGER(F$EXTRACT(5,2,STOPTIME))*31) -
49 +F$INTEGER(F$EXTRACT(8,2,STOPTIME))
50 $ HRS1=F$INTEGER(F$EXTRACT(11,2,STARTTIME))
51 $ HRS2=F$INTEGER(F$EXTRACT(11,2,STOPTIME))
52 $ MIN1=F$INTEGER(F$EXTRACT(14,2,STARTTIME))
53 $ MIN2=F$INTEGER(F$EXTRACT(14,2,STOPTIME))
54 $ TDIFF=(((24*DAYS2)+HRS2)-((24*DAYS1)+HRS1))*60 +MIN2-MIN1
56 $! TDIFF now contains the number of minutess between the start and end
57 $! of the job. If this is greater than 5 then send mail to the user
58 $! (in case the user forgot what was being run)
60 $ IF TDIFF .LE. 60 THEN GOTO AA
62 $! The job lasted for more than 60 minutes by the wall-clock
64 $! Open the .DAT file to get the job data to write into the message file
66 $ OPEN/READ FILE1 'P2''P1'.DAT
72 $! Write data out to file to be mailed to the user.
74 $ STARTDAT=F$EXTRACT(0,17,TIM)
75 $ OPEN/WRITE FILE2 'P2''P1'.SUM
76 $ WRITE FILE2 "Job ''p1' run from directory ''p2' has finished."
78 $ WRITE FILE2 "Run started: ''startdat'"
79 $ WRITE FILE2 "Run time approximately: ''tdiff' minutes"
80 $ write file2 "Information extracted from ''p1'.DAT file follows:"
87 $! Get name of user to whom to mail file
89 $! TO INSTALLER OF MOPAC: ONE OF THE FOLLOWING SETS OF COMMANDS SHOULD
92 $ USENAM == F$EXTRACT(1,F$LENGTH(F$USER())-2,F$USER())
94 $ DIRECTT := 'F$DIRECTORY()'
95 $ LDIRECTT = F$LENGTH(DIRECTT)
96 $ USENAM = F$EXTRACT(1,LDIRECTT-2,DIRECTT)
97 $ PPER = 'F$LOCATE(".",DIRECTT)'
98 $ IF PPER .LT. LDIRECTT THEN USENAM := 'F$EXTRACT(1,PPER-1,DIRECTT)'
101 $! Mail the file to user notifying end-of-job.
103 $ MAIL 'P1'.SUM 'USENAM'
104 $ DELETE/NOCONFIRM 'P1'.SUM;
107 $ SET NOCONTROL_Y ! Continue cleanup if ^Y
108 $ OPEN /ERR=NOEND DUMMY 'P1''PEND' ! see if shutdown file is there
109 $ DELETE/NOCONFIRM 'P1'.END;*