There are few things going on here. Let's deal with extension access
first.
> For example enquiring the presence of a structure with:
>
> CALL NDF_XSTAT( INDF, 'MORE', THERE, STATUS )
MORE is the extension container but not an extension itself. You need
to put in the actual extension. For instance 'FIGARO' to test for the
FIGARO extension. The MORE component is part of the actual data
structure, but as a programmer you shouldn't have to know about that if
you think in an object-oriented data fashion. Of course MORE is visible
if you peep behind the scenes with the general HDSTRACE tool.
Here you're asking to find MORE.MORE and as it doesn't exist, FALSE is
returned by NDF_XSTAT.
> INCLUDE 'DAT_PAR'
> CHARACTER * ( DAT__SZLOC ) LOC
> INTEGER OFFSET
> ...
> CALL NDF_XLOC( INDF, 'MORE', 'READ', LOC, STATUS )
>
> doesn't work and returns the value
>
> <NOT A LOCATOR>
Same applies here. NDF_XLOC is hunting for MORE.MORE. It should return
a bad status and the invalid locator. So change to FIGARO and then use
the returned locator in CMP_GET0R( LOC, 'HJD0', HJD0, STATUS ) to access
your scalar component in the FIGARO extension.
Malcolm
|