HLP:SORT.HLP (2 pages) DEC's SORT-MERGE program (about 2 to 4 times more efficient than CSORT). This can be used as a stand-alone program or called from Fortran or Cobol. To be used as a stand-alone basis, first type: R SORT The program will respond with a "*". It is then ready to receive a command line. After a command is entered and completed, a "*" will again be displayed, then another command may be entered, or "/EXIT" or <cntl>C or <cntl>Z may be entered to exit from SORT. Shortest sort command format: out.fil=in.fil/R:n/K:n:m The /CORE switch is usually well worth using for moderate to large files. Savings of a factor of 2 in cost are not difficult to achieve. Left to itself SORT will use large amounts of core without much gain in speed. Try /CORE:20K and try more or less core to really find the most efficient values. Unfortunately the most efficient values not only depend on the size and nature of the file, but also on the initial order so no general rules can be given. General command format for SORT and MERGE: OUT.FIL/SW,SW,...= IN.FIL/SW,SW,.../FUNCTION Functions are: /EXIT takes no arguments /HELP takes no arguments /MERGE see below /RUN (program) file-spec /SORT see below (default) indirect command files may be used: @filspec SORT and MERGE Switches are: /RECORD:<n> n = maximum record size (does not imply /FIXED) /KEY:<n>:<m>:<x> the first two arguments are mandatory <n> position of first KEY character <m> length of the KEY <x> can be ASCENDING, or DESCENDING Key data type switches: /ALPHANUMERIC /COMP1 /COMP3 /COMPUTATIONAL /FORMAT:a<b>.<c> where a<b>.<c> is a FORTRAN format descriptor a = D decimal floating point, double precision E decimal floating point, single precision F decimal fixed point G general <b> = KEY length <c> = number of decimal places /NUMERIC /SIGNED key operational sign is to be used /UNSIGNED key operational sign is to be ignored /ALIGN word align all ASCII output records /ASCII recording mode /BINARY recording mode /EBCDIC recording mode /SIXBIT recording mode /BLOCKED:<n> COBOL blocking factor /FIXED fixed length records /FORTRAN FORTRAN type data file /RANDOM must also use /FORTRAN when sorting Fortran random access files /SEQUENTIAL same as /VARIABLE /VARIABLE variable length records /BUFFER-PAGES<n> number of pages for IO buffers /CHECK when merging check the sequence of the input record key /COLLATE:<a> <a> is one of the following ASCII collating sequence EBCDIC collating sequence FILE:file-spec LITERAL:/collating-sequence/ first char after colon is delimeter ADDRESS:<N> octal address /CORE:<n>K or <n>P specifies low segment core to be used in K (1024 words, default) or in pages (512 words) /ERROR-RETURN:<n> octal address /FATAL-ERROR-CODE:<n> octal address /LEAVES:<n> <n> is the number of records to keep in main memory /PHYSICAL do not use logical names /SUPPRESS-ERROR:<a> <a> is one of the following ALL FATAL INFORMATION NONE WARNING /TEMPORARY-AREAS:directory-name,... /ANSI-ASCII alias STANDARD ASCII for mag-tape /DENSITY:<a> <a> is one of the following 200 556 800 1600 SYSTEM-DEFAULT /INDUSTRY industry compatible (8 bit) mode for mag-tape /LABEL:<a> <a> is one of the following ANSI DEC IBM NONSTANDARD OMITTED STANDARD /PARITY:<a> <a> is one of the following EVEN ODD /REWIND before use /UNLOAD after use Examples: (All the switches below may be abbreviated to one character.) TEST.OUT=TEST.IN/REC:70/KEY:21:10:DESC/CORE:20K a descending sort (default is ascending) TEST.OUT=TEST.IN/REC:70/KEY:21:10/FORMAT:F10.4/CORE:20K sort in numeric order on a field that has a decimal point (which actually may be anywhere in the field) TEST.OUT=TEST.IN/REC:70/KEY:21:10/KEY:41:5/CORE:20K a two key sort, key given first is primary TEST.OUT=TESTA.IN,TESTB.IN/REC:70/KEY:21:10/CORE:20K/MERG merge two similar, pre-sorted files TEST.OUT=TESTA.IN,TESTB.IN/REC:70/KEY:21:10/CORE:20K merge and sort two similar files. That's right, without the "/MERG", the output file will be merged and sorted. For more information see DEC's SORT/MERGE User's Guide. This is a (shock) well written manual that even includes a beginner's section. Multi-line sets can be sorted if they are fixed length. When counting characters, include the <CR> <LF> characters on all lines execpt the last when giving the record length. References to positions in the set must also take into account the <CR> <LF> characters. Note: SORT-MERGE is smart enough to look at all the disks available to you and use them for its temporary sorting files. But it is not smart enough to stop using a disk when its quota is being exceeded! So--If you sort a large file and have a disk with a small quota, you should DISMOUNT that small-quota-disk first. The DISMOUNT would be only a logical opperation--making the system ignore the presence of that disk as far as your job is concerned. Example: .DISMOUNT DSKB [end SORT help file] las .KJOB