These routines access the variable data defined on the current
zone as defined by cfxExportZoneSet
. For details,
see cfxExportZoneSet. The variable data arrays are not loaded
into memory until either cfxExportVariableList
or cfxExportVariableGet
are called, and remain
in memory until cfxExportVariableFree
is called.
For details, see:
int cfxExportVariableCount(int usr_level)
Query the number of variables at interest level usr_level
or below. If usr_level
is 0, then the
total number of variables is returned.
int cfxExportVariableSize (int varnum, int *dimension, int *length, int *bdnflag)
Query the dimension, dimension
, and length, length
, for the variable identified by varnum
, which should be from 1 to the number of variables, returned by cfxExportVariableCount
(cfxExportVariableCount). The
length, length
, will either be 1 or the same
as the number of nodes returned by cfxExportNodeCount
(see cfxExportNodeCount). If 1, then the variable has meaningful
values only at the boundary nodes, with a constant value in the interior.
The function also returns bdnflag
, which
indicates if the variable contains corrected boundary node values
(1
) or not (0
).
The function returns varnum
if successful,
or 0 if the variable number is out of range.
char *cfxExportVariableName (int varnum, int alias)
Query the name of the variable identified by varnum
.
The return value of the function is NULL
if the variable number is out of range or the name of the variable.
The pointer returned points to static storage, which will be
overwritten by the next call to cfxExportVariableName
.
The argument alias
indicates whether the
short name (alias=0
) or long name (alias=1
) should be returned. For example, the short
and long names for the total temperature variable are TEMPTOT
and Total Temperature
, respectively.
float *cfxExportVariableList (int varnum, int correct)
Query the results data for a variable identified by varnum
.
Returns NULL
if the variable number is
out of range or the variable data if successful.
The flag correct
indicates whether to correct
boundary node data (correct=1) or not (correct=0), assuming
that it exists.
The data is in the same order as the nodes returned from cfxExportNodeList
(see cfxExportNodeList).
For multidimensional variables, the data is stored with dimension consecutive values for each node.
The storage for the data is created by the Export API when this
function is called. When the data is no longer required a call to cfxExportVariableFree
(see cfxExportVariableFree)
should be made by the calling function.
int cfxExportVariableGet (int varnum, int correct, int index, float *value)
Request the values of the variable identified by varnum
at the location given by index
, which should
be from 1 to the length of the variable, inclusively.
The flag correct
indicates whether to correct
boundary node data (correct=1
) or not
(correct=0
), assuming that it exists.
The function returns index
, or 0 if the
location is out of range.
void cfxExportVariableFree (int varnum)
Deallocate the internal data storage for the variable identified
by varnum
for the current zone.
const float* cfxExportVariableQuantityDimensions(const int varnum)
Take an argument that is the index of the variable in cfxExportVariableList
,
and return an array of floats of size cfxNUM_QUANTITIES
. Each entry will be 0 if that
indexed quantity does not apply to this variable, or will otherwise be the power to which the unit associated
with the indexed quantity is raised.
const char* cfxExportVariableUnitsString(const int varnum)
Take an argument that is the index of the variable in cfxExportVariableList
and return
a combined units string. You can use this function to avoid having to process the dimensions using the
cfxExportVariableQuantityDimensions
function.