chardata:, realdata:, dbledata: and intdata:

Function:

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.

Syntax:

	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.

Examples:

	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.