Sorry for the spam. I just wanted to say many thanks again for
everyones' very rapid responses on this issue. It's good to know there
are people out there with the knowledge...
John
On 01/10/10 15:20, Peter W. Draper wrote:
> On Fri, 1 Oct 2010, John Barnes wrote:
>
>
>> Many thanks for such a swift response. I do know about the STATUS issue,
>> but had in fact made a mistake with previous mapping of the axis array,
>> so thanks for this comment. I'm still having problems however after
>> correcting this.
>>
>> Here again is the input NDF structure (from hdstrace):
>>
>> DYNTIMES<NDF>
>>
>> DATA_ARRAY<ARRAY> {structure}
>> DATA(12)<_REAL> 300,300,300,300,300,300,300,300,300,
>> 300,300,300
>> BAD_PIXEL<_LOGICAL> FALSE
>> ORIGIN(1)<_INTEGER> 1
>>
>> AXIS(1)<AXIS> {structure}
>> DATA_ARRAY<ARRAY> {structure}
>> ORIGIN(1)<_INTEGER> 1
>> DATA(12)<_REAL> 0,91536.9,183074,274611,366147,
>> ... 732295,823832,915369,1006910
>>
>> MORE<EXT> {structure}
>> FIGARO<EXT> {structure}
>> HJD0<_REAL> 42512.5
>>
>> End of Trace.
>>
>>
>>
>> Here is the relevant fragment of my code that deals with this:
>>
>> CALL NDF_ASSOC('TIMECAL','READ',TIMECAL,STATUS)
>> CALL NDF_MAP(TIMECAL,'Data','_REAL','READ',DW_PTR,NELM2,STATUS)
>> CALL NDF_DIM(TIMECAL, 2, DIMS, NDIMS2, STATUS )
>> CALL NDF_AMAP(TIMECAL,'CENTRE',1,'_REAL','READ',
>> : TS_PTR,WELM,STATUS)
>>
>> write(*,*) 'status=',status
>> CALL NDF_XLOC(TIMECAL, 'MORE', 'READ', LOC, STATUS )
>>
> Hi John,
>
> that should be:
>
> CALL NDF_XLOC(TIMECAL, 'FIGARO', 'READ', LOC, STATUS )
>
> all extensions are implicitly in "MORE". See Accessing Existing Extensions
> in SUN/33.
>
> If you just want HJD0 that should be a one liner:
>
> CALL NDF_XGT0I( TIMECAL, 'FIGARO', 'HJD0', HJD0, STATUS )
>
>
>
>> print *,'LOC=',loc
>> WRITE(*,*) 'status=',status
>>
>>
>>
>> And here is the output I get from the above fragment (note that status is 0
>> before the call to NDF_XLOC):
>>
>> status= 0
>> LOC=<NOT A LOCATOR>
>> status= 232950290
>>
>>
>> So perhaps my understanding of what a locator is is incorrect. Additionally,
>>
>> CALL NDF_XSTAT( TIMECAL, 'MORE', THERE, STATUS )
>>
>> Also returns THERE=.FALSE.
>>
>> The info for all this is at
>> http://www.starlink.ac.uk/docs/sun33.htx/node70.html
>>
>> Am I using the wrong subroutine to access/map the extension - I want to read
>> the value in MORE.FIGARO.HJD0 (=42512.5)
>>
>> Cheers,
>> John
>>
>>
>>
>>
>>
>>
>> On 01/10/10 14:18, David Berry wrote:
>>
>>> On 1 October 2010 14:09, John Barnes<[log in to unmask]> wrote:
>>>
>>>
>>>> Hi,
>>>>
>>>> I'm using 64 bit star-hawaiki and trying to access data in NDF extensions
>>>> using my own routines. I have tried following the instructions at
>>>> http://www.starlink.ac.uk/docs/sun33.htx/node66.html
>>>>
>>>> For example enquiring the presence of a structure with:
>>>>
>>>> CALL NDF_XSTAT( INDF, 'MORE', THERE, STATUS )
>>>>
>>>> where INDF is an already opened NDF for which I've successfully mapped the
>>>> data array and MORE is the name of the extension,
>>>> always returns THERE = FALSE even when the MORE structure is clearly
>>>> present.
>>>>
>>>> Similarly using
>>>>
>>>> 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>
>>>>
>>>> in the variable LOC. For both NDF_XSTAT and NDF_XLOC, STATUS is returned
>>>> with a non-zero value (a large integer value).
>>>>
>>>>
>>> Hi John,
>>>
>>> A non-zero status means that something has gone wrong, either in the
>>> subroutine you just called, or in an earlier subroutine. Once an error
>>> has occurred, all subsequent starlink subroutine calls will return
>>> immediately without doing anything other than setting their returned
>>> arguments to "null" values. In particularly, they will return the
>>> supplied non-zero status value unchanged. So you need to work out
>>> where the original error is occurring (i.e. where and why STATUS first
>>> gets set non-zero), and fix it. If you allow your application to run
>>> to completion you should see an error message indicating the nature of
>>> the problem (so long as you don't explicitly cancel the error by
>>> calling ERR_ANNUL).
>>>
>>> David
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>> Is there perhaps a problem here in 64 bit mode or am I using the wrong
>>>> subroutine calls? Are there any alternative calls
>>>> I can use - I'm ultimately wanting to read the value in MORE.FIGARO.HJD0
>>>> (see below).
>>>>
>>>> Here are the contents of the NDF for which I want to access the MORE
>>>> structure:
>>>>
>>>>
>>>> % hdstrace dyntimes
>>>>
>>>> DYNTIMES<NDF>
>>>>
>>>> DATA_ARRAY<ARRAY> {structure}
>>>> DATA(12)<_REAL> 300,300,300,300,300,300,300,300,300,
>>>> 300,300,300
>>>> BAD_PIXEL<_LOGICAL> FALSE
>>>> ORIGIN(1)<_INTEGER> 1
>>>>
>>>> AXIS(1)<AXIS> {structure}
>>>> DATA_ARRAY<ARRAY> {structure}
>>>> ORIGIN(1)<_INTEGER> 1
>>>> DATA(12)<_REAL> 0,91536.9,183074,274611,366147,
>>>> ... 732295,823832,915369,1006910
>>>>
>>>> MORE<EXT> {structure}
>>>> FIGARO<EXT> {structure}
>>>> HJD0<_REAL> 42512.5
>>>>
>>>> End of Trace.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Many thanks,
>>>> John Barnes
>>>>
>>>>
>>>> --
>>>>
>>>>
>>>>
>>>> **********************************************************
>>>> John Barnes
>>>> Centre for Astrophysics Research,
>>>> Science& Technology Research Institute
>>>> University of Hertfordshire,
>>>> College Lane, Hatfield.
>>>> Herts AL10 9AB. UK
>>>> Tel: 01707 285162
>>>> http://star-www.herts.ac.uk/~jbarnes
>>>>
>>>> **********************************************************
>>>>
>>>>
>>>>
>>> .
>>>
>>>
>>>
>>
>> --
>> **********************************************************
>> John Barnes
>> Centre for Astrophysics Research,
>> Science& Technology Research Institute
>> University of Hertfordshire,
>> College Lane, Hatfield.
>> Herts AL10 9AB. UK
>> Tel: 01707 285162
>> http://star-www.herts.ac.uk/~jbarnes
>>
>> **********************************************************
>>
>>
> --
> Peter W. Draper, http://astro.dur.ac.uk/~pdraper
> .
>
>
--
**********************************************************
John Barnes
Centre for Astrophysics Research,
Science& Technology Research Institute
University of Hertfordshire,
College Lane, Hatfield.
Herts AL10 9AB. UK
Tel: 01707 285162
http://star-www.herts.ac.uk/~jbarnes
**********************************************************
|