Converting from BUILD and SANECTRL to Using Shareables
SLD users are encouraged to run their VMS jobs by using shareables.
Shareables are subsets of the SLD code
that have essentially been linked in advance.
The old way to run SLD jobs on VMS was to set up a CETI BUILD file,
and then BLD, LINK and RUN. The LINK stage took a long long time.
With shareables, you don't need it.
To run SLD code from shareables:
That's it. One command and you're off and running.
A simple IDA job is started from shareables.
Then, as you type further commands, additional code is loaded as needed.
The catch with shareables comes when you wish to mix your own code
into the job.
In the old CETI BUILD or VM SANECTRL systems,
you simply filled the names of your new routines into the menus.
Under the shareables system, you must first turn your new code into a
shareable.
Before you try to convert your own job to using shareables,
you should work through the simple example job given in the
SLD Offline Users Workbook Section,
Compile, Link and Run.
Pay particular attention to the section titled
"Is Your Account Correctly Configured?, then do the example compile,
link and run.
Then follow the conversion method outlined below.
If your job is complicated, you may also need to refer to the more
detailed Workbook section on using shareables,
OPT and VEC Files.
A typical BUILD or SANECTRL file has three sections,
-
the BUILD
or SANE section,
-
the IDA section
(this section is optional)
-
the MORTRAN section
(this section is optional)
Notes follow on how to convert each of these three sections to shareables use.
Then some comments are provided regarding
interactive or
batch running.
The BUILD section is delimited by the strings BUILD_BEGIN and BUILD_END.
It controls what code will be loaded to run your job.
-
Header:
This statement can be ignored.
-
Ducs_Dev:
In place of this statement, issue a DUCS DEV command before you start your job.
You may want to start by issuing the command DUCS PROD ALL
to reset any earlier DUCS settings.
Then issue the command DUCS DEV followed by the section names that were in
your "Ducs_Dev" statement.
-
Ducs_Test:
In place of this statement, issue a DUCS TEST command before you start your job.
Issue the command DUCS TEST followed by the section names and directory
specifications that were in your "Ducs_Test" statement.
-
Project_Name:
This statement can be ignored.
-
Exe_Map_Dir:
This statement can be ignored.
-
Default_Dir:
This statement can be ignored.
-
Workspace_Dir:
This statement can be ignored.
-
Generators:
For each generator listed here, put the statement PROCESSOR generator_name
near the beginning of your IDA file (ahead of any Evanal).
-
Simulators:
For each simulator listed here, put the statement PROCESSOR simulator_name
near the beginning of your IDA file (ahead of any Evanal).
-
Reconstructors:
For each reconstructor listed here, put the statement
PROCESSOR reconstructor_name
near the beginning of your IDA file (ahead of any Evanal).
-
Processors:
For each processor listed here, put the statement PROCESSOR processor_name
near the beginning of your IDA file (ahead of any Evanal).
-
Cmdprocs:
For each cmdproc listed here, put the statement CMDPROC cmdproc_name
near the beginning of your IDA file (ahead of any Evanal).
-
Display:
put the statement CMDPROC DSPCMD
near the beginning of your IDA file (ahead of any Evanal).
-
Rndmcmd:
This statement can be ignored.
-
User_Libs:
See a shareables expert if you have code in this section.
You need to learn about shareables OPT files.
-
User_Opt_Files:
See a shareables expert if you have code in this section.
You need to learn about shareables OPT files.
-
User_Obj_Files:
Any code that you had included here now needs to be made into a shareable
or shareables.
Follow the instructions in the SLD Offline Users Workbook sections:
-
User_Includes:
See a shareables expert if you have code in this section.
You need to learn about shareables OPT files.
-
Delete:
This statement can be ignored.
-
Map_File:
This statement can be ignored.
-
Make_Map:
This statement can be ignored.
-
Map_Qualifiers:
This statement can be ignored.
-
Exe_File:
This statement can be ignored.
-
Link_Qualifiers:
This statement can be ignored.
-
Mortran_file:
This statement can be ignored.
-
Mortran_code:
This statement can be ignored.
-
Ida_Profile:
This statement can be ignored.
-
Shell:
This statement can be ignored.
The SANE section is delimited by the strings SANE_BEGIN and SANE_END.
It controls what code will be loaded to run your job.
-
disk =:
If this statement is bringing in the development disk for some DUCS section,
replace it by issuing a corresponding DUCS DEV command before you start
your job.
-
disk =:
If this statement is bringing in some code other than a DUCS development disk,
you will need to transfer the relevant PREPMORT routines to the directory
in which you are running your job (other directories would do, but this is the
simplest way), and then turn this code into a shareable as outlined in the
SLD Offline Users Workbook sections:
-
code =:
Transfer the relevant PREPMORT routines to the directory
in which you are running your job (other directories would do, but this is the
simplest way), and then turn this code into a shareable as outlined in the
SLD Offline Users Workbook sections:
-
text =:
Handle the same as for the code= statement above.
-
txtlib =:
If this statement is referencing a txtlib from a DUCS disk, ignore it.
If this statement is referencing a txtlib from some other disk,
Handle the same as for the code= statement above.
-
external =:
For each routine listed here, put the statement EXTERNAL routine_name
near the beginning of your IDA file (ahead of any Evanal).
If IDA responds "Routine cannot be found in current image", see the
SLD Offline Users Workbook section
OPT and VEC Files
-
generator =:
For each generator listed here, put the statement PROCESSOR generator_name
near the beginning of your IDA file (ahead of any Evanal).
-
simulator =:
For each simulator listed here, put the statement PROCESSOR simulator_name
near the beginning of your IDA file (ahead of any Evanal).
-
reconstructor =:
For each reconstructor listed here, put the statement
PROCESSOR reconstructor_name
near the beginning of your IDA file (ahead of any Evanal).
-
processor =:
For each processor listed here, put the statement PROCESSOR processor_name
near the beginning of your IDA file (ahead of any Evanal).
-
cmdproc =:
For each cmdproc listed here, put the statement CMDPROC cmdproc_name
near the beginning of your IDA file (ahead of any Evanal).
-
display =:
Put the statement CMDPROC DSPCMD
near the beginning of your IDA file (ahead of any Evanal).
-
include =:
An include statement just does whatever is in the corresponding SANEINCL file.
Look at this file and take the appropriate actions outlined above for any
DISK, CMDPROC or PROCESSOR statements in that SANEINCL file.
Any other statements in the SANEINCL file can generally be ignored
(they just load code that should already be in the SLD shareables).
-
prt_... =:
All statements of this form can be ignored.
-
module_name =:
This statement can be ignored.
-
module =:
This statement can be ignored.
-
genmod =:
This statement can be ignored.
-
above_line =:
This statement can be ignored.
-
line_mode =:
This statement can be ignored.
-
ldrtbls =:
This statement can be ignored.
The IDA section is delimited by the strings IDA_BEGIN and IDA_END.
It specifies the set of IDA commands that will be executed when your
job begins.
-
Copy all of the code from this section into a new file.
Give the file any name that you like. Give it the file extension IDA.
-
Also include Processor and Cmdproc statements in this file
for any generators, simulators, reconstructors, processors or cmdprocs
that were listed in the BUILD section.
The MORTRAN section is delimited by the strings
MORTRAN_BEGIN and MORTRAN_END.
It specifies more code that is to be compiled and included in your job.
-
Copy all of the code from this section into a new file.
Give it any file name you like. Most likely this will be the same name
as the first Mortran routine in the file.
Give it the file extension PREPMORT.
-
This code needs to be made into a shareable.
Follow the instructions in the SLD Offline Users Workbook sections:
-
If the Mortran section includes multiple routines, and some of these
routines are completely new while others are new versions of routines
that are already in the SLD shareables, you will need to separate these
routines into separate files and turn each into a shareable separately.
-
If you are running in a separate session from the one in which you
made new shareables for this job, issue any required
@shareable_name.SETUP_COM commands
-
Issue any required DUCS DEV or DUCS TEST commands
-
Start Ida by typing IDA
-
Run your .IDA file by typing @filename
-
From here on, your results should be just as they were when you ran your job
via BUILD. But now, when you realize you need to change one line of your
PREPMORT code, you won't have to wait for that tedious LINK.
-
For complicated projects, where you have modifications to several shareables
and there are many
SETUP_COM
files involved,
the PROJECT
command can help keep things straight.
It is discussed in the SLD Offline Users Workbook.
Create a file of filetype .COM.
Put the following lines into that .COM file.
To run the batch job, issue the command
SUBMIT/QUEUE=queue_name your_com_file_name
Output files will be written to your login directory unless otherwise
specified.
See the document
The SLACVX Batch system for details
on SLACVX batch queue names.
Joseph
Perl
20 September 1995