Loading [MathJax]/jax/output/HTML-CSS/jax.js

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