Run Control Parameter Handling: RCP Reference Manual Version 3.6 Harrison B. Prosper Rajendran Raja Fermi National Accelerator Laboratory P.O. Box 500, Batavia, Illinois 60510 10-FEB-1989 Revised 14-JUL-1992 CONTENTS CHAPTER 1 GENERAL DESCRIPTION 1.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . 1-1 1.2 FORMAT OF AN RCP INPUT FILE . . . . . . . . . . . 1-2 CHAPTER 2 WRITE-UPS 2.1 INRCP . . . . . . . . . . . . . . . . . . . . . . 2-1 2.2 EZADD . . . . . . . . . . . . . . . . . . . . . . 2-2 2.3 EZASIZ . . . . . . . . . . . . . . . . . . . . . . 2-2 2.4 EZBANK . . . . . . . . . . . . . . . . . . . . . . 2-3 2.5 EZBOOK . . . . . . . . . . . . . . . . . . . . . . 2-3 2.6 EZCDAT . . . . . . . . . . . . . . . . . . . . . . 2-4 2.7 EZCHAIN . . . . . . . . . . . . . . . . . . . . . 2-4 2.8 EZCHEK . . . . . . . . . . . . . . . . . . . . . . 2-5 2.9 EZCOPY . . . . . . . . . . . . . . . . . . . . . . 2-5 2.10 EZDBUG . . . . . . . . . . . . . . . . . . . . . . 2-6 2.11 EZDECODE . . . . . . . . . . . . . . . . . . . . . 2-6 2.12 EZDELETE . . . . . . . . . . . . . . . . . . . . . 2-7 2.13 EZSQUEEZE . . . . . . . . . . . . . . . . . . . . 2-7 2.14 EZDIR . . . . . . . . . . . . . . . . . . . . . . 2-8 2.15 EZDROP . . . . . . . . . . . . . . . . . . . . . . 2-8 2.16 EZDUMP . . . . . . . . . . . . . . . . . . . . . . 2-9 2.17 EZEND . . . . . . . . . . . . . . . . . . . . . . 2-9 2.18 EZERROR . . . . . . . . . . . . . . . . . . . . 2-10 2.19 EZFETCH . . . . . . . . . . . . . . . . . . . . 2-10 2.20 EZFILL . . . . . . . . . . . . . . . . . . . . . 2-11 2.21 EZFLIS . . . . . . . . . . . . . . . . . . . . . 2-12 2.22 EZFSIZ . . . . . . . . . . . . . . . . . . . . . 2-12 2.23 EZGET . . . . . . . . . . . . . . . . . . . . . 2-13 2.24 EZGET1 . . . . . . . . . . . . . . . . . . . . . 2-13 2.25 EZGET2 . . . . . . . . . . . . . . . . . . . . . 2-14 2.26 EZGETA . . . . . . . . . . . . . . . . . . . . . 2-15 2.27 EZGETC . . . . . . . . . . . . . . . . . . . . . 2-16 2.28 EZGETC1 . . . . . . . . . . . . . . . . . . . . 2-17 2.29 EZGETC2 . . . . . . . . . . . . . . . . . . . . 2-17 2.30 EZGETI . . . . . . . . . . . . . . . . . . . . . 2-18 2.31 EZGETN . . . . . . . . . . . . . . . . . . . . . 2-19 2.32 EZGETNAME . . . . . . . . . . . . . . . . . . . 2-19 2.33 EZGETS . . . . . . . . . . . . . . . . . . . . . 2-20 2.34 EZGETT . . . . . . . . . . . . . . . . . . . . . 2-20 2.35 EZGETNEXTNAME . . . . . . . . . . . . . . . . . 2-21 2.36 EZGETNEXTVALUETYPE . . . . . . . . . . . . . . . 2-21 2.37 EZGETSIZE . . . . . . . . . . . . . . . . . . . 2-22 2.38 EZGETVALUETYPE . . . . . . . . . . . . . . . . . 2-23 2.39 EZGNXT . . . . . . . . . . . . . . . . . . . . . 2-24 2.40 EZGREM . . . . . . . . . . . . . . . . . . . . . 2-25 2.41 EZGSET . . . . . . . . . . . . . . . . . . . . . 2-25 2.42 EZHDRC . . . . . . . . . . . . . . . . . . . . . 2-26 2.43 EZHDRI . . . . . . . . . . . . . . . . . . . . . 2-27 2.44 EZIN . . . . . . . . . . . . . . . . . . . . . . 2-27 2.45 EZINIT . . . . . . . . . . . . . . . . . . . . . 2-28 2.46 EZLOC . . . . . . . . . . . . . . . . . . . . . 2-29 2.47 EZMAKE . . . . . . . . . . . . . . . . . . . . . 2-29 2.48 EZMERGEBANKS . . . . . . . . . . . . . . . . . . 2-30 2.49 EZMERGEPARAMS . . . . . . . . . . . . . . . . . 2-30 2.50 EZMOVE . . . . . . . . . . . . . . . . . . . . . 2-31 2.51 EZMRCP . . . . . . . . . . . . . . . . . . . . . 2-31 2.52 EZNAME . . . . . . . . . . . . . . . . . . . . . 2-32 2.53 EZOUT . . . . . . . . . . . . . . . . . . . . . 2-33 2.54 EZPAR . . . . . . . . . . . . . . . . . . . . . 2-33 2.55 EZPICK . . . . . . . . . . . . . . . . . . . . . 2-34 2.56 EZPICKNOMSG . . . . . . . . . . . . . . . . . . 2-34 2.57 EZPRINT . . . . . . . . . . . . . . . . . . . . 2-35 2.58 EZRDA . . . . . . . . . . . . . . . . . . . . . 2-35 2.59 EZRDF . . . . . . . . . . . . . . . . . . . . . 2-36 2.60 EZREAD . . . . . . . . . . . . . . . . . . . . . 2-37 2.61 EZRNAM . . . . . . . . . . . . . . . . . . . . . 2-38 2.62 EZSETC . . . . . . . . . . . . . . . . . . . . . 2-39 2.63 EZSETS . . . . . . . . . . . . . . . . . . . . . 2-39 2.64 EZSHUNT . . . . . . . . . . . . . . . . . . . . 2-40 2.65 EZSIZE . . . . . . . . . . . . . . . . . . . . . 2-40 2.66 EZTELL . . . . . . . . . . . . . . . . . . . . . 2-41 2.67 EZCOPYARRAY . . . . . . . . . . . . . . . . . . 2-41 2.68 EZFILEOPEN . . . . . . . . . . . . . . . . . . . 2-42 2.69 EZFILEOPEN1 . . . . . . . . . . . . . . . . . . 2-42 2.70 EZGETARRAY . . . . . . . . . . . . . . . . . . . 2-43 2.71 EZGETCHARS . . . . . . . . . . . . . . . . . . . 2-44 2.72 EZGETSTRINGS . . . . . . . . . . . . . . . . . . 2-44 2.73 EZRENAMEPARAM . . . . . . . . . . . . . . . . . 2-45 2.74 EZREPLACEARRAY . . . . . . . . . . . . . . . . . 2-45 2.75 EZSETUPCOMPACK . . . . . . . . . . . . . . . . . 2-46 APPENDIX A HOW SRCP WORKS APPENDIX B MODIFYING AND CREATING SRCP BANKS DYNAMICALLY APPENDIX C BANK STRUCTURE APPENDIX D RCP ERROR CODES APPENDIX E PROGRAM EXAMPLE 4 CHAPTER 1 GENERAL DESCRIPTION 1.1 INTRODUCTION Many programs in D0 are data driven; that is, their operation is determined in part by the input and manipulation of parameters. By a parameter we mean simply an identifier (a name) associated with one or more values which can be of type INTEGER, REAL, REAL in E-format, BOOLEAN, LOGICAL or CHARACTER, or a mixture thereof. The standard ways of injecting parameters into a program are to use o DATA statements (perhaps as BLOCK data programs) o PARAMETER statements o or input from a TEXT file. We shall not dwell on the obvious advantages of using TEXT files and simply say that the Run Control Parameters (RCP) package makes use of that method. The RCP mechanism was developed originally for use in the CALIB program. Since then the package has undergone considerable improvement and is now properly regarded as a general utility for parameter handling. The handling of geometrical parameters for D0GEANT provides a splendid example of its use, as is the handling of parameters in the offline software via RCP files. For a tutorial guide to RCP see RCP_GUIDE.MEM in D0$SRCP_UTIL$DOCS (To be WRITTEN). With one call to the routine EZREAD (see also EZRDF and INRCP) a TEXT file containing parameters, an RCP file, can be read into a ZEBRA bank, with the generic name of SRCP; thereafter, parameters can be retrieved and modified with calls to EZGET. One can use EZREAD to create many RCP banks in memory. ZEBRA distinguishes each bank by a bank number, however, the user distinguishes each RCP bank by its UNIQUE alias, that is, the name specified in the call to EZREAD. 1-1 GENERAL DESCRIPTION 1.2 FORMAT OF AN RCP INPUT FILE An RCP file may contain one or more of the following commands or constructs. o \START bank-name [! comment] : : \STOP o ! [comment] o \SIZE number-of-values [number-of-records] [! comment] o identifier value [! comment] o \ARRAY array-name [! comment] : : : : : [! comment] : : : \END [! comment] All text after an ! mark is ignored. The \SIZE command, if used, must be in the first line of the file. This command is used to pre-allocate space in an RCP bank (See Appendix A); if it is not used then the RCP bank will be created with the defaults: number-of-values = 2000 and number-of-records = 200. A RECORD in this context is an IDENTIFIER plus an optional COMMENT, a COMMENT line, or a BLANK line. The program EZFSIZ can be used to scan an RCP input file, compute the precise values of these quantities and add the \SIZE parameter at the start of the file. It is a good idea to add 20, say, to the values given by EZFSIZ in case a few extra comment lines are added later. (Note: EZFSIZ already adds 10 to each parameter.) The only exception to the above rule is if the \START command is used, in which case the \START command MUST come FIRST followed on the SECOND line by \SIZE (if used). The \START command is used by EZMAKE (see also INRCP) which calls EZREAD with the name given in that command. The \START ... \STOP block defines the contents of one RCP bank; several of these blocks can be concatenated into a single file if needed. EZMAKE can read the file and direct each block to the named RCP bank. (Note: It is simpler to use INRCP to read in RCP files rather than EZMAKE directly. See the example program EZEXAMPLE.) The syntax for a simple parameter is: identifier value [! comment] Example 1 Number_of_channels 768 ! This is a silly comment Example 2 On_off_switch FALSE 1-2 GENERAL DESCRIPTION Example 3 Richard_III 'Thou lump of foul deformity' A file could consist of nothing more than a list of simple parameters. It may, however, be more convenient to group some values into arrays. The syntax for an array parameter is: \ARRAY array-name [! comment] : : [! comment] \END [! comment] Example 1 \ARRAY apple_pie ! and Motherhood 'YUM' .FALSE. -3.30E-4 ! Note random mix of value types ! The line below contains 6 values 1 2 3 4 9000 12.4566 'Wino' 'The time has come the walrus said' \END Example 2 \ARRAY RANDOM_STUFF 'Susan' 'Fred Bloggs the 3rd' 'Ronald Reagan' 'Jane' \END NOTE Note that a string of length n characters is packed into m = INT((n+3)/4) 32-bit words. It is not necessary to count the number of entries in an array block. The \END command specifies the end-of-array. It is only necessary to ensure that the buffer which will receive the array elements, when these data are retrieved with EZGET, is big enough to hold all the elements. The number of elements in an array can be returned using CALL EZGETA (parameter-name,0,0,0,number-elements,ier) Example CALL EZGETA ('RANDOM_STUFF',0,0,0,NUMBER,IER) 1-3 GENERAL DESCRIPTION Each data type recognized by the RCP package is assigned a TYPE code. The values are given in Table 1 below. Table 1 Type Type code Symbol Comment INTEGER 1 VTINT REAL 2 VTREAL REAL (E-format) 3 VTREFM LOGICAL 4 VTLOG CHARACTER string 10 + n VTCHR n = string length The value types are defined in the file D0$OFFLINE_UTIL$GENERAL:VALUE.DEF. It is better to use the symbolic constants rather than the constants themselves so that your program will be insensitive to possible changes in the value of these constants. Below is an example of a simple input file. ooooooo ! Simple parameter file ! Number_of_channels 768 ! This is a silly comment On_off_switch FALSE ! Flag ! ! Example of mixed array ! \ARRAY apple_pie ! and Motherhood 'YUM ' .FALSE. -3.30E-4 ! Note random mix of value types 1 2 3 4 9000 12.4566 ! This line contains 6 values 'Wino' \END ! ! Example of how to input an array of strings ! \ARRAY RANDOM_STUFF 'Susan' 'Fred Bloggs the 3rd' 'Jane' \END ooooooo Once this file has been read in by EZRDF or EZREAD the parameters can be accessed with EZGET. For example, suppose one wants to access the second name in array RANDOM_STUFF. This would be done as indicated below. 1-4 GENERAL DESCRIPTION CALL EZGETS ('RANDOM_STUFF',2,STRING,LENGTH,IER) If you want to return an array of strings then use CALL EZ_GET_CHARS ('RANDOM_STUFF',NSTRINGS,STRINGS,IER). 1-5 CHAPTER 2 WRITE-UPS 2.1 INRCP SUBROUTINE INRCP (FILNAM, IERR) Author(s) : Harrison B. Prosper Purpose and Methods Purpose and Methods : Read into memory an RCP file. Each \START .. \STOP block in the file will be directed to a different SRCP bank whose name is specified in the \START statement. Note: INRCP creates stand-alone SRCP banks. Use EZPICK to select an SRCP bank, and use EZSHUNT to move a selected bank into some ex- isting structure. If only one \START .. \STOP block exists in the file then only one bank will be created. There should be no more than 20 \START .. \STOP blocks per file. Inputs : FILNAM [C*] Logical name of RCP file (and bank) Outputs : IERR [I] 0 - OK Created 11-NOV-1989 2-1 WRITE-UPS 2.2 EZADD SUBROUTINE EZADD (RECORD,NREC,IER) Author(s) : Harrison B. Prosper Purpose and Methods ) Add the parameter(s) specified in the array of strings RECORD() to the current RCP bank. Inputs : RECORD(*) [C*] One or more strings NREC [I] Number of strings Outputs : IER [I] Error code Controls: Created 11-NOV-1989 2.3 EZASIZ SUBROUTINE EZASIZ (LUNIN,LUNOUT,FILNAM,NVALS,NPARS) Author(s) : Harrison B. Prosper, Chip Stewart Purpose and Methods Create a new RCP file with the \SIZE parameter inserted at the start of the file. The input file should be already OPEN. The input file is first rewound and EZSIZE is called to calculate the size of the file. The file is rewound again and its records are transferred to a new file after the size parameter has been written out. NOTE: The sizes written are 10 greater than calculated. Inputs : LUNIN Unit number of input file; file MUST already be OPEN. LUNOUT Unit number of output file; opened/closed internally. FILNAM Name of output file (opened with STATUS='NEW') Outputs : NVALS Calculated number of values in output file NPARS Calculated number of parameters (+ comments) in output file. Controls: None 2-2 WRITE-UPS Created 19-JAN-1989 2.4 EZBANK SUBROUTINE EZBANK Author(s) : Harrison B. Prosper Purpose and Methods Simple routine to help debug RCP banks interactively. Inputs : None Outputs : None Controls: None Created 6-JUN-1990 2.5 EZBOOK SUBROUTINE EZBOOK (BKNAME,WRDIDS,NUMIDS,NUMVAL) Author(s) : Harrison B. Prosper Purpose and Methods Create a stand-alone RCP-type bank . Use EZSHUNT/EZMOVE to move the RCP bank about in store /ZEBSTP/. Use EZPICK to select one of possibly many RCP banks so that subsequent calls to EZxxxx routines will refer to the selected bank. Inputs : BKNAME Name assigned to RCP bank. Can be up to 32 characters long. WRDIDS Number or words per record NUMIDS Number of records per RCP bank NUMVAL Number of values per RCP bank Outputs : NONE Error codes returned by logical function EZERR (IER). See also EZERR_REPORT(IER,STRING) 0 --- OK Controls: None 2-3 WRITE-UPS Created 23-SEP-1988 2.6 EZCDAT SUBROUTINE EZCDAT (LUNIN,LUNOUT) Author(s) : Harrison B. Prosper Purpose and Methods Convert DATA statements into formatted lines that can be read by EZRDF . Inputs : LUNIN Logical unit number of input file LUNOUT Logical unit number of output file Outputs : None Controls: None Created 15-SEP-1988 2.7 EZCHAIN SUBROUTINE EZCHAIN(BKNAME,NNAME) Author(s) : Harrison B. Prosper Purpose and Methods Chain together the specified stand-alone RCP banks. Inputs : BKNAME(*) [C*] Names of RCP banks to be chained NNAME [I] Number of banks to chain. Outputs : Controls: Created 10-MAY-1990 2-4 WRITE-UPS 2.8 EZCHEK FUNCTION EZCHEK (PARAM1) Author(s) : Harrison B. prosper Purpose and Methods Check if specified parameter is in the currently selected RCP bank. Returned values: TRUE if parameter present Inputs : PARAM1 Name of parameter (CHARACTER string) Outputs : None Error code. Use EZERR to check for errors. See also EZREPORT_ERROR(IER,STRING). 0 --> OK Controls: None Created 7-MAR-1989 2.9 EZCOPY SUBROUTINE EZCOPY(RCP_FROM,RCP_TO,LTO,IZLINK,IER) Author(s) : Rajendran Raja Purpose and Methods Copy RCP filename RCPFROM to file name RCPTO hanging at Link IC(LTO-IZLINK). If IZLINK = 0, it will create a Stand alone bank at LTO Inputs : RCP_FROM= bankname to copy from RCP_TO = Bankname to copy to LTO, IZLINK If IZLINK > 0, RCP_TO will be at IC(LTO-IZLINK) in /ZEBSTP/ Outputs : LTO IS OUTPUT IF IZLINK =0. It will create a standalone bank IER = Error flag Controls: IZLINK 2-5 WRITE-UPS Created 11-DEC-1990 2.10 EZDBUG SUBROUTINE EZDBUG (LUN) Author(s) : Harrison B. Prosper Purpose and Methods Print out names and addresses of RCP banks. Inputs : LUN Logical unit number of output stream Outputs : None Controls: None Created 23-SEP-1988 2.11 EZDECODE SUBROUTINE EZDECODE (LUN,NAME,VALS,TYPES,TOTAL,IER) Author(s) : Harrison B. Prosper Purpose and Methods Read and decode next parameter in an RCP file and return the value(s) and value type(s). The RCP file must be opened externally. This routine may be called in a loop to return all the parameters within an RCP file without creating an RCP bank. Inputs : LUN [I] Input unit number (opened externally) Outputs : NAME [C*] Name of parameter VALS(*) [R*] Parameter values. Use equivalences to convert between REAL, INTEGER and LOGICAL. Use routine DHTOC convert from REAL to CHARACTER. TYPES(*) [I*] Value types (see RCP_MANUAL). TOTAL [I] Total number of values/parameter name IER [I] non-zero for End-Of-Data. 2-6 WRITE-UPS Controls: None Created 13-SEP-1989 2.12 EZDELETE SUBROUTINE EZDELETE (PARAM,IER) Author(s) : Harrison B. Prosper Purpose and Methods Delete the specified parameter from the currently selected RCP bank. Inputs : PARAM [C*] Name of parameter Outputs : IER [I] 0 --- OK Controls: Created 18-DEC-1990 2.13 EZSQUEEZE SUBROUTINE EZSQUEEZE(NWORDS) Author(s) : Harrison B. Prosper Purpose and Methods Compress the currently selected RCP bank to the smallest possible size. Inputs : None Outputs : NWORDS [I] Number of freed up words Controls: Created 8-MAR-1994 2-7 WRITE-UPS 2.14 EZDIR SUBROUTINE EZDIR (BKNAME,NNAME) Author(s) : Harrison B. Prosper Purpose and Methods Return a list of all the RCP banks in memory. Inputs : None Outputs : BKNAME(*) [C*] Names of RCP banks NNAME [I] Number of names Controls: BKNAME(1) Use this to specify a wildcard search, either: xxx*, *xxx or *xxx*. Created 10-MAY-1990 2.15 EZDROP SUBROUTINE EZDROP (BKNAME) Author(s) : Harrison B. Prosper Purpose and Methods Drop the specified RCP bank. EZPICK and EZRSET is called internally. If the specified RCP bank is at the head of a chain of RCP banks then all banks within that chain will be dropped. Inputs : BKNAME [C*] Name of RCP bank. Use EZERR(IER) to check for errors: 0 --- OK -1 --- Bank not found Outputs : None Controls: None Created 30-APR-1990 2-8 WRITE-UPS 2.16 EZDUMP SUBROUTINE EZDUMP (PRUNIT,LBANK,SWITCH) Author(s) : Rajendran Raja Purpose and Methods Print the contents of given RCP bank. Inputs : PRUNIT Print Unit LBANK Bank address. If ZERO use address of currently selected bank. Use EZPICK to select bank. SWITCH -1 Printout of RCP bank in SORTED order 0 Printout of RCP bank in ORIGINAL order 1 Printout of RCP bank in ORIGINAL and SORTED order 2 Printout a list of identifiers only. Outputs : None Error codes 0 ---- OK -1 ---- RCP bank address is zero Created 27-NOV-1987 2.17 EZEND SUBROUTINE EZEND Author(s) : Harrison B. Prosper Purpose and Methods Complete construction of RCP bank. This routine MUST be called after filling an RCP bank with EZADD. Note: If an RCP bank has not been selected the routine simply returns. Inputs : None Outputs : None Controls: None Created 29-SEP-1988 2-9 WRITE-UPS 2.18 EZERROR FUNCTION EZERROR (IER) Author(s) : Harrison B. Prosper Purpose and Methods Set TRUE if IER not equal to ZERO. Use this function after a call to an RCP routine to test for errors. Use the routine EZGETERRORTEXT(IER,STRING) to return a string describing error given error code. Inputs : None Outputs : IER Error code 0 --- OK. NO ERROR. Controls: None ENTRY EZGET_ERROR_TEXT (IER,STRING) Created 23-SEP-1988 2.19 EZFETCH SUBROUTINE EZFETCH (PARAM,MAXBUF,NBUF,BUFFER,IER) Author(s) : Harrison B. Prosper Purpose and Methods Print the RCP parameter PARAM to the array of character strings ) BUFFER(). Inputs : PARAM [C*] Parameter name. MAXBUF [I] Maximum number of records to return Outputs : NREC [I] Number of records returned BUFFER(*)[C*] Array of character strings IER [I] 0 --- OK. Controls: None 2-10 WRITE-UPS Created 12-JUN-1991 2.20 EZFILL SUBROUTINE EZFILL (IDENTF,REMARK,NUMBER,TYPE,TOTAL) Author(s) : Harrison B. Prosper Purpose and Methods Write a record to previously selected RCP bank. Use EZPICK to select bank. Call EZEND after one or more calls to EZFILL in order to complete construction of the bank. The RCP bank will be automatically extended if there is not enough room for the new record(s). This is signaled by setting ERRSRC = 1; use EZERROR to return Error code. IMPORTANT: Use equivalences to mix reals, integers and logicals and use DCTOH (UCTOH) to convert from characters to reals or integers. Inputs : IDENTF [C*] Name of identifier Up to 32 characters REMARK [C*] Short comment NUMBER(*) Value(s) TYPE(*) [C*] Type of parameter I INTEGER, R REAL, L LOGICAL, C CHARACTER NOTE: If two strings are consecutive the last TYPE of the first string should be replaced with either an & or $ symbol to delimit the string. IMPORTANT: The string length is rounded up to nearest multiple of 4. TOTAL [C*] Number of values Outputs None Use EZERR to check for errors and to return error code. See also EZGET_ERROR_TEXT. 0 --- OK Controls: None Created 27-SEP-1988 2-11 WRITE-UPS 2.21 EZFLIS PROGRAM EZFLIS Author(s) : Harrison B. Prosper Purpose and Methods Produce a list of the parameter names in an RCP text file. Inputs : Outputs : Controls: Created 23-NOV-1988 2.22 EZFSIZ PROGRAM EZFSIZ Author(s) : Chip Stewart Purpose and Methods Scan an RCP text file and compute the number of identifiers (including comments) and values it contains, then update the \SIZE parameter. Scans over multiple banks and checks for some types of RCP errors. Errors are flagged int eh file and in the interactive messages. RCPTEST should be run on the file if there is any question about the nature of the error. This verion replaces a previous EZFSIZ but the code is almost complete re-done. Created 7-MAY-1991 2-12 WRITE-UPS 2.23 EZGET SUBROUTINE EZGET (PARAM1,IVAL,IER) Author(s) : Rajendran Raja Purpose and Methods Return the value(s) associated with the identifier PARAM1 from a pre-selected RCP bank. Inputs : PARAM1 [C*] Name of parameter (CHARACTER string) Outputs : IVAL(*) Value(s) pertaining to name ``PARAM1''. IER [I] Error code 0 --> OK -1 --> Variable not found -2 --> Bank not found Controls: None Calls: EZGETA Created 27-NOV-1987 2.24 EZGET1 SUBROUTINE EZGET1 (ID,JSTART,JEND,JSTEP,IVAL,IER) Author(s) : Harrison B. Prosper Purpose and Methods Return the value(s) associated with the parameter index ID from the currently selected RCP bank. Use EZPICK to select an RCP bank. If the parameter file has been read in with the routine EZRDF then the RCP bank hanging from STPH (via SCPH) will be automatically selected. EZGET1 is the same as EZGET except that the array indices are given explicitly and access is by the index ID. This avoids all the character decoding done in EZGET. Use EZSET1 to set values. See also EZGET2. Use EZGETI to get index ID associated with a parameter. 2-13 WRITE-UPS Inputs : ID [I] Parameter ID JSTART [I] First array index. If JSTART = 0 then the length of the array is returned in IVAL. JEND [I] Last array index JSTEP [I] Step size: DO I = JSTART, JEND, JSTEP Outputs : IVAL(*) Value(s) pertaining to parameter ID. IER Error code. Use EZGET_ERROR_TEXT(IER,STRING) 0 --> OK Controls: None ENTRY EZSET1 (ID,JSTART,JEND,JSTEP,IVAL,IER) Created 6-APR-1989 2.25 EZGET2 SUBROUTINE EZGET2 (ID,JSTART,JEND,JSTEP,IVAL,TYPE,NUMV,TOTAL,IER) Author(s) : Harrison B. prosper Purpose and Methods Return data and types associated with parameter index ID from a pre-selected RCP bank. See also EZGET1. Inputs : ID [I] Parameter index JSTART [I] Value of first DO loop index. If zero Parameter size is returned in IVAL and NUMV and TYPE is set to 1. JEND [I] Value of Last DO loop index. If zero then the parameter size will be assumed, that is, the number of values/parameter ID. JSTEP [I] Value of step in DO loop. If zero, then 1 will be assumed. Outputs : IVAL(*) Value(s) pertaining to ID. TYPE(*) [I*] Value type(s) NUMV [I] Number of values returned TOTAL [I] Total number of values/parameter ID IER [I] Error code 2-14 WRITE-UPS Error code. Use EZERR to check for errors. See also EZGET_ERROR_TEXT(IER,STRING) 0 --> OK ENTRY EZSET2 (ID,JSTART,JEND,JSTEP,IVAL,TYPE,NUMV,TOTAL,IER) Note: For EZSET2 the values of arguments NUMV and TOTAL are not used. However, their values are altered by EZSET2 and have the same meaning as for EZGET2. Controls: None Created 7-MAR-1989 2.26 EZGETA SUBROUTINE EZGETA (PARAM1,JSTART,JEND,JSTEP,IVAL,IER) Author(s) : Harrison B. Prosper Purpose and Methods Get value(s) of variable PARAM1 from a pre-selected RCP bank. Use EZPICK to select an RCP bank. EZGETA is the same as EZGET except that the array indices are given explicitly, thereby avoiding the string decoding done in EZGET. Use the entry point EZSETA to set values. See also EZGET1. Inputs : PARAM1 [C*] Name of parameter JSTART [I] First array index. If JSTART = 0 then the length of the array is returned in IVAL. JEND [I] Last array index JSTEP [I] Index step DO I = JSTART, JEND, JSTEP Outputs : IVAL(*) Value(s) pertaining to name PARAM1. IER Error code 0 --> OK -1 --> Variable not found -2 --> Bank not found Controls: None 2-15 WRITE-UPS ENTRY EZSETA (PARAM1,JSTART,JEND,JSTEP,IVAL,IER) Created 6-APR-1989 2.27 EZGETC SUBROUTINE EZGETC (PARAM,ISTART,NCHAR,STRING,ERROR) Author(s) : Harrison B. Prosper Purpose and Methods Get Character string from array PARAM in the currently selected RCP bank. Each string is assumed to be begin at position ISTART in the array and to be NCHAR characters long. If NCHAR is ZERO then the length of the string is assumed to be 32 characters. Inputs : PARAM Name of array parameter containing string ISTART Starting position of string in array NCHAR Number of characters to return Outputs : STRING Returned string (256 characters maximum) ERROR 0 --- OK. See error codes for EZGET. Controls: None Created 11-MAR-1989 2-16 WRITE-UPS 2.28 EZGETC1 SUBROUTINE EZGETC1 (IARRAY,ITYPE,IPOINT,STRING,LENGTH) Author(s) : Harrison B. Prosper Purpose and Methods Assuming a string begins at IARRAY(IPOINT) return it, and its length, in the variables STRING and LENGTH, respectively. Use EZGETVALUETYPE to return the arrays IARRAY and ITYPE for the specified RCP parameter. IMPORTANT: Upon exit the pointer IPOINT is updated so that it points to the first word after the string. This routine is useful for decoding an RCP parameter, of mixed type, which contains character strings. Inputs : IARRAY(*) [I] Array of values ITYPE(*) [I] Array of types IPOINT [I] Pointer to start of string in array IARRAY. Outputs : IPOINT [I] Pointer to word after string STRING [C*] Character string LENGTH [I] Length of character string Controls: None Created 12-DEC-1989 2.29 EZGETC2 SUBROUTINE EZGETC2 (IARRAY,ITYPE,IPOINT,STRING,LENGTH) Author(s) : Harrison B. Prosper Purpose and Methods Assuming a string begins at IARRAY(IPOINT) return it, and its length, in the variables STRING and LENGTH, respectively. Use EZGETVALUETYPE to return the arrays IARRAY and ITYPE for the specified RCP parameter. IMPORTANT: Upon exit the pointer IPOINT is updated so that it points to the first word after the string. This routine is useful for decoding an RCP parameter, of mixed type, which contains character strings. 2-17 WRITE-UPS Inputs : IARRAY(*) [I] Array of values ITYPE(*) [I] Array of types (in upper word) IPOINT [I] Pointer to start of string in array IARRAY. Outputs : IPOINT [I] Pointer to word after string STRING [C*] Character string LENGTH [I] Length of character string Controls: None Created 12-DEC-1989 2.30 EZGETI SUBROUTINE EZGETI (PARAM1,ID,IER) Author(s) : Harrison B. prosper Purpose and Methods Get Index associated with parameter PARAM1. The index ID can then be used with EZGET1 and EZSET1 for fast access to parameters. IMPORTANT: Parameter names MUST be given in upper case. Inputs : PARAM1 Name of parameter (CHARACTER string) Outputs : ID Index associated with parameter PARAM1. IER Error code. See EZGET_ERROR_TEXT. 0 --> OK Controls: None Created 21-APR-1989 2-18 WRITE-UPS 2.31 EZGETN SUBROUTINE EZGETN (ID,NAME,N) Author(s) : Harrison B. prosper Purpose and Methods Return Name of parameter with index ID. Inputs : ID Identifier index Outputs : NAME Name of parameter (32-chars. max) N Number of characters in name Error codes. Use EZERR to check for errors. 0 --> OK See also EZGET_ERROR_TEXT. Controls: None Created 13-NOV-1988 2.32 EZGETNAME SUBROUTINE EZGETNAME (LADDR,BKNAME) Author(s) : Harrison B. Prosper Purpose and Methods Given the address LADDR of an RCP bank return the (long) name of that bank. Inputs : LADDR [I] Address of RCP bank Outputs : BKNAME [C*] Name of RCP bank (Maximum of 32 chars.) Use EZERR(IER) to check for errors. See also EZGET_ERROR_TEXT. Controls: None Created 10-MAY-1990 2-19 WRITE-UPS 2.33 EZGETS SUBROUTINE EZGETS (PARAM,IDX,STRING,LENGTH,IER) Author(s) : Harrison B. Prosper Purpose and Methods Get the IDX'th character string in the array PARAM from the currently selected RCP bank. NOTE: EZGETS works on both mixed and string arrays. Inputs : PARAM Name of array parameter containing string. IDX Index of string. 1--first string, 2--second etc. Outputs : STRING character string. LENGTH String length. IER Error code. 0--> OK. Controls: None Created 12-APR-1989 2.34 EZGETT SUBROUTINE EZGETT (ID,NAME,N,TYPE,SIZE) Author(s) : Harrison B. prosper Purpose and Methods Return Name, type and size of parameter with specified parameter ID. Inputs : ID [I] Identifier index Outputs : NAME [C*] Name of parameter (32-chars. max) N [I] Number of characters in name TYPE [I] Type of identifier. For an array type it will be the type of the FIRST element in the array. Use the value of SIZE to identify an array (SIZE > 1). SIZE [I] Number of values/identifier Error codes. Use EZERR to check for errors. 2-20 WRITE-UPS 0 --> OK See also EZGET_ERROR_TEXT. Controls: None Created 13-NOV-1988 2.35 EZGETNEXTNAME SUBROUTINE EZGET_NEXT_NAME (PARAM,NEXT) Author(s) : Harrison B. Prosper Purpose and Methods Return next parameter in RCP bank. Inputs : None Outputs : PARAM [C*] Parameter name Controls: NEXT [I] Pointer to next name (Set to 1 initially) Created 6-JUN-1990 2.36 EZGETNEXTVALUETYPE SUBROUTINE EZGET_NEXT_VALUE_TYPE(PARAM,VAL,CVAL,TYPE,LVAL,IER,PTR) Author(s) : Harrison B. Prosper Purpose and Methods Return the next value and its type in array PARAM. Set PTR to 1 to get FIRST value. PTR will be updated upon exit. Inputs : PARAM [C*] Name of parameter (32-characters maximum). Outputs : VAL Value; can be returned as INTEGER, REAL or LOGICAL. Use equivalences to convert between INTEGER, REAL and LOGICAL. CVAL [C*] Character value. 2-21 WRITE-UPS TYPE [I] Value type. Type Type id INTEGER 1 REAL 2 REAL (E-format) 3 LOGICAL 4 CHARACTER 10 + n (n=string length) LVAL [I] 1 for INTEGER, REAL or LOGICAL; Length of string for CHARACTER value. IER [I] Status code 0 --> OK 1 --> LAST value Controls: PTR [I] 1 -- Return 1st value. Updated upon exit. Created 29-MAY-1990 2.37 EZGETSIZE SUBROUTINE EZGET_SIZE (PARAM,NVAL,IER) Author(s) : Harrison B. Prosper, Chip Stewart Purpose and Methods Return the array size in full words (32 bits) for identifier PARAM from a pre-selected RCP bank. Inputs : PARAM [C*] Name of parameter (CHARACTER string) Outputs : NVAL Value(s) pertaining to name ``PARAM''. IER [I] Error code 0 --> OK -1 --> Variable not found -2 --> Bank not found Controls: None Calls: EZGETA Created 2-MAR-1992 2-22 WRITE-UPS 2.38 EZGETVALUETYPE SUBROUTINE EZGET_VALUE_TYPE (PARAM,VAL,TYPE,NVAL,IER) Author(s) : Harrison B. Prosper Purpose and Methods ) Return values associated with identifier PARAM in array VAL(). ) For each value return the type in array TYPE(). Use EZSETVALUETYPE to set the values and types. Inputs : PARAM [C*] Name of parameter (32-characters maximum). Outputs : VAL(*) Values; can be returned as INTEGER, REAL or LOGICAL. If the values are of mixed type use equivalences between INTEGER, REAL and LOGICAL to get the correct data conversion and use DHTOC (or UHTOC) to convert to characters. TYPE(*) [I] Value type. Type Type id INTEGER 1 REAL 2 REAL (E-format) 3 LOGICAL 4 CHARACTER 10 + n (n=string length) NVAL [I] Number of values returned IER [I] Status code 0 --> OK See EZGET_ERROR_TEXT(IER,STRING) Controls: Created 9-NOV-1989 2-23 WRITE-UPS 2.39 EZGNXT SUBROUTINE EZGNXT (PREFIX,NID,ID) Author(s) : Harrison B. Prosper Purpose and Methods Return the ID of the next parameter whose name begins with the given prefix. Set the (variable) NID = 1 to get the first parameter (in alphabetical order). Upon exit EZGNXT increments NID by 1 so that on subsequent calls the next parameter ID will be returned. Use EZGETN to get the name of the parameter with index ID. Inputs : PREFIX [C*] Parameter name prefix. NID [I] 1 ---> Get 1st parameter 2 ---> Get 2nd parameter etc. Outputs : ID [I] Parameter ID; 0 --- Parameter not found or no more parameters with given prefix. Controls: None Error code 0 --> OK See EZERR and EZGET_ERROR_TEXT. Created 13-SEP-1989 2-24 WRITE-UPS 2.40 EZGREM SUBROUTINE EZGREM (PARAM1,REMARK,LREM) Author(s) : Harrison B. prosper Purpose and Methods Get REMark associated with parameter PARAM1 from selected RCP bank. Use EZPICK to select an RCP bank. Inputs : PARAM1 Name of parameter (CHARACTER string) Outputs : REMARK String containing comment LREM Length of comment Error code. Use EZERR to check for errors. 0 --> OK -1 --> Variable not found -2 --> Bank not found ENTRY EZSREM (PARAM1,REMARK,LREM) Controls: None Created 7-MAR-1989 2.41 EZGSET SUBROUTINE EZGSET (CHAR1,IVAL,IDX) Author(s) : Rajendran Raja Purpose and Methods Access value(s) of variable CHAR1 in given RCP bank. This calls EZGET or EZSET and bombs if the return code from either of these routines is non-zero. Inputs : CHAR1 Name of datum or data (CHARACTER string) Outputs : IVAL(*) Value(s) pertaining to name ``CHAR1''. 2-25 WRITE-UPS Controls: IDX 1 --> GET value(s), -1 ---> SET value Created 27-NOV-1987 2.42 EZHDRC FUNCTION EZHDRC (BANK1,OPTION1) Author(s) : Harrison B. Prosper Purpose and Methods Return textual RCP header information. Inputs : BANK1 Name of RCP bank. OPTION1 Name of datum required 'VERSION' Program version number 'TIMESTAMP' Creation date and time Outputs : None Error code: 0 --- OK See EZERR and EZGET_ERROR_TEXT. Controls: None Created 9-JAN-1989 2-26 WRITE-UPS 2.43 EZHDRI FUNCTION EZHDRI (BANK1,OPTION1) Author(s) : Harrison B. Prosper Purpose and Methods Return numerical RCP header information. Inputs : BANK1 Name of RCP bank. OPTION1 Name of datum required 'IDENTIFIERS' Number of Identifiers 'VALUES' Number of values 'MAX_IDENTIFIERS' Maximum number of Ids 'MAX_VALUES' Maximum number of values 'WORDS/RECORD' Number of words/record 'WORDS/BANK' Total size of RCP bank Outputs : None Error code: 0 --- OK See EZERR and EZGET_ERROR_TEXT Controls: None Created 3-OCT-1988 2.44 EZIN SUBROUTINE EZIN (LUNIN,BKNAME) Author(s) : Harrison B. Prosper Purpose and Methods Fetch an RCP bank from unit LUNIN and give it the name in BKNAME, if BKNAME is NOT blank; otherwise use the name in the header part of the RCP bank. If this bank is at the head of a chain of RCP banks then ALL RCP banks within the chain will be declared automatically to the EZ routines. Inputs : LUNIN Logical unit of input stream 2-27 WRITE-UPS BKNAME ' ' or name to give to Fetched bank plus the OPTIONAL qualifier /DROP. If /DROP qualifier is used the old rcp-bank is dropped and replaced with the new rcp-bank. If a name is NOT given then name in the header of the RCP-bank is used. Outputs : None Controls: None Created 21-NOV-1988 2.45 EZINIT SUBROUTINE EZINIT Author(s) : Harrison B. Prosper Purpose and Methods Declare ALL RCP banks in /ZEBSTP/ to the EZ routines. This routine would normally be called after ZEBRA banks have been read into /ZEBSTP/. Any RCP banks amongst the banks read in would be automatically declared to the EZ package. The store /ZEBSTP/ is searched sequentially using LZFIDH for RCP banks. Upon finding an RCP bank EZNAME is called with the name obtained from the header section of the RCP bank. NOTE: If you know explicitly where the RCP banks are in /ZEBSTP/ it is clearly quicker to call EZNAME directly. Inputs : None Outputs : None Controls: NOne Created 14-SEP-1989 2-28 WRITE-UPS 2.46 EZLOC SUBROUTINE EZLOC (BANK1,LP) Author(s) : Harrison B. Prosper Purpose and Methods Return address of RCP bank BANK1. By default the RCP bank which hangs below STPH (via SCPH) is called SCPH. Use EZRNAM to rename bank if needed. Inputs : BANK1 Name of RCP bank. Outputs : LP Address of RCP bank (INTEGER). LP > 0 Bank exists LP = 0 Bank does not exist Created 13-MAY-1988 2.47 EZMAKE SUBROUTINE EZMAKE (LUN,RECSIZ,BKNAME,NBANKS) Author(s) : Harrison B. Prosper Purpose and Methods Read an RCP text file containing one or more \START ... \STOP blocks and direct each block to a different RCP bank. Inputs : LUN Logical unit number of input file RECSIZ Record size in 32-bit words (1-->20) If RECSIZ=0 then 20 is assumed (full line). Outputs : BKNAME(*) Name as given in \START commands NBANKS Number of banks created Controls: None Created 9-MAR-1989 2-29 WRITE-UPS 2.48 EZMERGEBANKS SUBROUTINE EZMERGE_BANKS(BANK1,BANK2,BANKOUT,IER) Author(s) : Lupe Howell Purpose and Methods Merges two given RCP banks into another RCP bank. Inputs : BANK1 [C*]: First RCP bank BANK2 [C*]: Second RCP bank Outputs : BANKOUT [C*]: Output RCP bank Controls: IER [I]: If 0 Okay Created 30-OCT-1991 2.49 EZMERGEPARAMS SUBROUTINE EZMERGE_PARAMS(BANKNAME,PARAM,PAREC,ELEMENTS,IER) Author(s) : Lupe Howell Purpose and Methods Merge the element(s) of the given parameter into the same parameter found in BANKNAME. If the given parameter and the one in the bank have a single element merge the two values into an array if their values are not different. Inputs : BANKNAME [C*]: Name of bank to do merge PARAM [C*]: name of the parameter to merge PAREC [I ]: Maximum number of records ELEMENTS[C*(*)]: Record(s) tha belong to the parameter Outputs : IER [I ]: 0 If OK Created 21-NOV-1991 2-30 WRITE-UPS 2.50 EZMOVE SUBROUTINE EZMOVE (BKNAME,LSUP,IZLINK) Author(s) : Harrison B. Prosper Purpose and Methods Move RCP bank BKNAME from the current address and hang a Converted RCP (CRCP) bank beneath the bank whose address is given in LSUP. The link bias is assumed to be -IZLINK. This routine checks to see if link -IZLINK is already occupied and signals an error if it is. NOTE: The CRCP bank is an ASCII bank and is therefore transportable. If you wish to move the RCP bank as is use EZSHUNT. Inputs : BKNAME Name of RCP bank to be moved LSUP Address of supporting bank IZLINK Link from which bank is to be hung Outputs : NONE Use EZERR to return error code 0 --- OK See also EZGET_ERROR_TEXT Controls: None Created 23-SEP-1988 2.51 EZMRCP SUBROUTINE EZMRCP(LBANK,IER) Author(s) : Marcel Demarteau Purpose and Methods Copy an RCP bank with link LBANK from the run division in ZEBCOM to RCP. Inputs : LBANK : Supporting link of bank to be copied to STP Outputs : IER : 0=ok, -1=not successfull Created 20-JUN-1990 2-31 WRITE-UPS 2.52 EZNAME SUBROUTINE EZNAME (BKNAME,LSUPP,IZLINK) Author(s) : Harrison B. Prosper Purpose and Methods Declare an RCP bank to the RCP package. If the RCP bank is part of a tree of banks then LSUPP should be the address of the support bank and IZLINK the link from which the RCP bank hangs. If the RCP bank is a stand-alone bank then IZLINK MUST be set to zero and LSUPP is then taken to be the address of the RCP bank. If BKNAME is ' ' then the RCP bank will be declared with the name given in the header, otherwise it is given the name in BKNAME. If the bank is actually a CRCP (ASCII) bank then it is converted automatically to a stand-alone RCP bank. IMPORTANT: This routine should be called to declare an RCP bank to the RCP package, otherwise the bank will be inaccessible. Inputs : BKNAME Name to assign to bank (up to 32 chars.) LSUPP Address of RCP support bank if IZLINK > zero; otherwise it is the address of the RCP bank itself. Outputs : LSUPP Changed only if IZLINK = 0. Then it will be address of the new stand-alone RCP bank. Error codes 0 --- OK See EZERR and EZGET_ERROR_TEXT. Controls: IZLINK Created 4-OCT-1988 2-32 WRITE-UPS 2.53 EZOUT SUBROUTINE EZOUT (LUNOUT,BKNAME) Author(s) : Harrison B. Prosper Purpose and Methods Save named RCP bank to disk. Use EZIN to fetch it back into memory. Inputs : LUNOUT Unit number of output stream BKNAME Name of structure to be saved Outputs : None Controls: None Created 20-NOV-1988 2.54 EZPAR SUBROUTINE EZPAR (IN,OPTION,PARAM,NPAR) Author(s) : Harrison B. Prosper Purpose and Methods Return parameter names in an RCP TEXT file on disk. Inputs : IN Logical Unit number of input data stream OPTION 'ALL' Return ALL parameter names 'ARRAY' Return ALL array names 'anything' Return ALL non-array names Outputs : PARAM(*) Array of names (character) NPAR Number of parameters Created 13-OCT-1988 2-33 WRITE-UPS 2.55 EZPICK SUBROUTINE EZPICK (BKNAME) Author(s) : Harrison B. Prosper Purpose and Methods Select specified RCP bank so that subsequent calls to the EZxxxx routines will refer to this bank. EZPICK calls can be nested to a maximum depth of 10. Inputs : BKNAME Bank name. Up to 32 characters. Outputs : NONE Use EZERR to return error code 0 --- OK See also EZGET_ERROR_TEXT Controls: None ENTRY EZRSET Purpose and Methods : Re-select previous RCP bank Inputs : None Outputs : None Controls: None Created 23-SEP-1988 2.56 EZPICKNOMSG SUBROUTINE EZPICK_NOMSG (BKNAME,IER) Author(s) : James T. Linnemann Purpose and Methods Exactly the same as EZPICK, except that an error code is returned instead of generating a call to ERRMSG when the bank can't be found Inputs : BKNAME Bank name. Up to 32 characters. Outputs : IER Uses EZERROR to return error code 2-34 WRITE-UPS 0 --- OK See also EZGET_ERROR_TEXT Controls: None Created 7-APR-1992 2.57 EZPRINT SUBROUTINE EZPRINT (LUN,PARAM,IER) Author(s) : Harrison B. Prosper Purpose and Methods Print the RCP parameter PARAM to unit LUN. If LUN = 0 print using INTMSG. Use EZPICK to pick the bank prior to calling this routine. Inputs : LUN [I] Output unit number. PARAM [C*] Parameter name. Outputs : IER [I] 0 --- OK. Controls: None Created 30-MAR-1990 2.58 EZRDA SUBROUTINE EZRDA (RECORD) Author(s) : Harrison B. Prosper Purpose and Methods Read a character array containing parameters and save records and decoded values in the RCP bank which hangs below STPH. The Character data is ordered to allow the use of a binary search to retrieve data from the bank. The RCP bank hanging below STPH (via SCPH) is given the name SCPH by default. It can be renamed with EZRNAM. The RCP bank will be automatically expanded to accomodate new entries. IMPORTANT: The last entry in the array MUST contain the command \STOP. 2-35 WRITE-UPS Inputs : RECORD(*) Character array Outputs : None Controls: None Error codes. Use EZERR to check for code. 0 --- OK 1 --- Bank has been expanded at least once 2 --- Maximum bank size reached. -4 --- FATAL ERROR. IZSCPH link already occupied Created 10-JAN-1989 2.59 EZRDF SUBROUTINE EZRDF (LUN) Author(s) : Rajendran Raja Purpose and Methods Read an RCP file containing parameters and save records and decoded values in the SRCP bank which hangs below STPH. The SRCP bank hanging below STPH (via SCPH) is given the name SCPH by default. It can be renamed with EZRNAM. The RCP bank will be automatically expanded to accomodate new entries. Inputs : LUN Logical Unit number of input data stream Outputs : None Error codes. Use EZERR to check for code. 0 --- OK 1 --- Bank has been expanded at least once 2 --- Maximum bank size reached. -4 --- FATAL ERROR. IZSCPH link already occupied Created 26-NOV-1987 2-36 WRITE-UPS 2.60 EZREAD SUBROUTINE EZREAD (LUN,BKNAME,WRDREC,LSUPP,IZLINK) Author(s) : Rajendran Raja Purpose and Methods Read an RCP file containing parameters and save records and decoded values in an RCP bank. The records are ordered to allow the use of a binary search to retrieve data from the bank. The RCP bank is assigned the name given in BKNAME. The name can be changed with EZRNAM. The file should be opened and closed externally. Note: INRCP is easier to use. Inputs : LUN [I] Logical unit of input stream BKNAME [C*] Name to give to RCP bank WRDREC [I] Number of words/record (=identifier+rem.) LSUPP [I] Address of support bank if > 0. IZLINK [I] Link from which to hang bank. Outputs : None Error codes. Use EZERR to check for code. 0 --- OK 1 --- Bank has been expanded at least once -4 --- FATAL ERROR. IZLINK link already occupied -5 --- Maximum bank size reached. NOTE 1: The RCP bank is created stand-alone if LSUPP is zero; otherwise LSUPP will be taken as the address of the supporting bank from which the RCP bank is to be hung. IZLINK specifies the link. NOTE 2: The RCP bank will be automatically expanded to accomodate new entries. Maximum number of records per bank is given by MAXIDS (2000). A record corresponds either to a parameter IDENTIFIER (perhaps with a COMMENT), a BLANK line, or to a COMMENT line. Arrays specified by an array block \ARRAY array-name [! comment] : \END allow for the input of parameter identifiers associated with more than one value. The absolute total number of values which can be stored in an RCP bank is determined by MAXVAL (65535). Arrays can consist of a mixture of values of different type. 2-37 WRITE-UPS NOTE 3: If the command \SIZE is placed in the FIRST line of the file the number following it will be used to allocate the initial number of place holders for values. The second number, if present, will be used to allocate the initial number of place holders for records (identifiers + comment lines). If the \SIZE command is not used then the following defaults are assumed: DEFVAL = 4000 Number of values DEFIDS = 200 Number of records Created 26-NOV-1987 2.61 EZRNAM SUBROUTINE EZRNAM (BKNAM1,BKNAM2) Author(s) : Harrison B. Prosper Purpose and Methods Rename RCP bank. Inputs : BKNAM1 Old name. Up to 32 characters. BKNAM2 New name Outputs : None Use EZERR to check and return error code 0 --- OK See also EZGET_ERROR_TEXT Controls: None Created 3-OCT-1988 2-38 WRITE-UPS 2.62 EZSETC SUBROUTINE EZSETC (PARAM,ISTART,NCHAR,STRING,ERROR) Author(s) : Harrison B. Prosper Purpose and Methods Store Character string in array PARAM in the currently selected RCP bank. The string is assumed to be begin at position ISTART in the array and to be NCHAR characters long. If NCHAR is ZERO then the length of the string is assumed to be 32 characters. Inputs : PARAM Name of array parameter containing string ISTART Starting position of string in array NCHAR Number of characters in string STRING String to store (256 characters maximum). Outputs : ERROR 0 --- OK. See error codes for EZSET. Controls: None Created 11-MAR-1989 2.63 EZSETS SUBROUTINE EZSETS (PARAM,IDX,STRING,LENGTH,IER) Author(s) : Harrison B. Prosper Purpose and Methods Set the IDX'th character string in the array PARAM of the currently selected RCP bank. NOTE: EZSETS works on both mixed and string arrays. Inputs : PARAM Name of array parameter to receive string. IDX Index of string. 1--first string, 2--second etc. STRING Character string. LENGTH Length of string Outputs : IER Error code. 0--> OK. Controls: None 2-39 WRITE-UPS Created 12-APR-1989 2.64 EZSHUNT SUBROUTINE EZSHUNT(BKNAME,LSUP,IZLINK) Author(s) : Chip Stewart Purpose and Methods Same as EZMOVE but WITHOUT conversion to an ASCII bank. 2.65 EZSIZE SUBROUTINE EZSIZE (LUN,NUMVAL,NUMREC) Author(s) : Harrison B. Prosper Purpose and Methods Read an RCP file containing parameters and return the number of records (identifiers +comment lines+blank lines) and values within file. The file must be opened externally. Inputs : LUN Unit number of input stream Outputs : NUMVAL Number of values NUMREC Number of records (identifiers + comments) Created 16-NOV-1988 2-40 WRITE-UPS 2.66 EZTELL SUBROUTINE EZTELL (BKNAME,NN) Author(s) : Harrison B. Prosper Purpose and Methods Return name of currently selected RCP bank. Inputs : None Outputs : BKNAME Bank name. Up to 32 characters. NN Number of characters in name Controls: None Created 9-MAR-1989 2.67 EZCOPYARRAY SUBROUTINE EZ_COPY_ARRAY(RCPIN,RCPOUT,ARNAME,ARRAY,LARRAY,IER) Author(s) : Rajendran Raja Purpose and Methods COPY A CHARACTER ARRAY OF NAME ARNAME FROM RCPFILE RCPIN TO RCPFILE RCPOUT Inputs : RCPIN = name of RCP input file RCPOUT = name of RCP output file ARNAME = name of array Outputs : ARRAY = contents of array LARRAY = length of array IER is non zero on error Controls: Created 5-APR-1991 2-41 WRITE-UPS 2.68 EZFILEOPEN SUBROUTINE EZ_FILE_OPEN(GTUNIT_ID,RCP_NAME,CHIO,UNIT, Author(s) : Rajendran Raja Purpose and Methods OPENS a file name given in RCPFILE. Inputs : GTUNIT_ID = ID for GT_UNIT RCP_NAME = RCP name containing file name to be opened as a counted character string CHOPT = character option for D0OPEN 'I' input (VAX status OLD, READONLY) 'O' output (VAX status NEW) 'A' append (this option may not be available on all machines) 'F' formatted 'U' unformatted combinations allowed but some are illegal (i.e. 'UF') defaults 'I' and 'F' (i.e. ' ' equivalent to 'IF' or 'FI') Outputs : UNIT = Unit number of opened file FILENAME = name of opened file (obtained from RCP) IER = Error code. Controls: Created 9-NOV-1989 2.69 EZFILEOPEN1 SUBROUTINE EZ_FILE_OPEN1(GTUNIT_ID,RCP_NAME,CHIO,CHAR, Author(s) : Rajendran Raja Purpose and Methods OPENS a file name given in RCPFILE Inputs : GTUNIT_ID = ID for GT_UNIT RCP_NAME = RCP name containing file name to be opened as a counted character string CHOPT = character option for D0OPEN 2-42 WRITE-UPS 'I' input (VAX status OLD, READONLY) 'O' output (VAX status NEW) 'A' append (this option may not be available on all machines) 'F' formatted 'U' unformatted combinations allowed but some are illegal (i.e. 'UF') defaults 'I' and 'F' (i.e. ' ' equivalent to 'IF' or 'FI') CHAR = CHARACTER STRING TO APPEND TO FILE NAME IN RCP Outputs : UNIT = Unit number of opened file FILENAME = name of opened file (obtained from RCP) IER = Error code. Controls: Created 9-NOV-1989 2.70 EZGETARRAY SUBROUTINE EZ_GET_ARRAY (ARRAY_NAME,PARAM_NAME,NPARAM, Author(s) : Lupe Howell, Harrison B. Prosper Purpose and Methods For given array and list of parameters within array return the VALUE, TYPE and REMARK. The array is assumed to have the following structure: aRRAY array-name 'Param-name' value 'Remark' : : : eND Note: Value can be of type INTEGER, REAL, LOGICAL or CHARACTER (enclosed within single quotes). Note: To get ALL the parameters within the array set PARAMNAME(1) to a blank. Inputs : ARRAY_NAME [C*] Name of RCP array PARAM_NAME(*) [C*] Parameter name or key-word (or ' ') NPARAM [I] Number of parameters required Outputs : PARAM_NAME(*) [C*] Parameter names NPARAM [I] Number of parameters within an array IVAL(*) REAL, INTEGER, LOGICAL values CVAL(*) [C*] CHARACTER values TYPE(*) [I] RCP value types REMARK(*) [C*] Associated remarks IER [I] Error code; 0 -- OK Controls: None Created 27-MAR-1990 2-43 WRITE-UPS 2.71 EZGETCHARS SUBROUTINE EZ_GET_CHARS(NAME,NCHR,CHR,IER) Author(s) : Rajendran Raja Purpose and Methods Get the first NCHR contiguous set of character strings from the parameter NAME in the currently selected RCP bank. EZGETCHARS works off both pure string array parameters and arrays of mixed type. The maximum array size is 8000 32-bit words. Inputs : NAME Name of array of strings in RCP bank. Outputs : NCHR Number of character strings CHR(*) Character strings IER 0 --- OK Controls: None Created 2-NOV-1989 2.72 EZGETSTRINGS SUBROUTINE EZ_GET_STRINGS Author(s) : Harrison B. Prosper Purpose and Methods Starting with the ISTRING'th character string return up to MAXSTR character strings from the array parameter NAME in the currently selected RCP bank. The strings do NOT have to be contiguous within the array. Inputs : NAME [C*] Name of parameter array in RCP bank. ISTRING [I] Ordinal position of first string to return. Outputs : MAXSTR [I] Maximum number of strings to return. 0 - return all strings from istring on. NUMSTR [I] Number of strings returned. LENSTR(*)[I] Array of string lengths. STRING(*)[C*] Array of strings 2-44 WRITE-UPS IER [I] 0 --- OK Controls: None Created 3-JUN-1991 2.73 EZRENAMEPARAM SUBROUTINE EZ_RENAME_PARAM(OLD_NAME,NEW_NAME,IER) Author(s) : LUPE HOWELL, Harrison B. Prosper Purpose and Methods Assign a new name to an existing RCP parameter. Inputs : OLD_NAME [C*] Old parameter name Outputs : NEW_NAME [C*] New parameter name IER [I] 0 - OK Controls: Created 31-MAY-1991 2.74 EZREPLACEARRAY SUBROUTINE EZ_REPLACE_ARRAY(RCP_NAME,NEW_ARRAY,LINES,IER) Author(s) : Rajendran Raja Purpose and Methods REPLACE AN EXISTING RCP ARRAY BY AN ARRAY . Inputs : RCP_NAME = NAME OF RCP ARRAY NEW_ARRAY = NEW ARRAY VALUES AS THOUGH THEY ARE IN A ASCII RCP FILE LINES = NUMBER OF LINES TAKEN BY THE NEW_ARRAY IN THE RCP FILE Outputs : IER = NON ZERO ON ERROR Controls: Created 25-FEB-1991 2-45 WRITE-UPS 2.75 EZSETUPCOMPACK SUBROUTINE EZ_SETUP_COMPACK (RCP_FILE,IER) Author(s) : Harrison B. Prosper Purpose and Methods Setup COMPACK via an RCP file. See the note D0$RCPUTIL:EZSETUPCOMPACK.DOC. Inputs : RCP_FILE [C*] Name of RCP-file Outputs : IER [I] 0 --- Ok. Controls: Created 29-MAY-1990 2-46 APPENDIX A HOW SRCP WORKS The routine EZRDF, which calls EZREAD, reads a text file and stores its records (identifier plus optional comment) in the common block /ZEBSTP/ in banks called SRCP. The values pertaining to an identifier are decoded and stored in a different section of the SRCP bank. An order list is created which maps the stored identifiers and values into an ordered list. This then allows the use of a binary search in EZGET to locate a particular parameter. Once located the parameter can be retrieved or modified. In the simplest case one calls EZRDF. This routine reads the file into a special SRCP bank, namely, the one which hangs below the STP bank SCPH. The bank SCPH, in turn, hangs from the STP header bank STPH. EZRDF creates and fills the SCPH bank if it does not yet exist and then creates and fills the SRCP bank. Figure 1 shows the top level STP structure in /ZEBSTP/. +------+ | STPH | +------+ | | | | __________| | | |__________ | __| |__ | | | | | +------+ +------+ +------+ +------+ | STPO | | STPC | | STPN | | SCPH | +------+ +------+ +------+ +------+ | +------+ | SRCP | +------+ Figure 1 It is important to distinguish the two names assigned to SRCP banks: one is the ZEBRA bank name, which is SRCP, and the other is a name, which can be up to 32 characters long, which labels different SRCP banks in /ZEBSTP/. The routine EZRDF assigns the name `SCPH' to the SRCP bank which hangs below SCPH. Any SRCP A-1 HOW SRCP WORKS bank can be moved to another place in /ZEBSTP/ with a call to EZMOVE. Therefore, one way to input different text files into /ZEBSTP/ is by repeated calls to EZRDF, EZRNAM and EZMOVE. (EZRNAM is called to change the name of the SRCP bank `SCPH' to another, unique, name chosen by the user). Access to a particular SRCP bank, thereafter, is obtained by selecting it with a call to EZPICK. When EZRDF creates the SRCP bank it must pre-allocate space in the bank for the parameters. It assigns 20 fullwords (80 characters) to each record. A record is either an identifier plus comment, a comment line, or a blank line. The default space allocation is for a total of 200 records and a total of 2000 values. (Note: one value is associated with each comment line or blank line.) If the pre-allocation is insufficient EZRDF will try to expand the SRCP bank, automatically, following some simple algorithm. However, if this is done too often one can quickly run out of space and trigger a ZEBRA garbage collection! It is therefore better to pre-allocate just enough space for the number of records and values expected. This is done using the \SIZE directive in an RCP file. The amount of space pre-allocated can be reduced further by storing just enough words/record to accomodate the identifier, which is a character string of 32 characters or fewer. You must call EZREAD to do this; in fact EZRDF itself simply calls EZREAD with appropriate defaults. NOTE The routine EZREAD can be used to create SRCP banks either not attached (that is, stand-alone) or attached to a link in an existing bank in /ZEBSTP/. Once created the SRCP banks can be moved about with EZMOVE. The routine INRCP provides an even simpler way to read in RCP files and should be used whenever possible. A-2 APPENDIX B MODIFYING AND CREATING SRCP BANKS DYNAMICALLY Sometimes it is necessary to create and fill an SRCP bank with data internal to a program. Routines are provided which allow parameters to be written to the currently selected SRCP bank. For example, EZRDA is identical in function to EZRDF with the exception that the former reads data from a character array rather than from an RCP file. When using EZRDA, however, the last element of MUST array MUST contain the command \STOP; this indicates to EZRDA that the end-of-data has been reached. (Note: EZRDF checks for end-of-data by looking for either an end-of-file or for the \STOP command; end-of-data is determined by whichever terminator comes first). The routine EZFILL can be used to ADD new parameters to an existing SRCP bank. (See also EZADD.) A bank can be created and filled from scratch by calling first EZBOOK to book the bank and EZFILL, one or more times, to fill it. IMPORTANT: after the last call to EZFILL (or EZADD) it is necessary to call EZEND to complete the creation of the SRCP bank. B-1 APPENDIX C BANK STRUCTURE An SRCP bank is divided into five sections: o HEADER o IDENTIFIER LIST o ORDER LIST o VALUE LIST o TYPE LIST. The HEADER contains general information as well as relative pointers to the remaining four sections. Identifiers are stored in the IDENTIFIER LIST with a pre-determined number of full-words per identifier (normally between 8 and 20). If complete records should be stored (that is, identifiers plus comments) use 20 words/identifier, otherwise use just enough words to accomodate the maximum length of an identifier (8 is a good number). The pointers which map the identifiers into alphabetical order are stored in the ORDER list; the latter also contains the pointers which link together identifiers and their associated values in the VALUE list. The value type (whether real, integer etc.) together with the number of values per identifier are stored in the TYPE list. Refer to document SRCP.ZEB for a detailed bank description. C-1 APPENDIX D RCP ERROR CODES EZS_SUCCESS = 0 EZS_BANK_NOTFOUND = -1 EZS_PARAM_NOTFOUND = -2 EZS_LINK_NOTFREE = -3 EZS_TOOMANY_BANKS = -4 EZS_DUPLICATE_BANK = -5 EZS_DUPLICATE_NAME = -6 EZS_BAD_ARGUMENT = -7 EZS_NOT_STANDALONE = -8 EZS_NOT_SRCPBANK = -9 EZS_MAX_DEPTH =-10 EZS_BAD_VALUE =-11 EZS_ARRAY_TOOLARGE =-12 EZS_BANK_NOTSELECTED =-13 EZS_BANK_EXTENDED =-14 EZS_MAX_PARAMS =-15 EZS_MAX_VALUES =-16 EZS_ENDOF_FILE =-17 EZS_ENDOF_DATA =-18 D-1 APPENDIX E PROGRAM EXAMPLE Here is an example of how to use some of the EZ routines. The program EZEXAMPLE reads the RCP file EZEXAMPLE.RCP and creates an output file to illustrate some of the features of the EZ routines. Note the use of INRCP to read in the RCP file EZEXAMPLE.RCP. E-1 PROGRAM EXAMPLE PROGRAM PROGRAM EZEXAMPLE C---------------------------------------------------------------------- C- C- Purpose and Methods : Simple RCP cxample. C- C- Inputs : C- Outputs : C- Controls: C- C- Created 7-DEC-1989 Harrison B. Prosper C- Updated 15-MAY-1990 Harrison B. Prosper C- C---------------------------------------------------------------------- IMPLICIT NONE C INTEGER LUNOUT PARAMETER( LUNOUT = 20 ) C INTEGER MAXNUM PARAMETER( MAXNUM = 100 ) C INTEGER IVAL(MAXNUM),TYPES(MAXNUM) INTEGER IER,TOTAL,LENGTH INTEGER NUMREC,NUMVAL C LOGICAL EZERR C CHARACTER*32 NAME CHARACTER*80 STRING,STR(10) INTEGER NSTR,I,J,K,L C---------------------------------------------------------------------- C CALL MZEBRA(0) ! (1) Initialize ZEBRA C CALL INZSTP ! (2) Setup /ZEBSTP/ C C **** Read RCP file C CALL INRCP ('EZEXAMPLE_RCP',IER) ! (3) Read RCP file IF ( IER .NE. 0 ) GOTO 999 C C **** Open dump file C OPEN (UNIT=LUNOUT,FILE='DUMP',STATUS='NEW', & CARRIAGECONTROL='LIST') C C **** Pick RCP bank: EZEXAMPLE_RCP C CALL EZPICK ('EZEXAMPLE_RCP') ! (4) Select RCP bank E-2 PROGRAM EXAMPLE C C **** Get values and types from parameter MIXED_ARRAY C C ! (5) Get both values and types CALL EZGET_VALUE_TYPE ('MIXED_ARRAY',IVAL,TYPES,TOTAL,IER) C C WRITE(UNIT=LUNOUT,FMT= & '('' DUMP from EZGET_VALUE_TYPE of MIXED_ARRAY'')') WRITE(UNIT=LUNOUT,FMT='('' '')') WRITE(UNIT=LUNOUT,FMT='('' '',6x,''IVAL'',5x,''TYPE'')') WRITE(UNIT=LUNOUT,FMT='('' '',I10,5x,I4)') & (IVAL(I),TYPES(I),I=1,TOTAL) WRITE(UNIT=LUNOUT,FMT='('' --------------------------'')') C C **** Set 4th string in MIXED_ARRAY C CALL EZSETS ('MIXED_ARRAY',4,'Chopped',10,IER) ! (6) C C **** Get 3rd string in MIXED_ARRAY C CALL EZGETS ('MIXED_ARRAY',3,STRING,LENGTH,IER) ! (7) C C WRITE(UNIT=LUNOUT,FMT='('' DUMP from EZGETS:1'')') WRITE(UNIT=LUNOUT,FMT='('' '')') WRITE(UNIT=LUNOUT,FMT='('' '',A)') '<'//STRING(1:LENGTH)//'>' WRITE(UNIT=LUNOUT,FMT='('' '')') WRITE(UNIT=LUNOUT,FMT='('' --------------------------'')') C C **** Get parameter LONG_STRING C CALL EZGETS ('LONG_STRING',1,STRING,LENGTH,IER) ! (8) C C WRITE(UNIT=LUNOUT,FMT='('' DUMP from EZGETS:2'')') WRITE(UNIT=LUNOUT,FMT='('' '')') WRITE(UNIT=LUNOUT,FMT='('' '',A)') '<'//STRING(1:LENGTH)//'>' WRITE(UNIT=LUNOUT,FMT='('' '')') WRITE(UNIT=LUNOUT,FMT='('' --------------------------'')') C C **** Get first NSTR contiguous strings from array MIXED_ARRAY C CALL EZ_GET_CHARS ('MIXED_ARRAY',NSTR,STR,IER) ! (9) C C WRITE(UNIT=LUNOUT,FMT= & '('' DUMP from EZ_GET_CHARS: MIXED_ARRAY'')') WRITE(UNIT=LUNOUT,FMT='('' '')') DO I = 1,NSTR CALL SWORDS (STR(I),J,L,K) WRITE(UNIT=LUNOUT,FMT='('' '',A)') STR(I)(1:L) E-3 PROGRAM EXAMPLE ENDDO WRITE(UNIT=LUNOUT,FMT='('' --------------------------'')') C C **** Add some parameters to the existing SRCP bank C STR(1) = 'ADDED_VAR_ONE ''Hello there'' ! Added from PROGRAM' STR(2) = '\ARRAY ADDED_VAR_TWO ! Added from PROGRAM' STR(3) = ' 1 2 3 4 5 ''Thou lump of foul deformity''' STR(4) = '\END' NSTR = 4 CALL EZADD (STR,NSTR,IER) ! (10) CALL EZEND ! (11) C C **** Get values and types from parameter DUMP_BANKS C CALL EZGET_VALUE_TYPE ('DUMP_BANKS',IVAL,TYPES,TOTAL,IER) ! (12) C C WRITE(UNIT=LUNOUT,FMT= & '('' DUMP from EZGET_VALUE_TYPE of DUMP_BANKS'')') WRITE(UNIT=LUNOUT,FMT='('' '')') WRITE(UNIT=LUNOUT,FMT='('' '',6x,''IVAL'',5x,''TYPE'')') WRITE(UNIT=LUNOUT,FMT='('' '',I10,5x,I4)') & (IVAL(I),TYPES(I),I=1,TOTAL) WRITE(UNIT=LUNOUT,FMT='('' --------------------------'')') C C **** Dump RCP bank C WRITE(UNIT=LUNOUT,FMT='('' EZDUMP of EZEXAMPLE '')') WRITE(UNIT=LUNOUT,FMT='('' '')') CALL EZDUMP (LUNOUT,0,0) ! (13) WRITE(UNIT=LUNOUT,FMT='('' --------------------------'')') CALL EZRSET ! (14) C C **** Book an NEW empty SRCP bank called MY_NEW_BANK with: C **** 1) room for 20*4 character long records C **** 2) room for 30 such records and C **** 3) room for 40 values C CALL EZBOOK ('MY_NEW_BANK',20,30,40) IF ( EZERR(IER) ) THEN WRITE(UNIT=LUNOUT,FMT='('' Problem booking SRCP bank'')') ELSE C C **** Add parameters to the new SRCP bank C STR(1) = 'ADDED_THIS 12.345E-5 ! Added from PROGRAM' STR(2) = ' ' STR(3) = '! Twas brillig and the slithy tothes...' STR(4) = '\ARRAY AND_ADDED_THAT ! Added from program' STR(5) = ' ''Let all the evil that lurks in the mud''' STR(6) = ' ''hatch out..''' E-4 PROGRAM EXAMPLE STR(7) = '\END' STR(8) = ' ' NSTR = 8 CALL EZADD (STR,NSTR,IER) CALL EZEND ! Complete construction of bank C WRITE(UNIT=LUNOUT,FMT='('' EZDUMP of bank MY_NEW_BANK'')') WRITE(UNIT=LUNOUT,FMT='('' '')') CALL EZDUMP(LUNOUT,0,0) WRITE(UNIT=LUNOUT,FMT='('' --------------------------'')') ENDIF C C **** Dump names and addresses of SRCP banks in memory C CALL EZDBUG (LUNOUT) C C **** Close DUMP file C CLOSE(UNIT=LUNOUT) 999 CONTINUE END E-5 PROGRAM EXAMPLE RCP FILE \START EZEXAMPLE_RCP ! Name of RCP bank \SIZE 200 100 !------------------------------------------------------------------------------ ! Name: EZEXAMPLE.RCP !------------------------------------------------------------------------------ SILLY1 TRUE SILLY2 FALSE HISTOGRAM_05 = 'Histogram_05' HISTOGRAM_06 'Histogram_06' LONG_STRING 'Richard III' \ARRAY MIXED_ARRAY 'DOGG' 'DAYS' 1.1 22 3.3e3 TRUE 'YAHOO SERIOUS' 100 'CAT' 'CATS' 2000 'This is a long string' \END \ARRAY STRING_ARRAY 'You sticks you stones' 'You worse then senseless' 'Things' \END \ARRAY HISTOGRAM_04 'Histogram_04' \END !------------------------------------------------------------------------------ HISTOGRAM_03 3 DO_CAHITS .TRUE. !Control flag for CAHITS package NUM_EVENT_DUMPS 99 !Number of events to dump HISTOGRAM_01 1 \ARRAY DUMP_BANKS 'HEAD' ! Calor stuff 'CAEP' 'CAEH' 'CATE' 'CAPH' 'JETS' 'CACL' \END \STOP E-6 PROGRAM EXAMPLE OUTPUT FILE DUMP from EZGET_VALUE_TYPE of MIXED_ARRAY IVAL TYPE 1195855684 14 1398358340 14 -858963828 2 22 1 1073759822 3 -1 4 1330135385 23 1163075663 23 1431259474 23 538976339 23 100 1 542392643 13 1398030659 14 2000 1 1936287828 31 544434464 31 1869357153 31 1931503470 31 1852404340 31 538976359 31 -------------------------- DUMP from EZGETS:1 -------------------------- DUMP from EZGETS:2 -------------------------- DUMP from EZ_GET_CHARS: MIXED_ARRAY DOGG DAYS -------------------------- DUMP from EZGET_VALUE_TYPE of DUMP_BANKS IVAL TYPE 1145128264 14 1346715971 14 1212498243 14 1163149635 14 1213219139 14 1398031690 14 1279476035 14 E-7 PROGRAM EXAMPLE -------------------------- EZDUMP of EZEXAMPLE \START EZEXAMPLE_RCP \SIZE 82 23 !------------------------------------------------------------------------------ ! Name: EZEXAMPLE.RCP !------------------------------------------------------------------------------ SILLY1 TRUE SILLY2 FALSE HISTOGRAM_05 'Histogram_05' HISTOGRAM_06 'Histogram_06' LONG_STRING 'Richard III' \ARRAY MIXED_ARRAY 20 'DOGG' 'DAYS' 1.1000 22 3300.0000 TRUE 'YAHOO SERIOUS' 100 'Cho' 'CATS' 2000 'This is a long string' \END \ARRAY STRING_ARRAY 14 'You sticks you stones' 'You worse then senseless' 'Things' \END HISTOGRAM_04 'Histogram_04' !------------------------------------------------------------------------------ HISTOGRAM_03 3 DO_CAHITS TRUE !Control flag for CAHITS package NUM_EVENT_DUMPS 99 !Number of events to dump HISTOGRAM_01 1 \ARRAY DUMP_BANKS 7 'HEAD' 'CAEP' 'CAEH' 'CATE' 'CAPH' 'JETS' 'CACL' \END ADDED_VAR_ONE 'Hello there' ! Added from PROGRAM \ARRAY ADDED_VAR_TWO 12 ! Added from PROGRAM 1 2 3 4 5 'Thou lump of foul deformity' E-8 PROGRAM EXAMPLE \END \STOP -------------------------- EZDUMP of bank MY_NEW_BANK \START MY_NEW_BANK \SIZE 17 5 ADDED_THIS 1.2345E-04 ! Added from PROGRAM ! Twas brillig and the slithy tothes... \ARRAY AND_ADDED_THAT 13 ! Added from program 'Let all the evil that lurks in the mud' 'hatch out..' \END \STOP -------------------------- Directory of SRCP banks in /ZEBSTP/ SELECTED BANK: MY_NEW_BANK NUMBER OF BANKS: 2 ID SRCP BANK NAME ADDRESS SUPPORT ADDRESS 1 EZEXAMPLE_RCP 194332 Standalone 0 2 MY_NEW_BANK 193581 Standalone 0 E-9