[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ncvarget and array reordering (fwd)
- Subject: Re: ncvarget and array reordering (fwd)
- Date: Wed, 29 Jun 1994 07:57:21 -0600
>From: address@hidden (Ethan Alpert)
>Organization: NCAR/SCD
>Keywords: 199406281640.AA10426 ncvarget
Ethan,
>I posted this to netgroup and didn't get any response.
>
>Do you all at unidata have any comments?
Our reigning expert on things like this, Russ Rew, is out of the office
until July 5. I am forwarding this note to him so he can respond when
he gets back.
>-ethan
>
>>
>>
>>
>> Hello,
>>
>> I was wondering if anyone ever tried passing negative edge lengths to
>> the ncvargetg function. First off, I know this doesn't work because I get
>> an "invalid edge length" error. But, I can't find where in the 2.3 documenta
> tion
>> this constraint is stated. You'd think the function interface would tell you
>> by using the "const unsigned long" type declaration in the function prototyp
> e
>> rather than "const long".
>>
>> The whole idea here is, if negative edge lengths were allowed, then user
>> defined reorderings of data durring reads and writes would be possible.
>> Saving both programing time and CPU time.
>>
>> Does anybody know why NetCDF doesn't let you set negative edge lengths?
>> It sure does seem like it would be a pain to have to read in an entire
>> block and figure out how to reorder it when it could have been done relative
> ly
>> easily when reading the data in the first place, not to mention the extra
>> CPU time.
>>
>> Does anybody even care about this kind of functionality? It would seem like
>> the people who wanted strides and index maps would possibly benefit from thi
> s
>> functionality as well.
>>
>> Is this some kind of XDR constraint that creeps up to the user interface lev
> el?
>>
>> Thanks in advance for any info,
>>
>> -ethan
>>
>> ----------------------------------------------------------------------------
> ----
>>
>> Example in case my description of the problem isn't good enough:
>>
>> For example consider the following 3x3x3 array and indices:
>>
>> A start array of { 0, 0, 0 } and a count of { 2, 2, 2 } produces:
>>
>> (0,0,0) 1
>> (0,0,1) 2
>> (0,0,2) 3
>> (0,1,0) 4
>> (0,1,1) 5
>> (0,1,2) 6
>> (0,2,0) 7
>> (0,2,1) 8
>> (0,2,2) 9
>> (1,0,0) 10
>> (1,0,1) 11
>> (1,0,2) 12
>> (1,1,0) 13
>> (1,1,1) 14
>> (1,1,2) 15
>> (1,2,0) 16
>> (1,2,1) 17
>> (1,2,2) 18
>> (2,0,0) 19
>> (2,0,1) 20
>> (2,0,2) 21
>> (2,1,0) 22
>> (2,1,1) 23
>> (2,1,2) 24
>> (2,2,0) 25
>> (2,2,1) 26
>> (2,2,2) 27
>>
>>
>> Note how the negative edge length affects the layout of the values in contig
> uous
>> memory:
>>
>> A start array of { 0, 0, 2 } and a count of { 2, 2, -2 } would produce:
>>
>> (0,0,0) 3
>> (0,0,1) 2
>> (0,0,2) 1
>> (0,1,0) 6
>> (0,1,1) 5
>> (0,1,2) 4
>> (0,2,0) 9
>> (0,2,1) 8
>> (0,2,2) 7
>> (1,0,0) 12
>> (1,0,1) 11
>> (1,0,2) 10
>> (1,1,0) 15
>> (1,1,1) 14
>> (1,1,2) 13
>> (1,2,0) 18
>> (1,2,1) 17
>> (1,2,2) 16
>> (2,0,0) 21
>> (2,0,1) 20
>> (2,0,2) 19
>> (2,1,0) 24
>> (2,1,1) 23
>> (2,1,2) 22
>> (2,2,0) 27
>> (2,2,1) 26
>> (2,2,2) 25
>>
>>
>> A start array of { 2, 2, 2 } and a count of { -2, -2, -2 } would produce:
>>
>> (0,0,0) 27
>> (0,0,1) 26
>> (0,0,2) 25
>> (0,1,0) 24
>> (0,1,1) 23
>> (0,1,2) 22
>> (0,2,0) 21
>> (0,2,1) 20
>> (0,2,2) 19
>> (1,0,0) 18
>> (1,0,1) 17
>> (1,0,2) 16
>> (1,1,0) 15
>> (1,1,1) 14
>> (1,1,2) 13
>> (1,2,0) 12
>> (1,2,1) 11
>> (1,2,2) 10
>> (2,0,0) 9
>> (2,0,1) 8
>> (2,0,2) 7
>> (2,1,0) 6
>> (2,1,1) 5
>> (2,1,2) 4
>> (2,2,0) 3
>> (2,2,1) 2
>> (2,2,2) 1
>>
>>
>>
>>
>>
>>
>
>
Tom Yoksas