chardata:, realdata:, dbledata: and intdata:
These macros are used to define the array dimension and the data content of
character, real, double precision and integer strings. The macros calculate the
dimension of the arrays; generate type-definition statements; and store data
statements into the RFPP macro table for subsequent release by the datastuff:
macro.
chardata:(array-name,[character-string])
realdata:(array-name,[real-data])
dbledata:(array-name,[double-precision-data])
intdata:(array-name, [integer-data])
array-name
is the name of the defined array. If real-data and integer-data
contain only single numbers, the name will be defined as a single
(non-subscripted) variable (see Examples).
character-string
is any sequence of characters
excluding a # (though a $# may
be used to continue the string to the next line). If square brackets surround
the string, the contents are not 'interpreted' by the preprocessor but the case
of the alphabetic characters will be upper case. If the string is surrounded by
quotes (") the case will remain unchanged. The surrounding square brackets or
quotes must be omitted to permit interpretation of embedded macros. Digraphs
are not interpreted and are not needed within a string.
real-data
is a sequence of one or more real numbers separated by commas.
Square brackets are mandatory if there is more than one number.
double-precision-data
is a sequence of one or more double precision numbers
separated by commas. For CRAY and other 64-bit machines these numbers are
output as single precision real numbers. Square brackets are mandatory if there
is more than one number.
integer-data
is a sequence of one more integer numbers separated by commas.
Square brackets are mandatory if there is more than one number.
Note that the character string is defined as type-CHARACTER. The chardata:
macro also generates an integer variable to contain the length of the character
string. This integer is assigned the name of the character array prefixed with
an 'N' (see Examples below). The value of the integer is subsequently defined
in a DATA statement (see the section called “datastuff:
” Examples).
Caution must be exercised to avoid
array-name conflicts.
chardata:(HEAD3,[ sequence 3, ARRAY(5) =])
chardata:(subh," Limits Table")
realdata:(CELL,[5.785,21.583,14.183,90.,90.,90])
dbledata:(RESOL,[.00000006,5.])
intdata:(MATR3,[1,1,1,0,0,1,0,1,0])
intdata:(FIRST,yes:)
RFPP initially generates the following lines
INTEGER NHEAD3
INTEGER NSUBH
CHARACTER*(24) HEAD3
CHARACTER*(13) SUBH
REAL CELL(6)
DOUBLE PRECISION RESOL(2)
INTEGER MATR3(9)
INTEGER FIRST
The data statements generated by these macros are stored temporarily in the
macro table and are output when the datastuff:
macro is encountered. It is
essential that a datastuff:
follow the last of this class of macro for correct
execution. Also that the datastuff:
precede the first line of active code. See
the Examples in the section called “datastuff:
” for the output
generated for the above examples. Note that
RESOL will be output as type REAL for CRAY and other 64-bit machines.