From: Melissa Bukovsky <bukovsky_at_nyahnyahspammersnyahnyah>

Date: Thu, 17 Sep 2009 13:18:08 -0600

Date: Thu, 17 Sep 2009 13:18:08 -0600

Hi,

I have a handful of scripts that started failing recently (or giving

very strange output). They used to work fine with the same dataset. I

finally think I've figured out why, but the answer doesn't seem to make

sense to me. I narrowed down the problem to the dim_pqsort function.

It seems that it doesn't sort the input variable if I use named

dimensions to reorder the input array anymore. Is this not supported

with this function anymore? There is still an example on the function

page using it. dim_pqsort_n solves this problem, but that requires

finding and replacing dim_pqsort in a number of my functions.

Instead of attaching my lengthy scripts, a command line test of the

problem with comments added is pasted below. If I'm wrong about this or

doing something wrong, please let me know.

Thanks,

Melissa

/fs/home/bukovsky/ncl/phd/my_ncl_funct % ncl

Copyright (C) 1995-2009 - All Rights Reserved

University Corporation for Atmospheric Research

NCAR Command Language Version 5.1.1

The use of this software is governed by a License Agreement.

See http://www.ncl.ucar.edu/ for more details.

ncl 0> a = (/54,67,8,23,45,654,77/)

ncl 1> b = a

ncl 3> pv = dim_pqsort(a,2)

ncl 4> print(a)

Variable: a

Type: integer

Total Size: 28 bytes

7 values

Number of Dimensions: 1

Dimensions and sizes: [7]

Coordinates:

(0) 8

(1) 23

(2) 45

(3) 54

(4) 67

(5) 77

(6) 654

;NO PROBLEM WITH A 1D ARRAY, TRY A 2D...

ncl 5> a2 = new( (/2,4/),float)

ncl 6> print(a2)

Variable: a2

Type: float

Total Size: 32 bytes

8 values

Number of Dimensions: 2

Dimensions and sizes: [2] x [4]

Coordinates:

Number Of Attributes: 1

_FillValue : -999

(0,0) -999

(0,1) -999

(0,2) -999

(0,3) -999

(1,0) -999

(1,1) -999

(1,2) -999

(1,3) -999

ncl 8> a2(0,0) = 54

ncl 9> a2(0,2) = 3

ncl 10> a2(0,3) = 455

ncl 12> a2(1,0) = 98

ncl 13> a2(1,1) = 5

ncl 14> a2(1,2) = 34

ncl 15> a2(1,3) = 0

ncl 16> b2 = a2 ;save a2

ncl 17> c2 = a2 ;save a2 again

ncl 18> print(a2)

;ORIGINAL 2D ARRAY

Variable: a2

Type: float

Total Size: 32 bytes

8 values

Number of Dimensions: 2

Dimensions and sizes: [2] x [4]

Coordinates:

Number Of Attributes: 1

_FillValue : -999

(0,0) 54

(0,1) -999

(0,2) 3

(0,3) 455

(1,0) 98

(1,1) 5

(1,2) 34

(1,3) 0

ncl 19> pv2 = dim_pqsort(a2,2)

ncl 20> print(a2)

;SORTING IT WITHOUT REORDERING THE DIMENSIONS WORKED...

Variable: a2

Type: float

Total Size: 32 bytes

8 values

Number of Dimensions: 2

Dimensions and sizes: [2] x [4]

Coordinates:

Number Of Attributes: 1

_FillValue : -999

(0,0) -999

(0,1) 3

(0,2) 54

(0,3) 455

(1,0) 0

(1,1) 5

(1,2) 34

(1,3) 98

;TRY AGAIN REORDERING WITH NAMED DIMS...

ncl 21> b2!0 = "time"

ncl 22> b2!1 = "nlsd"

ncl 23> pv22 = dim_pqsort(b2(nlsd|:,time|:),2)

ncl 24> print(b2)

;B2 2D ARRAY SORTED, BUT IT DIDN'T WORK (THERE IS NO DIFFERENCE FROM THE

ORIGINAL)

Variable: b2

Type: float

Total Size: 32 bytes

8 values

Number of Dimensions: 2

Dimensions and sizes: [time | 2] x [nlsd | 4]

Coordinates:

Number Of Attributes: 1

_FillValue : -999

(0,0) 54

(0,1) -999

(0,2) 3

(0,3) 455

(1,0) 98

(1,1) 5

(1,2) 34

(1,3) 0

ncl 25> print(c2)

;C2 IS STILL THE ORIGINAL (TO COMPARE ABOVE)

Variable: c2

Type: float

Total Size: 32 bytes

8 values

Number of Dimensions: 2

Dimensions and sizes: [2] x [4]

Coordinates:

Number Of Attributes: 1

_FillValue : -999

(0,0) 54

(0,1) -999

(0,2) 3

(0,3) 455

(1,0) 98

(1,1) 5

(1,2) 34

(1,3) 0

;SORT DIMINSION 0 USING dim_pqsort_n NOW

ncl 26> pv5 = dim_pqsort_n(b2,2,0)

ncl 27> print(b2)

;THIS TIME IT WORKED

Variable: b2

Type: float

Total Size: 32 bytes

8 values

Number of Dimensions: 2

Dimensions and sizes: [time | 2] x [nlsd | 4]

Coordinates:

Number Of Attributes: 1

_FillValue : -999

(0,0) 54

(0,1) -999

(0,2) 3

(0,3) 0

(1,0) 98

(1,1) 5

(1,2) 34

(1,3) 455

;TO SEE THIS MORE EASILY

ncl 28> print(b2(nlsd|:,time|:))

Variable: b2 (subsection)

Type: float

Total Size: 32 bytes

8 values

Number of Dimensions: 2

Dimensions and sizes: [nlsd | 4] x [time | 2]

Coordinates:

Number Of Attributes: 1

_FillValue : -999

(0,0) 54

(0,1) 98

(1,0) -999

(1,1) 5

(2,0) 3

(2,1) 34

(3,0) 0

(3,1) 455

;THIS IS A PROBLEM WITH 3D ARRAYS TOO, BUT I CUT THAT PART OUT (THOUGH

THAT IS WHAT THE ORIGINAL PROBLEM WAS WITH)

_______________________________________________

ncl-talk mailing list

List instructions, subscriber options, unsubscribe:

http://mailman.ucar.edu/mailman/listinfo/ncl-talk

Received on Thu Sep 17 2009 - 13:18:08 MDT

*
This archive was generated by hypermail 2.2.0
: Fri Sep 18 2009 - 15:36:15 MDT
*