S3 version 2.0 is nearing BETA testing release. There are numerous changes in the S3 syntax and general usage. Version 1.0 basically provided a main routine and a library, and the user had to create or modify a Makefile to generate an executable. The user then ran the S3 program seperately, a two step affair. Version 2.0 now provides the ability to compile, link, and execute an S3 program in one step. To accomplish the compiling and linking, the user needs to specify which object files and libraries are to be used. This is accomplished via an "EMT" file (which basically replaces the Makefile). The general format of the s3 command line is s3exec [-bdefnpv] [-c controlfile] [mainpct] where the command line options are: -b perform runtime dataset bounds checking (same as Ver 1.0) -c Read initialization data from a control file "controlfile" -d Generate reams of debugging information that you probably do not want to see. -e create an executable link based on the main pct file, i.e assume your main pct file was called "fubar.pct". using the commandline "s3exec -e fubar" would create an executable link with the name fubar so that next time you wanted to run fubar.pct, instead of typing "s3exec fubar" you would simply type "fubar". No executable file is created, instead a symbolic link between the name "fubar" and s3exec is created. When you type in "fubar" you are causing s3exec to be run with fubar read in as the main pct/pdt files. -f Translate the PDT and PCT files into FORTRAN 77 as is currently being handled by the s3tof77 utility. (This option is currently under construction...) -n Do not check the object files to see if they are up to date. Note: when used with the executable link created by the -e switch the default action is to NOT check the files and using the -n switch will cause the files to be checked. -p Generate an execution profile of modules called from the pct level. Also generated is a report concerning system resource usage (providing the same information that is available via the "time" command.) -v Verbose execution. Prints information upon entering and exiting each module called from the pct level. Changes and New features: * S3 now uses an EMT file to store information concerning the object modules and libraries used. This is the same information that was needed in the Makefile for Version 1.0. The syntax of the EMT file is as follows: - The main pct is defined by the name of the s3 program, the sub-pcts are defined in the EMT file using the following syntax: spct : : ; where: is the name of the pct as used in the s3 program, is the name of the pct file containing . - The name and type of the executable procedures are defined using the "proc" statement, i.e.: proc : : ; where: is cf, cs, ff, or fs. Note that the df and ds routines are already "known" by the s3 system and should not be explicitly declared. is a comma seperated list of 1 or more subroutine/function names (the name of the executable module, NOT the name of the file containing the module. - The name of the files containing the executable code are given in the "objs" statement, i.e.: objs : ; where: is a comma seperated list of files (primarily ".o" files) that conatin the executable object code. If the files do not exist, s3 will attempt to create them by compiling the (hopefully) source code contained in the file with the same name, but different extension (.f or .c). - The names of any library files to be used are given by the "libs" statement, i.e.: libs : ; where: is a comma seperated list of the names (full path names) of any library (".a" files) to be used. * The Syntax of the PCT file has changed somewhat to provide additional flexibility and clarity. The changes include: - The first three lines of the file no longer have to be in a specific format. The description line (1st line) is no longer required. The same information can be contained in comments. - The syntax of the EOL declaration has been changed to: EOL = ; where is a comma separated list of characters, i.e. EOL = a, b, c, d; Comments can be included in the EOL list as follows: EOL = a, !this is a comment about the pct entry labeled a b, !obviously this would be a comment about b... c, !hopefully by now you get the general idea. d; !do I need a further example? - The syntax of the EOI declaration has been changed to: EOI = ; where is an integer value starting at 0 - Comments now start with an exclamation point (!) instead of a semi-colon (;). The semi-colon is now exclusively used as a statement termination character. - The backslash (\) character is no longer needed to indicate a continuation onto the next line. S3 now simply continues parsing the statement until it reaches a semi-colon. - The syntax of the executable entry lines no longer require the type of the executable module. i.e the syntax is now: