(3M) Calculator User Manual

hold the number of arcs (that is, twice the number o f edges). edgetab is the
pointer to a location that will hold the reference to the adjacency array, of
size at least *edgeptr. edlotab is the pointer to a location that will hold the
reference to the arc load array, of size *edgeptr.
Any of these pointers can be set to NULL on input if the corresponding infor-
mation is not nee ded. Else, the reference to a dummy area can be provided,
where all unwanted data will be written.
Since there are no pointers in Fortran, a specific mechanism is used to allow
users to access graph arrays. The scotchfgraphdata routine is passed an
integer array, the first element of which is used as a base address from which all
other array indices are computed. There fo re, instead of returning references,
the routine r e tur ns integers, which represent the starting index of each of the
relevant arrays with r e spec t to the base input array, or vertidx, the index
of verttab, if they do not exist. For instance, if some base arr ay myarray
(1) is passed as parameter indxtab, then the first cell of array verttab
will be accessible as myarray(vertidx). In order for this feature to behave
properly, the indxtab array must be word-aligned with the graph arrays.
This is automatically enforced on most systems, but s ome care should b e
taken on systems that allow one to access data that is not word-aligned. On
such systems, decla ring the array after a dummy doubleprecision array
can coerce the compiler into enforcing the proper alignment. Also, on 32
64
architectures, such indices can be larger than the size of a regular INTEGER.
This is why the indices to be returned are defined by means of a specific
integer type. See Section 7.1.4 for more information on this issue.
7.5.11 SCOTCH
graphStat
Synopsis
void SCOTCH
graphStat (const SCOTCH Graph * grafptr,
SCOTCH Num * velominptr,
SCOTCH
Num * velomaxptr,
SCOTCH Num * velosumptr,
double * veloavgptr,
double * velodltptr,
SCOTCH
Num * degrminptr,
SCOTCH
Num * degrmaxptr,
double * degravgptr,
double * degrdltptr,
SCOTCH
Num * edlominptr,
SCOTCH Num * edlomaxptr,
SCOTCH
Num * edlosumptr,
double * edloavgptr,
double * edlodltptr)
83