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).
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
GENERIC --- A Utility for Preprocessing Generic Fortran and C Subroutines