CAPÍTULO 1. FOTOGRAMETRÍA MULTIESPECTRAL AÉREA PARA EL
2.4 Software para la planificación del vuelo y el procesamiento de las imágenes
2.5.4 Configuración del clúster para procesar en red mediante Agisoft Photoscan
This section was deleted by CR13613. 8.4 Runtime Errors
Each HAL/S runtime error is given a mnemonic name, consisting of an error group number and an individual error number within that group. This is true both of system- defined errors and of those which are user-defined (see Chapter 9 of the Language Specification for more information about error definitions). A complete list of system- defined errors may be found in Appendix C.
The response to an error condition encountered at runtime is also either under user or system control. If an “ON ERROR...” statement for that error appears in the program, the clause following ON ERROR determines the action. If this clause is “SYSTEM”, or if no such statement occurs for a particular system-defined error, then a standard action is taken. These various default system actions are also listed in Appendix C. Otherwise the clause after ON ERROR defines some specific action to be taken in lieu of the standard one. This may be some HAL/S statement to be executed, or else may be the keyword “IGNORE”. Thus three types of action may occur - “SYSTEM action”,
11. Runtime conversion from single precision integer to double precision integer is performed by propagating the sign bit of the single precision value
throughout the 16 high order bit positions of the double precision value. 12. Runtime conversion of single precision scalar to double precision scalar is
performed by padding 32 zero bits to the right of the single precision mantissa.
13. Runtime conversion of double precision scalar to character produces a 23 character field with two exponent digits and 17 fractional digits. A double precision scalar literal converts to a single precision character unless the precision of the literal is in some way specified (e.g. with a CONSTANT declare or with a shaping function). See related user’s note 17. See Section 6.1.3 for format.
14. Runtime conversion of single precision scalar to character produces a 14 character field with two exponent digits and 8 fractional digits. See Section 6.1.3 for format.
15. Runtime conversion of a single or double precision integer to a character string results in a variable length field of up to 11 characters. See Section 6.1.3 for format.
16. Runtime conversion from a character string to an integer or scalar can take place only if the character string is in one of the standard input formats for scalar or integer data types. See Section 6.1.2 for details.
17. The DATE built-in function returns a double precision integer whose decimal value is YYDDD where YY are the year and DDD represents the day of the year (i.e., February 1, 1978=78032).
18. The RUNTIME and CLOCKTIME built-in function returns a double precision scalar. RUNTIME returns the simulated elapsed time.
“statement action”, and “IGNORE action”. 8.5 ACCESS Rights
As described in the Language Specification, it is possible to place managerial restrictions on variables declared in COMPOOLS and on external code blocks by means of the ACCESS attribute. The HAL/S-FC compiler enforces such restrictions in the following manner.
Any COMPOOL variable, and any external routine, to which the ACCESS attribute has been applied is considered to be restricted for the compilation unit which is being compiled. The restriction is slightly different for variables than for blocks:
1. Variables with the ACCESS attribute may not have their values changed (but may, e.g., be referenced).
2. Block names may not be used at all.
These restrictions may be selectively overridden for individual variable and block names. The list of these ACCESS controlled names which are to be made available to the unit being compiled is provided to the compiler via an external dataset. This external dataset is known as the Program Access File (PAF). The PAF must have partitioned
organization and is specified by a JCL card provided to the compilation step in the following format:
//HAL.ACCESS DD DSN=<PAF name>,<other parameters>
where the <PAF name> is the dataset name of the PAF without any member
specification. This card should follow the EXEC card which invokes the compiler. Note that a PAF need not be defined if the access control facilities of the HAL/S compiler are not being used.
Each member of the PAF contains information about ACCESS controlled names which are to be made available to one unit of compilation. The member to be used is specified to the compiler by using the PROGRAM compiler directive in the primary input stream: D PROGRAM ID=<id>
The <id> field of the directive is a 1 to 8 character Program Identification Name (PIN) which is the name of the member of the PAF which is to be processed for the current compilation’s ACCESS information. The appearance of the PROGRAM directive in the compiler’s input stream causes immediate processing of the PAF member specified. Therefore, the PROGRAM directive must follow any COMPOOL or COMSUB templates which may specify ACCESS-controlled data. Also, the PROGRAM directive must appear before the definition of the block which is the primary unit of compilation. In general, the input stream seen by the compiler should look like the following:
<COMPOOL or COMSUB template> .
. .
HAL/S-FC User’s Manual USA003090 32.0/17.0
8-6 November 2005
<COMPOOL or COMSUB template> D PROGRAM=<id>
M PROG_NAME: PROGRAM; .
. .
The format of an individual PAF member is specified below.
1. Column 1 of each record is ignored except when it contains the character “C”, in which case the entire record is ignored.
2. The portion of each record which is processed is the same portion which is processed in the primary compiler input (generally columns 2-80).
3. COMPOOL elements which are to be made available to the compilation are specified as:
<COMPOOL-name>(<var-name>,<var-name>,...,<var-name>) or
<COMPOOL-name>($ALL)
The first format specifies access to particular variables within the named COMPOOL. The second format specifies access to all variables within the named COMPOOL.
4. Access to external block names is specified as:
$BLOCK(<block-name>,<block-name>,...,<block-name>) 5. Blanks are allowed anywhere in the record, except that names may not be
broken by a blank.
6. Either of the constructions (3) or (4) above may span more than one record. 7. The name of the particular COMPOOL in form (3) above may appear more
than once; i.e., the variables in a particular COMPOOL do not have to be specified at one time. Similarly, the form $BLOCK may appear more than once.
Some validity checking is performed by the compiler while processing the PAF member. Warnings are issued for the following conditions:
If, at the time the PROGRAM directive is encountered, no ACCESS-controlled variables have been declared, the PAF is not opened. If a user does not require access to any ACCESS-controlled variable, the PROGRAM directive and associated PAF members may of course be omitted.