A A Full Table of F77 Token Translations

This appendix gives the translations of all the tokens made by GENERIC for each of the data types. If a translation is illegal, the result will be “?” (and GENERIC will give a warning message).

Additional substitutions are made if the input file is a C source file, described in Appendix A.

To produce the BYTE version of a program, the following substitutions are made.

Kernel tokens (translated by default):



TOKEN SUBSTITUTE COMMENT
<T > "B" Subroutine name extension
<TYPE > "BYTE" Argument type definition
<LTYPE > "BYTE" Local type definition
<CONST > " " String to be appended to constant
<HTYPE > "_BYTE" HDS type
<COMM > "BYTE" Comment describing type
ASTERIX tokens (translated when -a is specified):



TOKEN SUBSTITUTE COMMENT
<CONV > " " BYTE to REAL conversion
<EXT > " " BYTE to REAL conversion extension
<BRAK > " " Brackets for BYTE to REAL conversion
<ICONV > " " BYTE to INTEGER conversion
<IEXT > " " BYTE to INTEGER conversion extension
<IBRAK > " " Brackets for BYTE to INTEGER conversion
<REV > " " REAL to BYTE conversion
<RVBRAK > " " Brackets for REAL to BYTE conversion
<IREV > " " INTEGER to BYTE conversion
<IRVBRAK > " " Brackets for INTEGER to BYTE conversion

To produce the UNSIGNED BYTE version of a program, the following substitutions are made.

Kernel tokens (translated by default):



TOKEN SUBSTITUTE COMMENT
<T > "UB" Subroutine name extension
<TYPE > "BYTE" Argument type definition
<LTYPE > "BYTE" Local type definition
<CONST > " " String to be appended to constant
<HTYPE > "_UBYTE" HDS type
<COMM > "UNSIGNED BYTE" Comment describing type
ASTERIX tokens (translated when -a is specified):



TOKEN SUBSTITUTE COMMENT
<CONV > "REAL(" UNSIGNED BYTE to REAL conversion
<EXT > "ZEXT(" UNSIGNED BYTE to REAL conversion extension
<BRAK > "))" Brackets for UNSIGNED BYTE to REAL conversion
<ICONV > "INT(" UNSIGNED BYTE to INTEGER conversion
<IEXT > "ZEXT(" UNSIGNED BYTE to INTEGER conversion extension
<IBRAK > "))" Brackets for UNSIGNED BYTE to INTEGER conversion
<REV > "NINT(" REAL to UNSIGNED BYTE conversion
<RVBRAK > ")" Brackets for REAL to UNSIGNED BYTE conversion
<IREV > " " INTEGER to UNSIGNED BYTE conversion
<IRVBRAK > " " Brackets for INTEGER to UNSIGNED BYTE conversion

To produce the CHARACTER version of a program, the following substitutions are made.

Kernel tokens (translated by default):



TOKEN SUBSTITUTE COMMENT
<T > "C" Subroutine name extension
<TYPE > "CHARACTER*(*)" Argument type definition
<LTYPE > "CHARACTER* <CHASIZ >" Local type definition (CHASIZ = 200 by default)
<CONST > "?" String to be appended to constant
<HTYPE > "_CHAR" HDS type
<COMM > "CHARACTER" Comment describing type
ASTERIX tokens (translated when -a is specified):



TOKEN SUBSTITUTE COMMENT
<CONV > "?" CHARACTER to REAL conversion
<EXT > "?" CHARACTER to REAL conversion extension
<BRAK > "?" Brackets for CHARACTER to REAL conversion
<ICONV > "?" CHARACTER to INTEGER conversion
<IEXT > "?" CHARACTER to INTEGER conversion extension
<IBRAK > "?" Brackets for CHARACTER to INTEGER conversion
<REV > "?" REAL to CHARACTER conversion
<RVBRAK > "?" Brackets for REAL to CHARACTER conversion
<IREV > "?" INTEGER to CHARACTER conversion
<IRVBRAK > "?" Brackets for INTEGER to CHARACTER conversion

To produce the DOUBLE PRECISION version of a program, the following substitutions are made.

Kernel tokens (translated by default):



TOKEN SUBSTITUTE COMMENT
<T > "D" Subroutine name extension
<TYPE > "DOUBLE PRECISION" Argument type definition
<LTYPE > "DOUBLE PRECISION" Local type definition
<CONST > ".0D0" String to be appended to constant
<HTYPE > "_DOUBLE" HDS type
<COMM > "DOUBLE PRECISION" Comment describing type
ASTERIX tokens (translated when -a is specified):



TOKEN SUBSTITUTE COMMENT
<CONV > "SNGL(" DOUBLE PRECISION to REAL conversion
<EXT > " " DOUBLE PRECISION to REAL conversion extension
<BRAK > ")" Brackets for DOUBLE PRECISION to REAL conversion
<ICONV > "NINT(" DOUBLE PRECISION to INTEGER conversion
<IEXT > " " DOUBLE PRECISION to INTEGER conversion extension
<IBRAK > ")" Brackets for DOUBLE PRECISION to INTEGER conversion
<REV > "DBLE(" REAL to DOUBLE PRECISION conversion
<RVBRAK > ")" Brackets for REAL to DOUBLE PRECISION conversion
<IREV > "DBLE(" INTEGER to DOUBLE PRECISION conversion
<IRVBRAK > ")" Brackets for INTEGER to DOUBLE PRECISION conversion

To produce the INTEGER version of a program, the following substitutions are made.

Kernel tokens (translated by default):



TOKEN SUBSTITUTE COMMENT
<T > "I" Subroutine name extension
<TYPE > "INTEGER" Argument type definition
<LTYPE > "INTEGER" Local type definition
<CONST > " " String to be appended to constant
<HTYPE > "_INTEGER" HDS type
<COMM > "INTEGER" Comment describing type
ASTERIX tokens (translated when -a is specified).



TOKEN SUBSTITUTE COMMENT
<CONV > "REAL(" INTEGER to REAL conversion
<EXT > " " INTEGER to REAL conversion extension
<BRAK > ")" Brackets for INTEGER to REAL conversion
<ICONV > " " INTEGER to INTEGER conversion
<IEXT > " " INTEGER to INTEGER conversion extension
<IBRAK > " " Brackets for INTEGER to INTEGER conversion
<REV > "NINT(" REAL to INTEGER conversion
<RVBRAK > ")" Brackets for REAL to INTEGER conversion
<IREV > " " INTEGER to INTEGER conversion
<IRVBRAK > " " Brackets for INTEGER to INTEGER conversion

To produce the LOGICAL version of a program, the following substitutions are made.

Kernel tokens (translated by default):



TOKEN SUBSTITUTE COMMENT
<T > "L" Subroutine name extension
<TYPE > "LOGICAL" Argument type definition
<LTYPE > "LOGICAL" Local type definition
<CONST > " " String to be appended to constant
<HTYPE > "_LOGICAL" HDS type
<COMM > "LOGICAL" Comment describing type
ASTERIX tokens (translated when -a is specified).



TOKEN SUBSTITUTE COMMENT
<CONV > "?" LOGICAL to REAL conversion
<EXT > "?" LOGICAL to REAL conversion extension
<BRAK > "?" Brackets for LOGICAL to REAL conversion
<ICONV > "?" LOGICAL to INTEGER conversion
<IEXT > "?" LOGICAL to INTEGER conversion extension
<IBRAK > "?" Brackets for LOGICAL to INTEGER conversion
<REV > "?" REAL to LOGICAL conversion
<RVBRAK > "?" Brackets for REAL to LOGICAL conversion
<IREV > "?" INTEGER to LOGICAL conversion
<IRVBRAK > "?" Brackets for INTEGER to LOGICAL conversion

To produce the REAL version of a program, the following substitutions are made.

Kernel tokens (translated by default):



TOKEN SUBSTITUTE COMMENT
<T > "R" Subroutine name extension
<TYPE > "REAL" Argument type definition
<LTYPE > "REAL" Local type definition
<CONST > ".0E0" String to be appended to constant
<HTYPE > "_REAL" HDS type
<COMM > "REAL" Comment describing type
ASTERIX tokens (translated when -a is specified).



TOKEN SUBSTITUTE COMMENT
<CONV > " " REAL to REAL conversion
<EXT > " " REAL to REAL conversion extension
<BRAK > " " Brackets for REAL to REAL conversion
<ICONV > "NINT(" REAL to INTEGER conversion
<IEXT > " " REAL to INTEGER conversion extension
<IBRAK > ")" Brackets for REAL to INTEGER conversion
<REV > " " REAL to REAL conversion
<RVBRAK > " " Brackets for REAL to REAL conversion
<IREV > "REAL(" INTEGER to REAL conversion
<IRVBRAK > ")" Brackets for INTEGER to REAL conversion

To produce the WORD version of a program, the following substitutions are made.

Kernel tokens (translated by default):



TOKEN SUBSTITUTE COMMENT
<T > "W" Subroutine name extension
<TYPE > "INTEGER*2" Argument type definition
<LTYPE > "INTEGER*2" Local type definition
<CONST > " " String to be appended to constant
<HTYPE > "_WORD" HDS type
<COMM > "WORD" Comment describing type
ASTERIX tokens (translated when -a is specified).



TOKEN SUBSTITUTE COMMENT
<CONV > "REAL(" WORD to REAL conversion
<EXT > " " WORD to REAL conversion extension
<BRAK > ")" Brackets for WORD to REAL conversion
<ICONV > " " WORD to INTEGER conversion
<IEXT > " " WORD to INTEGER conversion extension
<IBRAK > " " Brackets for WORD to INTEGER conversion
<REV > "NINT(" REAL to WORD conversion
<RVBRAK > ")" Brackets for REAL to WORD conversion
<IREV > " " INTEGER to WORD conversion
<IRVBRAK > " " Brackets for INTEGER to WORD conversion

To produce the UNSIGNED WORD version of a program, the following substitutions are made.

Kernel tokens (translated by default):



TOKEN SUBSTITUTE COMMENT
<T > "UW" Subroutine name extension
<TYPE > "INTEGER*2" Argument type definition
<LTYPE > "INTEGER*2" Local type definition
<CONST > " " String to be appended to constant
<HTYPE > "_UWORD" HDS type
<COMM > "UNSIGNED WORD" Comment describing type
ASTERIX tokens (translated when -a is specified).



TOKEN SUBSTITUTE COMMENT
<CONV > "REAL(" UNSIGNED WORD to REAL conversion
<EXT > "ZEXT(" UNSIGNED WORD to REAL conversion extension
<BRAK > "))" Brackets for UNSIGNED WORD to REAL conversion
<ICONV > " " UNSIGNED WORD to INTEGER conversion
<IEXT > "ZEXT(" UNSIGNED WORD to INTEGER conversion extension
<IBRAK > ")" Brackets for UNSIGNED WORD to INTEGER conversion
<REV > "NINT(" REAL to UNSIGNED WORD conversion
<RVBRAK > ")" Brackets for REAL to UNSIGNED WORD conversion
<IREV > " " INTEGER to UNSIGNED WORD conversion
<IRVBRAK > " " Brackets for INTEGER to UNSIGNED WORD conversion