declare foo as shared 4 int | shared [4] int foo
declare foo as shared blocksize 4 int | shared [4] int foo
declare foo as shared (blocksize 4) int | shared [4] int foo
declare foo as shared (blocksize cyclic) int | shared [1] int foo
declare foo as shared blocksize cyclic int | shared [1] int foo
declare foo as shared (blocksize automatic) int | shared [*] int foo
declare foo as shared blocksize automatic int | shared [*] int foo
declare foo as shared (blocksize indefinite) int | shared [] int foo
declare foo as shared blocksize indefinite int | shared [] int foo
cast foo into shared 4 pointer to local double | (double *shared [4])foo
declare x as shared array 4 of pointer to double | double* shared[1] x[4]
declare x as shared array of pointer to double | double* shared[1] x[]
declare x as shared array 4 of pointer to local double | double* shared[1] x[4]
declare x as shared array of pointer to local double | double* shared[1] x[]
declare x as array 4 of pointer to shared 12 double | shared [12] double* x[4]
declare x as array of pointer to shared blocksize 12 double | shared [12] double* x[]
declare x as shared blocksize 12 array 4 of double | shared [12] double x[4]
declare x as shared blocksize 12 array of double | shared [12] double x[]
declare x as shared blocksize 12 array 4 of pointer to local double | double* shared [12] x[4]
declare x as shared blocksize 12 array of pointer to local double | double* shared [12] x[]
declare x as array 10 of pointer to shared (blocksize cyclic) pointer to shared (blocksize 4) int | shared[4] int * shared[1] * x[10]
declare x as array 10 of local pointer to shared (blocksize cyclic) pointer to shared (blocksize 4) int | shared[4] int * shared[1] * x[10]
explain shared int f | declare f as shared (blocksize cyclic) int
explain shared [] int f | declare f as shared (blocksize indefinite) int
explain shared [0] int f | declare f as shared (blocksize indefinite) int
explain shared [1] int f | declare f as shared (blocksize cyclic) int
explain shared [3] int *shared[5] x[7] | declare x as array 7 of shared (blocksize 5) pointer to shared (blocksize 3) int
explain int shared [2] * shared [3] x[5] | declare x as array 5 of shared (blocksize 3) pointer to shared (blocksize 2) int
set upcverbose | 
explain shared[4] int *x[10] | declare x as array 10 of local pointer to shared (blocksize 4) int
explain shared[4] int * shared * x[10] | declare x as array 10 of local pointer to shared (blocksize cyclic) pointer to shared (blocksize 4) int
declare f as shared array of int | shared [1] int f[]
declare f as array of shared int | shared [1] int f[]
explain shared [12] double* x[] | declare x as array of local pointer to shared (blocksize 12) double
explain int shared [2] * const * volatile x[5] | declare x as array 5 of local volatile pointer to local const pointer to shared (blocksize 2) int
explain int shared [3] x[4] | declare x as array 4 of shared (blocksize 3) int
explain int *shared [3] x | declare x as shared (blocksize 3) pointer to local int
explain int *shared [3] strict x | declare x as shared (blocksize 3) strict pointer to local int
explain int *shared [3] relaxed x | declare x as shared (blocksize 3) relaxed pointer to local int
explain upc_lock_t *x | declare x as local pointer to upc_lock_t
explain upc_file_t strict *x | declare x as local pointer to strict upc_file_t
explain upc_lock_t * shared x | declare x as shared (blocksize cyclic) pointer to upc_lock_t
declare x as local pointer to const upc_lock_t | const upc_lock_t * x
explain upc_lock_t relaxed *x[14] | declare x as array 14 of local pointer to relaxed upc_lock_t
explain const upc_flag_t *x | declare x as local pointer to local const upc_flag_t
cast x into local const pointer to const upc_lock_t | (const upc_lock_t * const)x
explain upc_lock_t * shared [6] x[12] | declare x as array 12 of shared (blocksize 6) pointer to upc_lock_t
explain const upc_off_t x[12] | declare x as array 12 of local const upc_off_t
explain size_t shared [4] x[12] | declare x as array 12 of shared (blocksize 4) size_t
explain shared int x[THREADS] | declare x as array THREADS of shared (blocksize cyclic) int
explain shared [THREADS] int x[(16/4)*THREADS++16/(-24%(16))] | declare x as array ( 16 / 4 ) * THREADS + +16 / ( -24 % ( 16 ) ) of shared (blocksize THREADS) int
explain shared [23+THREADS%4] int x[THREADS+45/5] | declare x as array THREADS + 45 / 5 of shared (blocksize 23 + THREADS % 4) int
explain int x[MYTHREAD*foo+ bar/45] | declare x as array MYTHREAD * foo + bar / 45 of local int
declare x as array THREADS + 45 of shared (blocksize THREADS % 4) int | shared [THREADS % 4] int x[THREADS + 45]
declare x as array ( 16 / 4 ) * THREADS + +16 / ( -24 % ( 16 ) ) of shared (blocksize THREADS) int | shared [THREADS] int x[( 16 / 4 ) * THREADS + +16 / ( -24 % ( 16 ) )]
